Skip to content

Commit c368221

Browse files
authored
Merge pull request #5 from emberstack/develop
Fix startup issues and refactoring pipelines
2 parents b7edc01 + 9e45656 commit c368221

File tree

7 files changed

+116
-63
lines changed

7 files changed

+116
-63
lines changed

ES.SFTP.Host/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
1+
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
22
RUN apt-get update && \
33
# - Install required packages
44
#
@@ -21,7 +21,7 @@ RUN apt-get update && \
2121
WORKDIR /app
2222
EXPOSE 22 80
2323

24-
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
24+
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
2525
WORKDIR /src
2626
COPY ["ES.SFTP.Host/ES.SFTP.Host.csproj", "ES.SFTP.Host/"]
2727
RUN dotnet restore "ES.SFTP.Host/ES.SFTP.Host.csproj"

ES.SFTP.Host/ES.SFTP.Host.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
</ItemGroup>
1414

1515
<ItemGroup>
16-
<Content Include="config\sssd.conf" />
16+
<Content Include="config\sssd.conf">
17+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
18+
</Content>
1719
</ItemGroup>
1820

1921
<ItemGroup>

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Below are deployment methods for:
2020
- Docker CLI
2121
- Docker-Compose
2222
- Kubernetes using Helm (recommended for Kubernetes)
23-
- Kubernetes (manual)
2423

