Skip to content

Commit 38f9c4b

Browse files
cbandyjkatz
authored andcommitted
Automatically set the Application icon during install
The manual installation instructions missed this step resulting in a broken icon. The icon source and tools needed to render it are already included in the installer image. Issue: [ch6131]
1 parent 78119e8 commit 38f9c4b

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

installers/gcp-marketplace/Dockerfile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ COPY installers/gcp-marketplace/test-pod.yaml \
3838
/data-test/manifest/
3939

4040
ARG PGO_VERSION
41-
RUN env OPERATOR_ICON_BASE64="$(base64 --wrap=0 /opt/postgres-operator/favicon.png)" envsubst '$OPERATOR_ICON_BASE64' \
42-
< /data/manifest/application.yaml > /tmp/sponge && mv /tmp/sponge /data/manifest/application.yaml \
43-
&& for file in \
41+
RUN for file in \
4442
/data/schema.yaml \
4543
/data/manifest/application.yaml \
4644
; do envsubst '$PGO_VERSION' < "$file" > /tmp/sponge && mv /tmp/sponge "$file" ; done

installers/gcp-marketplace/application.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ metadata:
44
name: '${OPERATOR_NAME}'
55
labels:
66
app.kubernetes.io/name: '${OPERATOR_NAME}'
7-
annotations:
8-
kubernetes-engine.cloud.google.com/icon: >-
9-
data:image/png;base64,${OPERATOR_ICON_BASE64}
107
spec:
118
selector:
129
matchLabels:

installers/gcp-marketplace/install-hook.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ set -eu
44

55
kc() { kubectl --namespace="$NAMESPACE" "$@"; }
66

7-
application_metadata="$( kc get "applications.app.k8s.io/$NAME" --output=json )"
8-
application_metadata="$( jq <<< "$application_metadata" '{ metadata: {
7+
application_ownership="$( kc get "applications.app.k8s.io/$NAME" --output=json )"
8+
application_ownership="$( jq <<< "$application_ownership" '{ metadata: {
99
labels: { "app.kubernetes.io/name": .metadata.name },
1010
ownerReferences: [{
1111
apiVersion, kind, name: .metadata.name, uid: .metadata.uid
@@ -23,18 +23,18 @@ installer="$( /bin/config_env.py envsubst < /opt/postgres-operator/install-job.y
2323
inventory="$( /bin/config_env.py envsubst < /opt/postgres-operator/inventory.ini )"
2424

2525
kc create --filename=/dev/stdin <<< "$installer"
26-
kc patch job/install-postgres-operator --type=strategic --patch="$application_metadata"
26+
kc patch job/install-postgres-operator --type=strategic --patch="$application_ownership"
2727

28-
job_metadata="$( kc get job/install-postgres-operator --output=json )"
29-
job_metadata="$( jq <<< "$job_metadata" '{ metadata: {
28+
job_ownership="$( kc get job/install-postgres-operator --output=json )"
29+
job_ownership="$( jq <<< "$job_ownership" '{ metadata: {
3030
labels: { "app.kubernetes.io/name": .metadata.labels["app.kubernetes.io/name"] },
3131
ownerReferences: [{
3232
apiVersion, kind, name: .metadata.name, uid: .metadata.uid
3333
}]
3434
} }' )"
3535

3636
kc create secret generic install-postgres-operator --from-file=inventory=/dev/stdin <<< "$inventory"
37-
kc patch secret/install-postgres-operator --type=strategic --patch="$job_metadata"
37+
kc patch secret/install-postgres-operator --type=strategic --patch="$job_ownership"
3838

3939
# Wait for either status condition then terminate the other.
4040
kc wait --for=condition=complete --timeout=5m job/install-postgres-operator &

installers/gcp-marketplace/install.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ set -eu
44

55
kc() { kubectl --namespace="$NAMESPACE" "$@"; }
66

7-
application_metadata="$( kc get "applications.app.k8s.io/$NAME" --output=json )"
8-
application_metadata="$( jq <<< "$application_metadata" '{ metadata: {
7+
application_ownership="$( kc get "applications.app.k8s.io/$NAME" --output=json )"
8+
application_ownership="$( jq <<< "$application_ownership" '{ metadata: {
99
labels: { "app.kubernetes.io/name": .metadata.name },
1010
ownerReferences: [{
1111
apiVersion, kind, name: .metadata.name, uid: .metadata.uid
@@ -19,6 +19,13 @@ if [ -n "$existing" ]; then
1919
exit 1
2020
fi
2121

22+
application_icon="$( base64 --wrap=0 /opt/postgres-operator/favicon.png )"
23+
application_metadata="$( jq <<< '{}' --arg icon "$application_icon" '{ metadata: {
24+
annotations: { "kubernetes-engine.cloud.google.com/icon": "data:image/png;base64,\($icon)" }
25+
} }' )"
26+
27+
kc patch "applications.app.k8s.io/$NAME" --type=merge --patch="$application_metadata"
28+
2229
/usr/bin/ansible-playbook --tags=install /opt/postgres-operator/ansible/main.yml
2330

2431
resources=(
@@ -37,5 +44,5 @@ resources=(
3744
)
3845

3946
for resource in "${resources[@]}"; do
40-
kc patch "$resource" --type=strategic --patch="$application_metadata"
47+
kc patch "$resource" --type=strategic --patch="$application_ownership"
4148
done

0 commit comments

Comments
 (0)