|
1 | 1 | #!/bin/bash |
2 | 2 | set -ex |
3 | 3 |
|
| 4 | +# Define a cleanup function |
| 5 | +cleanup() { |
| 6 | + echo "Caught signal, cleaning up local webhooks..." |
| 7 | + ./hack/clean_local_webhook.sh |
| 8 | + exit 0 |
| 9 | +} |
| 10 | + |
| 11 | +# Set trap to catch SIGINT and SIGTERM |
| 12 | +trap cleanup SIGINT SIGTERM |
| 13 | + |
4 | 14 | TMPDIR=${TMPDIR:-"/tmp/k8s-webhook-server/serving-certs"} |
5 | 15 | SKIP_CERT=${SKIP_CERT:-false} |
6 | 16 | CRC_IP=${CRC_IP:-$(/sbin/ip -o -4 addr list crc | awk '{print $4}' | cut -d/ -f1)} |
@@ -91,6 +101,23 @@ oc apply -n openstack -f ${TMPDIR}/patch_webhook_configurations.yaml |
91 | 101 | CSV_NAME="$(oc get csv -n openstack-operators -l operators.coreos.com/designate-operator.openstack-operators -o name)" |
92 | 102 |
|
93 | 103 | if [ -n "${CSV_NAME}" ]; then |
| 104 | + CUR_REPLICAS=$(oc get -n openstack-operators "${CSV_NAME}" -o=jsonpath='{.spec.install.spec.deployments[0].spec.replicas}') |
| 105 | + CUR_WEBHOOK_DEFS=$(oc get -n openstack-operators "${CSV_NAME}" -o=jsonpath='{.spec.webhookdefinitions}') |
| 106 | + |
| 107 | + # Back-up CSV if it currently uses OLM defaults for deployment replicas or webhook definitions |
| 108 | + if [[ "${CUR_REPLICAS}" -gt 0 || ( -n "${CUR_WEBHOOK_DEFS}" && "${CUR_WEBHOOK_DEFS}" != "[]" ) ]]; then |
| 109 | + CSV_FILE=$(mktemp -t "$(echo "${CSV_NAME}" | cut -d "/" -f 2).XXXXXX" --suffix .json) |
| 110 | + oc get -n openstack-operators "${CSV_NAME}" -o json | \ |
| 111 | + jq -r 'del(.metadata.generation, .metadata.resourceVersion, .metadata.uid)' > "${CSV_FILE}" |
| 112 | + |
| 113 | + printf \ |
| 114 | + "\n\tNow patching operator CSV to remove its OLM deployment and associated webhooks. |
| 115 | + The original OLM version of the operator's CSV has been copied to %s. To restore it, use: |
| 116 | + oc patch -n openstack-operators %s --type=merge --patch-file=%s\n\n" "${CSV_FILE}" "${CSV_NAME}" "${CSV_FILE}" |
| 117 | + fi |
| 118 | + |
94 | 119 | oc patch "${CSV_NAME}" -n openstack-operators --type=json -p="[{'op': 'replace', 'path': '/spec/install/spec/deployments/0/spec/replicas', 'value': 0}]" |
95 | 120 | oc patch "${CSV_NAME}" -n openstack-operators --type=json -p="[{'op': 'replace', 'path': '/spec/webhookdefinitions', 'value': []}]" |
96 | 121 | fi |
| 122 | + |
| 123 | +go run ./main.go -metrics-bind-address ":${METRICS_PORT}" -health-probe-bind-address ":${HEALTH_PORT}" |
0 commit comments