Skip to content

Commit 898b644

Browse files
committed
WIP: Patch base for helm use
Signed-off-by: Todd Short <[email protected]>
1 parent 6612d3b commit 898b644

25 files changed

+5941
-6366
lines changed

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,17 +157,17 @@ manifests: $(CONTROLLER_GEN) $(KUSTOMIZE) #EXHELP Generate WebhookConfiguration,
157157
# Generate CRDs via our own generator
158158
hack/tools/update-crds.sh
159159
# Generate the remaining operator-controller standard manifests
160-
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/standard
160+
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=operator-controller-manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/standard
161161
# Generate the remaining operator-controller experimental manifests
162-
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/experimental
162+
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=operator-controller-manager-role paths="./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR)/experimental
163163
# Generate the remaining catalogd standard manifests
164-
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/standard
164+
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard rbac:roleName=catalogd-manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/standard
165165
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS),standard webhook paths="./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR)/standard
166166
# Generate the remaining catalogd experimental manifests
167-
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/experimental
167+
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) rbac:roleName=catalogd-manager-role paths="./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR)/experimental
168168
$(CONTROLLER_GEN) --load-build-tags=$(GO_BUILD_TAGS) webhook paths="./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR)/experimental
169169
# Update base config to include helm templates
170-
./hack/tools/update-yaml-labels-annotations.sh
170+
./hack/tools/patch-base-for-helm.sh
171171
# Generate manifests stored in source-control
172172
mkdir -p $(MANIFEST_HOME)
173173
helm template olmv1 helm/olmv1 --values helm/standard.yaml > $(STANDARD_MANIFEST)

hack/tools/patch-base-for-helm.sh

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/bin/bash
2+
3+
set -x
4+
5+
# Patch catalogd rbac
6+
catalogd_rbac_filelist=(
7+
helm/olmv1/base/catalogd/rbac/experimental/*.yaml
8+
helm/olmv1/base/catalogd/rbac/standard/*.yaml
9+
)
10+
for f in "${catalogd_rbac_filelist[@]}"; do
11+
yq -i '.metadata.labels["app.kubernetes.io/name"] = "catalogd"' "${f}"
12+
rm "${f}.bak"
13+
done
14+
15+
# Patch operator-controller rbac
16+
operator_controller_rbac_filelist=(
17+
helm/olmv1/base/operator-controller/rbac/experimental/*.yaml
18+
helm/olmv1/base/operator-controller/rbac/standard/*.yaml
19+
)
20+
for f in "${operator_controller_rbac_filelist[@]}"; do
21+
yq -i '.metadata.labels["app.kubernetes.io/name"] = "operator-controller"' "${f}"
22+
rm "${f}.bak"
23+
done
24+
25+
# Patch catalogd webhook
26+
catalogd_webhook_filelist=(
27+
helm/olmv1/base/catalogd/webhook/experimental/*.yaml
28+
helm/olmv1/base/catalogd/webhook/standard/*.yaml
29+
)
30+
for f in "${catalogd_webhook_filelist[@]}"; do
31+
yq -i '.metadata.labels["app.kubernetes.io/name"] = "catalogd"' "${f}"
32+
yq -i '.metadata.name = "catalogd-mutating-webhook-configuration"' "${f}"
33+
# This really only applies to cert-manager configs, but it's an annotation
34+
yq -i '.metadata.annotations["cert-manager.io/inject-ca-from-secret"] = "cert-manager/olmv1-ca"' "${f}"
35+
yq -i '.webhooks[0].clientConfig.service.namespace = "olmv1-system"' "${f}"
36+
yq -i '.webhooks[0].clientConfig.service.name = "catalogd-service"' "${f}"
37+
yq -i '.webhooks[0].clientConfig.service.port = 9443' "${f}"
38+
yq -i '.webhooks[0].matchConditions[0].name = "MissingOrIncorrectMetadataNameLabel"' "${f}"
39+
yq -i '.webhooks[0].matchConditions[0].expression = "\"name\" in object.metadata && (!has(object.metadata.labels) || !(\"olm.operatorframework.io/metadata.name\" in object.metadata.labels) || object.metadata.labels[\"olm.operatorframework.io/metadata.name\"] != object.metadata.name)"' "${f}"
40+
rm "${f}.bak"
41+
done
42+
43+
# Patch everything genericly
44+
filelist=(
45+
helm/olmv1/base/catalogd/rbac/experimental/*.yaml
46+
helm/olmv1/base/catalogd/rbac/standard/*.yaml
47+
helm/olmv1/base/catalogd/crd/experimental/*.yaml
48+
helm/olmv1/base/catalogd/crd/standard/*.yaml
49+
helm/olmv1/base/catalogd/webhook/experimental/*.yaml
50+
helm/olmv1/base/catalogd/webhook/standard/*.yaml
51+
helm/olmv1/base/operator-controller/rbac/experimental/*.yaml
52+
helm/olmv1/base/operator-controller/rbac/standard/*.yaml
53+
helm/olmv1/base/operator-controller/crd/experimental/*.yaml
54+
helm/olmv1/base/operator-controller/crd/standard/*.yaml
55+
)
56+
57+
for f in "${filelist[@]}"; do
58+
# Patch in the temporary items
59+
yq -i '.metadata.annotations.replaceMe = "annotations"' "${f}"
60+
yq -i '.metadata.labels.replaceMe = "labels"' "${f}"
61+
# Replace with helm template - must be done last or yq will complain about the file format
62+
sed -i.bak 's/replaceMe: annotations/{{- include "olmv1.annotations" . | nindent 4 }}/g' "${f}"
63+
sed -i.bak 's/replaceMe: labels/{{- include "olmv1.labels" . | nindent 4 }}/g' "${f}"
64+
sed -i.bak 's/olmv1-system/{{ .Values.namespaces.olmv1.name }}/g' "${f}"
65+
# Delete sed's backup file
66+
rm "${f}.bak"
67+
done

hack/tools/update-yaml-labels-annotations.sh

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)