2524
Process:
2625
1) Create server configuration
@@ -147,13 +146,6 @@ You can customize the values of the helm deployment by using the following Value
147146
> Find us on [Helm Hub](https://hub.helm.sh/charts/emberstack)
148147
149148

150-
### Deployment to Kubernetes using kubectl
151-
Each release (found on the [Releases](https://github.com/EmberStack/docker-sftp/releases) GitHub page) contains the manual deployment file (`sftp.yaml`).
152-
153-
```shellsession
154-
$ kubectl apply -f https://github.com/EmberStack/docker-sftp/releases/latest/download/sftp.yaml
155-
```
156-
157149
## Advanced Configuration
158150

159151
TODO: This section is under development due to the number of configuration options being added. Please open an issue on the [emberstack/docker-sftp](https://github.com/emberstack/docker-sftp) project if you need help.

azure-pipelines.yaml

Lines changed: 104 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
name: $(coreVersion).$(Date:yy)$(DayOfYear).$(Rev:r)
1+
name: $(version).$(Rev:r)
22

33
variables:
4-
coreVersion: 1
4+
version: 1.1
55
buildConfiguration: "Release"
66
imageRepository: "emberstack/sftp"
77
DOCKER_CLI_EXPERIMENTAL: 'enabled'
@@ -12,69 +12,129 @@ trigger:
1212
- "*"
1313

1414
stages:
15-
15+
1616
- stage: build
1717
displayName: "Build"
1818
jobs:
19-
- job: build
20-
displayName: "Build Job"
19+
20+
- job: build_helm
21+
displayName: "Helm"
2122
pool:
2223
vmImage: "Ubuntu-16.04"
2324
steps:
25+
2426
- script: |
2527
mkdir -p artifacts/helm
26-
mkdir -p artifacts/kubectl
2728
workingDirectory: '$(Build.ArtifactStagingDirectory)'
2829
displayName: 'Create Artifacts directories'
2930
3031
- task: HelmInstaller@1
31-
displayName: 'Install Helm'
32-
inputs:
33-
helmVersionToInstall: 2.14.1
34-
35-
- script: 'helm lint'
36-
workingDirectory: deploy/helm/sftp
37-
displayName: 'helm lint'
38-
39-
- task: HelmDeploy@0
40-
displayName: 'helm package'
4132
inputs:
42-
connectionType: None
43-
command: package
44-
chartPath: deploy/helm/sftp
45-
chartVersion: '$(Build.BuildNumber)'
46-
destination: '$(Build.ArtifactStagingDirectory)/artifacts/helm'
33+
helmVersionToInstall: 'latest'
4734

48-
- script: 'helm template --name sftp sftp > $(Build.ArtifactStagingDirectory)/artifacts/kubectl/sftp-$(Build.BuildNumber).yaml'
49-
workingDirectory: deploy/helm
50-
displayName: 'helm template'
35+
- script: |
36+
helm package --destination $(Build.ArtifactStagingDirectory)/artifacts/helm --version $(Build.BuildNumber) --app-version $(Build.BuildNumber) deploy/helm/sftp
37+
displayName: 'Helm Package'
5138
5239
- publish: '$(Build.ArtifactStagingDirectory)/artifacts/helm'
5340
artifact: 'helm'
54-
displayName: 'Publish helm artifact'
5541

56-
- publish: '$(Build.ArtifactStagingDirectory)/artifacts/kubectl'
57-
artifact: 'kubectl'
58-
displayName: 'Publish kubectl artifact'
42+
43+
44+
- job: build_docker_arm32
45+
displayName: "Docker arm32"
46+
pool:
47+
name: winromulus
48+
demands:
49+
- Agent.OSArchitecture -equals ARM
50+
steps:
51+
52+
- script: |
53+
apt-get update
54+
apt-get install \
55+
apt-transport-https \
56+
ca-certificates \
57+
curl \
58+
gnupg2 \
59+
software-properties-common
60+
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
61+
add-apt-repository \
62+
"deb [arch=amd64] https://download.docker.com/linux/debian \
63+
$(lsb_release -cs) \
64+
stable"
65+
apt-get update
66+
apt-get install docker-ce docker-ce-cli containerd.io
67+
displayName: 'Install docker'
68+
69+
- task: Docker@2
70+
displayName: 'Build arm32 image'
71+
inputs:
72+
containerRegistry: 'Emberstack Docker Hub'
73+
repository: $(imageRepository)
74+
Dockerfile: ES.SFTP.Host/Dockerfile
75+
command: build
76+
buildContext: .
77+
tags: 'build-$(Build.BuildNumber)-arm32'
78+
79+
- task: Docker@2
80+
displayName: "Push image"
81+
inputs:
82+
containerRegistry: "Emberstack Docker Hub"
83+
repository: $(imageRepository)
84+
command: push
85+
tags: |
86+
build-$(Build.BuildNumber)-arm32
87+
88+
89+
- job: build_docker_amd64
90+
displayName: "Docker amd64"
91+
pool:
92+
vmImage: "Ubuntu-16.04"
93+
steps:
94+
95+
- task: DockerInstaller@0
96+
displayName: 'Install docker'
97+
inputs:
98+
dockerVersion: '19.03.5'
5999

60100
- task: Docker@2
61-
displayName: "Build amd64 image"
101+
displayName: 'Build amd64 image'
62102
inputs:
63-
containerRegistry: "Emberstack Docker Hub"
103+
containerRegistry: 'Emberstack Docker Hub'
64104
repository: $(imageRepository)
65105
Dockerfile: ES.SFTP.Host/Dockerfile
66106
command: build
67107
buildContext: .
68-
tags: "build-$(Build.BuildNumber)-amd64"
108+
tags: 'build-$(Build.BuildNumber)-amd64'
69109

70110
- task: Docker@2
71-
displayName: "Push images"
111+
displayName: "Push image"
72112
inputs:
73113
containerRegistry: "Emberstack Docker Hub"
74114
repository: $(imageRepository)
75115
command: push
76116
tags: |
77117
build-$(Build.BuildNumber)-amd64
118+
119+
120+
- job: build_docker_multiarch
121+
displayName: "Docker multiarch"
122+
pool:
123+
vmImage: "Ubuntu-16.04"
124+
dependsOn:
125+
- build_docker_amd64
126+
steps:
127+
128+
- task: DockerInstaller@0
129+
displayName: 'Install docker'
130+
inputs:
131+
dockerVersion: '19.03.5'
132+
133+
- task: Docker@2
134+
displayName: "Docker Hub Login"
135+
inputs:
136+
containerRegistry: "Emberstack Docker Hub"
137+
command: login
78138

79139
- task: Docker@2
80140
displayName: "Docker Hub Login"
@@ -83,12 +143,14 @@ stages:
83143
command: login
84144

85145
- script: |
86-
docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64
146+
docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32
87147
docker manifest inspect $(imageRepository):build-$(Build.BuildNumber)
88148
docker manifest push $(imageRepository):build-$(Build.BuildNumber)
89149
displayName: "Create and push multi-arch manifest"
90150
91151
152+
153+
92154
- stage: release
93155
displayName: "Release"
94156
dependsOn: 'build'
@@ -101,31 +163,28 @@ stages:
101163
variables:
102164
- group: "OpenSource.GitHub"
103165
steps:
104-
- checkout: none
105166

106-
- download: current
107-
artifact: 'helm'
167+
- checkout: none
108168

109169
- download: current
110-
artifact: 'kubectl'
170+
artifact: 'helm'
111171

112172
- task: Docker@2
113173
displayName: "Docker Login"
114174
inputs:
115175
containerRegistry: "Emberstack Docker Hub"
116176
command: login
117177

118-
- task: HelmInstaller@0
119-
displayName: 'Install Helm'
178+
- task: HelmInstaller@1
120179
inputs:
121-
helmVersion: 2.13.1
122-
kubectlVersion: 1.10.11
180+
helmVersionToInstall: 'latest'
123181

124182
- script: |
125183
docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
126-
docker manifest create $(imageRepository):release-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64
127-
docker manifest push $(imageRepository):release-$(Build.BuildNumber)
128-
docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64
184+
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm32
185+
docker manifest create $(imageRepository):$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32
186+
docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32
187+
docker manifest push $(imageRepository):$(Build.BuildNumber)
129188
docker manifest push $(imageRepository):latest
130189
displayName: 'docker pull, tag and push'
131190
@@ -144,12 +203,7 @@ stages:
144203
git status
145204
git commit -m "Added sftp-$(Build.BuildNumber).tgz"
146205
git push
147-
displayName: 'Add chart to GitHub repository'
148-
149-
- script: |
150-
mkdir -p github
151-
cp $(Pipeline.Workspace)/kubectl/sftp-$(Build.BuildNumber).yaml github/sftp.yaml
152-
displayName: 'Prepare GitHub Artifacts'
206+
displayName: 'Add chart to GitHub repository'
153207
154208
- task: GitHubRelease@1
155209
displayName: 'GitHub release (create)'
@@ -161,5 +215,4 @@ stages:
161215
title: 'Release v$(Build.BuildNumber)'
162216
releaseNotesSource: inline
163217
releaseNotes: 'The release process is automated.'
164-
assets: '$(System.DefaultWorkingDirectory)/github/*.*'
165218

deploy/helm/sftp/templates/deployment.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ spec:
2626
{{- end }}
2727
containers:
2828
- name: {{ .Chart.Name }}
29+
{{- if .Values.image.tag }}
2930
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
31+
{{- else }}
32+
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
33+
{{- end }}
3034
imagePullPolicy: {{ .Values.image.pullPolicy }}
3135
ports:
3236
- name: ssh

deploy/helm/sftp/templates/service.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ metadata:
1010
{{- end }}
1111
spec:
1212
{{- if ne .Values.service.type "NodePort" }}
13+
{{- if .Values.service.clusterIP }}
1314
clusterIP: "{{ .Values.service.clusterIP }}"
1415
{{- end }}
16+
{{- end }}
1517
{{- if .Values.service.externalIPs }}
1618
externalIPs:
1719
{{ toYaml .Values.service.externalIPs | indent 4 }}

deploy/helm/sftp/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ replicaCount: 1
66

77
image:
88
repository: emberstack/sftp
9-
tag: latest
9+
tag: ""
1010
pullPolicy: Always
1111

1212
imagePullSecrets: []

0 commit comments

Comments
 (0)