Skip to content

Commit 9d90628

Browse files
committed
Hotfix: Update pipelines and base chart
1 parent 821bc34 commit 9d90628

File tree

6 files changed

+141
-144
lines changed

6 files changed

+141
-144
lines changed

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Azure Pipelines Agent
22
[Azure Pipelines Agent](https://github.com/emberstack/docker-azure-pipelines-agent) is self-hosted agent that you can run in a container with Docker.
33

4-
[![Build Status](https://dev.azure.com/emberstack/OpenSource/_apis/build/status/docker-azure-pipelines-agent?branchName=master)](https://dev.azure.com/emberstack/OpenSource/_build/latest?definitionId=17&branchName=master)
4+
[![Build Status](https://dev.azure.com/emberstack/OpenSource/_apis/build/status/docker-azure-pipelines-agent?branchName=main)](https://dev.azure.com/emberstack/OpenSource/_build/latest?definitionId=17&branchName=main)
55
[![Release](https://img.shields.io/github/release/emberstack/docker-azure-pipelines-agent.svg?style=flat-square)](https://github.com/emberstack/docker-azure-pipelines-agent/releases/latest)
66
[![Docker Image](https://img.shields.io/docker/image-size/emberstack/azure-pipelines-agent/latest?style=flat-square)](https://hub.docker.com/r/emberstack/azure-pipelines-agent)
77
[![Docker Pulls](https://img.shields.io/docker/pulls/emberstack/azure-pipelines-agent.svg?style=flat-square)](https://hub.docker.com/r/emberstack/azure-pipelines-agent)
@@ -16,9 +16,6 @@ The Azure Pipeliens agent can be deployed either manually or using Helm (recomme
1616

1717
### Support
1818
If you need help or found a bug, please feel free to open an issue on the [emberstack/docker-azure-pipelines-agent](https://github.com/emberstack/docker-azure-pipelines-agent) GitHub project.
19-
20-
You can also join our Slack workspace and talk to us:
21-
[![slack](https://img.shields.io/badge/join-emberstack%20on%20Slack-gray.svg?style=flat-square&longCache=true&logo=slack&colorB=green)](https://join.slack.com/t/emberstack/shared_invite/zt-8qyutopg-9ghwTq3OnHSm2tY9Sk5ULA)
2219

2320
#### Deployment using Helm
2421

azure-pipelines.yaml

Lines changed: 100 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -24,131 +24,129 @@ stages:
2424
pool:
2525
vmImage: ubuntu-latest
2626
steps:
27+
- task: HelmInstaller@1
28+
inputs:
29+
helmVersionToInstall: "3.7.0"
30+
displayName: "tools - helm - install"
2731
- task: DockerInstaller@0
28-
displayName: "Docker install"
32+
displayName: "tools - docker - install"
2933
inputs:
30-
dockerVersion: "19.03.9"
31-
34+
dockerVersion: "20.10.9"
3235
- task: Docker@2
33-
displayName: "Docker login"
36+
displayName: "tools - docker - login"
3437
inputs:
3538
containerRegistry: "Emberstack Docker Hub"
3639
command: login
3740

3841
- script: |
3942
mkdir -p artifacts/helm
4043
workingDirectory: "$(Build.ArtifactStagingDirectory)"
41-
displayName: "Create Artifacts directories"
44+
displayName: "artifacts - prepare directories"
4245
43-
- task: HelmInstaller@1
44-
inputs:
45-
helmVersionToInstall: "3.2.4"
46-
displayName: "Helm install"
4746
4847
- script: |
49-
cp README.md src/helm/azure-pipelines-agent/README.md
50-
displayName: "Import README in helm chart"
51-
48+
cp README.md src/helm/reflector/README.md
49+
displayName: "helm - import README"
5250
- script: |
5351
helm package --destination $(Build.ArtifactStagingDirectory)/artifacts/helm --version $(Build.BuildNumber) --app-version $(Build.BuildNumber) src/helm/azure-pipelines-agent
54-
displayName: "Helm Package"
55-
52+
displayName: "helm - template chart"
5653
- publish: "$(Build.ArtifactStagingDirectory)/artifacts/helm"
5754
artifact: "helm"
58-
displayName: "Publish helm artifact"
55+
displayName: "artifacts - publish - helm chart"
5956

6057
- script: |
6158
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
6259
docker buildx rm builder
6360
docker buildx create --name builder --driver docker-container --use
6461
docker buildx inspect --bootstrap
65-
docker buildx build --push --platform linux/amd64 -t $(imageRepository):build-$(Build.BuildNumber)-amd64 -f src/docker/Dockerfile src/docker
66-
docker buildx build --push --platform linux/arm -t $(imageRepository):build-$(Build.BuildNumber)-arm -f src/docker/Dockerfile src/docker
67-
docker buildx build --push --platform linux/arm64 -t $(imageRepository):build-$(Build.BuildNumber)-arm64 -f src/docker/Dockerfile src/docker
62+
docker buildx build --push --platform linux/amd64 -t $(imageRepository):build-$(Build.BuildNumber)-amd64 -f src/ES.Kubernetes.Reflector/Dockerfile src/
63+
docker buildx build --push --platform linux/arm -t $(imageRepository):build-$(Build.BuildNumber)-arm32v7 -f src/ES.Kubernetes.Reflector/Dockerfile src/
64+
docker buildx build --push --platform linux/arm64 -t $(imageRepository):build-$(Build.BuildNumber)-arm64v8 -f src/ES.Kubernetes.Reflector/Dockerfile src/
6865
docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
69-
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm
70-
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64
71-
docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
66+
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm32v7
67+
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64v8
68+
docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
7269
docker manifest inspect $(imageRepository):build-$(Build.BuildNumber)
7370
docker manifest push $(imageRepository):build-$(Build.BuildNumber)
74-
displayName: "Build and push multi-arch Docker image"
75-
76-
- stage: cd
77-
displayName: "CD"
78-
dependsOn: "ci"
79-
condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'Manual'), in(variables['Build.SourceBranchName'], 'master'))
80-
jobs:
81-
- job: release
82-
displayName: "Release Job"
83-
pool:
84-
vmImage: ubuntu-latest
85-
variables:
86-
- group: "OpenSource.GitHub"
87-
steps:
88-
- checkout: none
89-
90-
- download: current
91-
artifact: "helm"
92-
displayName: "Download helm artifact"
93-
94-
- task: DockerInstaller@0
95-
displayName: "Docker install"
96-
inputs:
97-
dockerVersion: "19.03.9"
98-
99-
- task: Docker@2
100-
displayName: "Docker login"
101-
inputs:
102-
containerRegistry: "Emberstack Docker Hub"
103-
command: login
104-
105-
- task: HelmInstaller@1
106-
inputs:
107-
helmVersionToInstall: "3.1.1"
108-
displayName: "Helm install"
109-
110-
- script: |
111-
docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
112-
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm
113-
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64
114-
docker manifest create $(imageRepository):$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
115-
docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
116-
docker manifest push $(imageRepository):$(Build.BuildNumber)
117-
docker manifest push $(imageRepository):latest
118-
docker manifest push $(imageRepository):$(Build.BuildNumber)
119-
docker manifest push $(imageRepository):latest
120-
docker tag $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):$(Build.BuildNumber)-amd64
121-
docker tag $(imageRepository):build-$(Build.BuildNumber)-arm64 $(imageRepository):$(Build.BuildNumber)-arm64
122-
docker tag $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):$(Build.BuildNumber)-arm
123-
docker push $(imageRepository):$(Build.BuildNumber)-amd64
124-
docker push $(imageRepository):$(Build.BuildNumber)-arm
125-
docker push $(imageRepository):$(Build.BuildNumber)-arm64
126-
displayName: "Build and push multi-arch Docker image"
127-
128-
- script: |
129-
git config --global user.email "$(emberstack-agent-email)"
130-
git config --global user.name "$(emberstack-agent-name)"
131-
git clone https://$(emberstack-agent-username):$(emberstack-agent-pat)@github.com/emberstack/helm-charts.git
132-
133-
mkdir -p helm-charts/charts
134-
cp $(Pipeline.Workspace)/helm/azure-pipelines-agent-$(Build.BuildNumber).tgz helm-charts/charts
135-
136-
cd helm-charts
137-
rm index.yaml
138-
helm repo index ./
139-
git add .
140-
git status
141-
git commit -m "Added azure-pipelines-agent-$(Build.BuildNumber).tgz"
142-
git push
143-
displayName: "Create chart release"
144-
145-
- task: GitHubRelease@1
146-
displayName: "Create GitHub release"
147-
inputs:
148-
gitHubConnection: GitHub
149-
repositoryName: "EmberStack/docker-azure-pipelines-agent"
150-
tagSource: userSpecifiedTag
151-
tag: "v$(Build.BuildNumber)"
152-
title: "Release v$(Build.BuildNumber)"
153-
releaseNotesSource: inline
154-
releaseNotes: "The release process is automated."
71+
displayName: "docker - build and publish"
72+
73+
- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
74+
- stage: cd
75+
displayName: "CD"
76+
dependsOn: "ci"
77+
condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'Manual'), in(variables['Build.SourceBranchName'], 'master'))
78+
jobs:
79+
- job: release
80+
displayName: "Release"
81+
pool:
82+
vmImage: ubuntu-latest
83+
variables:
84+
- group: "OpenSource.GitHub"
85+
steps:
86+
- checkout: none
87+
88+
89+
- task: HelmInstaller@1
90+
inputs:
91+
helmVersionToInstall: "3.7.0"
92+
displayName: "tools - helm - install"
93+
- task: DockerInstaller@0
94+
displayName: "tools - docker - install"
95+
inputs:
96+
dockerVersion: "20.10.9"
97+
- task: Docker@2
98+
displayName: "tools - docker - login"
99+
inputs:
100+
containerRegistry: "Emberstack Docker Hub"
101+
command: login
102+
103+
104+
- download: current
105+
artifact: "helm"
106+
displayName: "artifacts - download - helm chart"
107+
108+
109+
- script: |
110+
docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
111+
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm32v7
112+
docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64v8
113+
docker manifest create $(imageRepository):$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
114+
docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
115+
docker manifest push $(imageRepository):$(Build.BuildNumber)
116+
docker manifest push $(imageRepository):latest
117+
docker manifest push $(imageRepository):$(Build.BuildNumber)
118+
docker manifest push $(imageRepository):latest
119+
docker tag $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):$(Build.BuildNumber)-amd64
120+
docker tag $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):$(Build.BuildNumber)-arm32v7
121+
docker tag $(imageRepository):build-$(Build.BuildNumber)-arm64v8 $(imageRepository):$(Build.BuildNumber)-arm64v8
122+
docker push $(imageRepository):$(Build.BuildNumber)-amd64
123+
docker push $(imageRepository):$(Build.BuildNumber)-arm32v7
124+
docker push $(imageRepository):$(Build.BuildNumber)-arm64v8
125+
displayName: "Build and push multi-arch Docker image"
126+
- script: |
127+
git config --global user.email "$(emberstack-agent-email)"
128+
git config --global user.name "$(emberstack-agent-name)"
129+
git clone https://$(emberstack-agent-username):$(emberstack-agent-pat)@github.com/emberstack/helm-charts.git
130+
131+
mkdir -p helm-charts/charts
132+
cp $(Pipeline.Workspace)/helm/azure-pipelines-agent-$(Build.BuildNumber).tgz helm-charts/charts
133+
134+
cd helm-charts
135+
rm index.yaml
136+
helm repo index ./
137+
git add .
138+
git status
139+
git commit -m "Added azure-pipelines-agent-$(Build.BuildNumber).tgz"
140+
git push
141+
displayName: "github - release - chart"
142+
143+
- task: GitHubRelease@1
144+
displayName: "github - create release"
145+
inputs:
146+
gitHubConnection: GitHub
147+
repositoryName: "EmberStack/docker-azure-pipelines-agent"
148+
tagSource: userSpecifiedTag
149+
tag: "v$(Build.BuildNumber)"
150+
title: "Release v$(Build.BuildNumber)"
151+
releaseNotesSource: inline
152+
releaseNotes: "The release process is automated."
Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,34 @@
1-
{{/* vim: set filetype=mustache: */}}
21
{{/*
32
Expand the name of the chart.
43
*/}}
54
{{- define "azure-pipelines-agent.name" -}}
6-
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7-
{{- end -}}
5+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
6+
{{- end }}
87

98
{{/*
109
Create a default fully qualified app name.
1110
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
1211
If release name contains chart name it will be used as a full name.
1312
*/}}
1413
{{- define "azure-pipelines-agent.fullname" -}}
15-
{{- if .Values.fullnameOverride -}}
16-
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17-
{{- else -}}
18-
{{- $name := default .Chart.Name .Values.nameOverride -}}
19-
{{- if contains $name .Release.Name -}}
20-
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21-
{{- else -}}
22-
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23-
{{- end -}}
24-
{{- end -}}
25-
{{- end -}}
14+
{{- if .Values.fullnameOverride }}
15+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
16+
{{- else }}
17+
{{- $name := default .Chart.Name .Values.nameOverride }}
18+
{{- if contains $name .Release.Name }}
19+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
20+
{{- else }}
21+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
22+
{{- end }}
23+
{{- end }}
24+
{{- end }}
2625

2726
{{/*
2827
Create chart name and version as used by the chart label.
2928
*/}}
3029
{{- define "azure-pipelines-agent.chart" -}}
31-
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32-
{{- end -}}
30+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
31+
{{- end }}
3332

3433
{{/*
3534
Common labels
@@ -41,23 +40,23 @@ helm.sh/chart: {{ include "azure-pipelines-agent.chart" . }}
4140
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
4241
{{- end }}
4342
app.kubernetes.io/managed-by: {{ .Release.Service }}
44-
{{- end -}}
43+
{{- end }}
4544

4645
{{/*
4746
Selector labels
4847
*/}}
4948
{{- define "azure-pipelines-agent.selectorLabels" -}}
5049
app.kubernetes.io/name: {{ include "azure-pipelines-agent.name" . }}
5150
app.kubernetes.io/instance: {{ .Release.Name }}
52-
{{- end -}}
51+
{{- end }}
5352

5453
{{/*
5554
Create the name of the service account to use
5655
*/}}
5756
{{- define "azure-pipelines-agent.serviceAccountName" -}}
58-
{{- if .Values.serviceAccount.create -}}
59-
{{ default (include "azure-pipelines-agent.fullname" .) .Values.serviceAccount.name }}
60-
{{- else -}}
61-
{{ default "default" .Values.serviceAccount.name }}
62-
{{- end -}}
63-
{{- end -}}
57+
{{- if .Values.serviceAccount.create }}
58+
{{- default (include "azure-pipelines-agent.fullname" .) .Values.serviceAccount.name }}
59+
{{- else }}
60+
{{- default "default" .Values.serviceAccount.name }}
61+
{{- end }}
62+
{{- end }}

src/helm/azure-pipelines-agent/templates/serviceaccount.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@ kind: ServiceAccount
44
metadata:
55
name: {{ include "azure-pipelines-agent.serviceAccountName" . }}
66
labels:
7-
{{ include "azure-pipelines-agent.labels" . | nindent 4 }}
8-
{{- end -}}
7+
{{- include "azure-pipelines-agent.labels" . | nindent 4 }}
8+
{{- with .Values.serviceAccount.annotations }}
9+
annotations:
10+
{{- toYaml . | nindent 4 }}
11+
{{- end }}
12+
{{- end }}

src/helm/azure-pipelines-agent/templates/statefulset.yaml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,22 @@ spec:
1010
selector:
1111
matchLabels:
1212
{{- include "azure-pipelines-agent.selectorLabels" . | nindent 6 }}
13-
serviceName: test
1413
template:
1514
metadata:
15+
{{- with .Values.podAnnotations }}
16+
annotations:
17+
{{- toYaml . | nindent 8 }}
18+
{{- end }}
1619
labels:
1720
{{- include "azure-pipelines-agent.selectorLabels" . | nindent 8 }}
1821
spec:
19-
{{- with .Values.imagePullSecrets }}
22+
{{- with .Values.imagePullSecrets }}
2023
imagePullSecrets:
2124
{{- toYaml . | nindent 8 }}
22-
{{- end }}
23-
serviceAccountName: {{ template "azure-pipelines-agent.serviceAccountName" . }}
24-
{{- if .Values.securityContext }}
25-
securityContext:
26-
{{- toYaml .Values.securityContext | nindent 8 }}
2725
{{- end }}
26+
serviceAccountName: {{ include "azure-pipelines-agent.serviceAccountName" . }}
27+
securityContext:
28+
{{- toYaml .Values.podSecurityContext | nindent 8 }}
2829
containers:
2930
- name: {{ .Chart.Name }}
3031
{{- if .Values.pipelines.agent.mountDocker }}
@@ -42,10 +43,7 @@ spec:
4243
{{- end }}
4344
{{- end }}
4445
{{- if .Values.image.tag }}
45-
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
46-
{{- else }}
47-
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
48-
{{- end }}
46+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
4947
imagePullPolicy: {{ .Values.image.pullPolicy }}
5048
env:
5149
- name: AZP_AGENT_NAME

src/helm/azure-pipelines-agent/values.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ replicaCount: 1
66

77
image:
88
repository: emberstack/azure-pipelines-agent
9+
pullPolicy: IfNotPresent
10+
# Overrides the image tag whose default is the chart appVersion.
911
tag: ""
10-
pullPolicy: Always
1112

1213
imagePullSecrets: []
1314
nameOverride: ""

0 commit comments

Comments
 (0)