Skip to content

Commit d2c4cc1

Browse files
authored
Merge pull request #1073 from Azure/refactor-pko
Use helm for pko
2 parents 19ddb5a + 575c0c1 commit d2c4cc1

14 files changed

+214
-2
lines changed

.github/workflows/services-ci.yml

+27
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,30 @@
157157
run: |
158158
cd tooling/image-sync
159159
make push
160+
161+
build_push_package_operator:
162+
permissions:
163+
id-token: 'write'
164+
contents: 'read'
165+
runs-on: 'ubuntu-latest'
166+
steps:
167+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
168+
with:
169+
fetch-depth: 1
170+
171+
- name: "install azure-cli"
172+
if: inputs.push == true
173+
uses: "Azure/ARO-HCP@main"
174+
175+
- name: 'Az CLI login'
176+
if: inputs.push == true
177+
uses: azure/login@v2
178+
with:
179+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
180+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
181+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
182+
183+
- name: Build package operator container image from [email protected]:package-operator/package-operator.git
184+
run: |
185+
cd pko
186+
make image

config/config.schema.json

+20
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,26 @@
126126
"regionalSubdomain"
127127
]
128128
},
129+
"pko": {
130+
"type": "object",
131+
"properties": {
132+
"image": {
133+
"type": "string"
134+
},
135+
"imageManager": {
136+
"type": "string"
137+
},
138+
"imageTag": {
139+
"type": "string"
140+
}
141+
},
142+
"additionalProperties": false,
143+
"required": [
144+
"image",
145+
"imageManager",
146+
"imageTag"
147+
]
148+
},
129149
"clusterService": {
130150
"type": "object",
131151
"properties": {

config/config.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ defaults:
8686
consumerName: hcp-underlay-{{ .ctx.regionShort }}-mgmt-{{ .ctx.stamp }}
8787
imageBase: quay.io/redhat-user-workloads/maestro-rhtap-tenant/maestro/maestro
8888

89+
pko:
90+
image: arohcpsvcdev.azurecr.io/package-operator/package-operator-package
91+
imageManager: arohcpsvcdev.azurecr.io/package-operator/package-operator-manager
92+
imageTag: v1.15.0
93+
8994
# Cluster Service
9095
clusterService:
9196
acrRG: global

config/public-cloud-cs-pr.json

+5
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@
187187
},
188188
"ocpAcrName": "arohcpocpdev",
189189
"oidcStorageAccountName": "arohcpoidccspr",
190+
"pko": {
191+
"image": "arohcpsvcdev.azurecr.io/package-operator/package-operator-package",
192+
"imageManager": "arohcpsvcdev.azurecr.io/package-operator/package-operator-manager",
193+
"imageTag": "v1.15.0"
194+
},
190195
"region": "westus3",
191196
"regionRG": "hcp-underlay-cspr",
192197
"serviceKeyVault": {

config/public-cloud-dev.json

+5
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@
187187
},
188188
"ocpAcrName": "arohcpocpdev",
189189
"oidcStorageAccountName": "arohcpoidcdev",
190+
"pko": {
191+
"image": "arohcpsvcdev.azurecr.io/package-operator/package-operator-package",
192+
"imageManager": "arohcpsvcdev.azurecr.io/package-operator/package-operator-manager",
193+
"imageTag": "v1.15.0"
194+
},
190195
"region": "westus3",
191196
"regionRG": "hcp-underlay-dev",
192197
"serviceKeyVault": {

config/public-cloud-personal-dev.json

+5
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@
187187
},
188188
"ocpAcrName": "arohcpocpdev",
189189
"oidcStorageAccountName": "arohcpoidcusw3tst",
190+
"pko": {
191+
"image": "arohcpsvcdev.azurecr.io/package-operator/package-operator-package",
192+
"imageManager": "arohcpsvcdev.azurecr.io/package-operator/package-operator-manager",
193+
"imageTag": "v1.15.0"
194+
},
190195
"region": "westus3",
191196
"regionRG": "hcp-underlay-usw3tst",
192197
"serviceKeyVault": {

pko/Makefile

+33-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,37 @@
1-
SHELL = /bin/bash
1+
-include ../setup-env.mk
2+
-include ../helm-cmd.mk
3+
HELM_CMD ?= helm upgrade --install
4+
5+
NAMESPACE ?= package-operator-system
6+
ARO_HCP_IMAGE_REGISTRY ?= ${ARO_HCP_IMAGE_ACR}.azurecr.io
7+
ARO_HCP_IMAGE_REPOSITORY ?= package-operator/package-operator-package
28

39
deploy:
4-
kubectl apply -f https://github.com/package-operator/package-operator/releases/download/v1.15.0/self-bootstrap-job.yaml
10+
@kubectl create namespace ${NAMESPACE} --dry-run=client -o json | kubectl apply -f -
11+
IMAGE_PULLER_MI_CLIENT_ID=$$(az identity show \
12+
-g ${RESOURCEGROUP} \
13+
-n image-puller \
14+
--query clientId -o tsv) && \
15+
IMAGE_PULLER_MI_TENANT_ID=$$(az identity show \
16+
-g ${RESOURCEGROUP} \
17+
-n image-puller \
18+
--query tenantId -o tsv) && \
19+
${HELM_CMD} package-operator ./helm \
20+
--namespace ${NAMESPACE} \
21+
--set pkoImage=${PKO_IMAGE} \
22+
--set pkoImageManager=${PKO_IMAGE_MANAGER} \
23+
--set pkoImageTag=${PKO_IMAGE_TAG} \
24+
--set pullBinding.workloadIdentityClientId="$${IMAGE_PULLER_MI_CLIENT_ID}" \
25+
--set pullBinding.workloadIdentityTenantId="$${IMAGE_PULLER_MI_TENANT_ID}" \
26+
--set pullBinding.registry=${ARO_HCP_IMAGE_REGISTRY} \
27+
--set pullBinding.scope='repository:*:pull'
28+
29+
image:
30+
az acr login --name ${ARO_HCP_IMAGE_ACR} && \
31+
cd $$(mktemp -d) && \
32+
git clone https://github.com/package-operator/package-operator.git && \
33+
cd package-operator && \
34+
git checkout ${PKO_IMAGE_TAG} && \
35+
IMAGE_REGISTRY=${ARO_HCP_IMAGE_REGISTRY}/package-operator ./do ci:release
536

637
.PHONY: deploy

pko/helm/Chart.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v2
2+
name: package-operator
3+
description: A Helm chart for package-operator
4+
type: application
5+
6+
version: 0.1.0
7+
appVersion: "1.0.0"
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: acrpull.microsoft.com/v1beta2
2+
kind: AcrPullBinding
3+
metadata:
4+
name: pull-binding
5+
spec:
6+
acr:
7+
environment: PublicCloud
8+
server: {{ .Values.pullBinding.registry }}
9+
scope: {{ .Values.pullBinding.scope }}
10+
auth:
11+
workloadIdentity:
12+
serviceAccountRef: package-operator
13+
clientID: {{ .Values.pullBinding.workloadIdentityClientId }}
14+
tenantID: {{ .Values.pullBinding.workloadIdentityTenantId }}
15+
serviceAccountName: package-operator
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: package-operator
5+
labels:
6+
package-operator.run/cache: "True"
7+
roleRef:
8+
apiGroup: rbac.authorization.k8s.io
9+
kind: ClusterRole
10+
name: cluster-admin
11+
subjects:
12+
- kind: ServiceAccount
13+
name: package-operator
14+
namespace: package-operator-system

pko/helm/templates/job.yaml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: package-operator-bootstrap
5+
namespace: package-operator-system
6+
spec:
7+
# delete right after completion
8+
ttlSecondsAfterFinished: 0
9+
# set deadline to 30min
10+
activeDeadlineSeconds: 1800
11+
template:
12+
spec:
13+
restartPolicy: OnFailure
14+
serviceAccountName: package-operator
15+
containers:
16+
- name: package-operator
17+
image: "{{ .Values.pkoImageManager }}:{{ .Values.pkoImageTag }}"
18+
args: ["-self-bootstrap={{ .Values.pkoImage }}:{{ .Values.pkoImageTag }}"]
19+
imagePullPolicy: Always
20+
env:
21+
- name: PKO_REGISTRY_HOST_OVERRIDES
22+
value: ''
23+
- name: PKO_CONFIG
24+
value: ''
25+
- name: PKO_NAMESPACE
26+
valueFrom:
27+
fieldRef:
28+
fieldPath: metadata.namespace
29+
- name: PKO_SERVICE_ACCOUNT_NAMESPACE
30+
valueFrom:
31+
fieldRef:
32+
fieldPath: metadata.namespace
33+
- name: PKO_SERVICE_ACCOUNT_NAME
34+
valueFrom:
35+
fieldRef:
36+
fieldPath: spec.serviceAccountName
37+
backoffLimit: 3
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: package-operator
5+
namespace: package-operator-system
6+
labels:
7+
package-operator.run/cache: "True"

pko/helm/values.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
pkoImage: ""
2+
pkoImageManager: ""
3+
pkoImageTag: ""
4+
pullBinding:
5+
registry: ""
6+
scope: ""
7+
workloadIdentityClientId: ""
8+
workloadIdentityTenantId: ""

pko/pipeline.yaml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
$schema: "pipeline.schema.v1"
2+
serviceGroup: Microsoft.Azure.ARO.HCP.RP.PKO
3+
rolloutName: RP PKO Rollout
4+
resourceGroups:
5+
- name: {{ .mgmt.rg }}
6+
subscription: {{ .svc.subscription }}
7+
aksCluster: {{ .aksName }}
8+
steps:
9+
- name: deploy
10+
action: Shell
11+
command: make deploy
12+
dryRun:
13+
variables:
14+
- name: DRY_RUN
15+
value: "true"
16+
variables:
17+
- name: ARO_HCP_IMAGE_ACR
18+
configRef: svcAcrName
19+
- name: PKO_IMAGE
20+
configRef: pko.image
21+
- name: PKO_IMAGE_MANAGER
22+
configRef: pko.imageManager
23+
- name: PKO_IMAGE_TAG
24+
configRef: pko.imageTag
25+
- name: RESOURCEGROUP
26+
configRef: mgmt.rg

0 commit comments

Comments
 (0)