22
33set -xeou pipefail
44
5- subdir=${1:- }
6-
75target_dir=" deploy"
8- bundle_dir=" bundle"
9- config_dir=" config"
10-
11- function cleanup() {
12- # Restore original bundle.Dockerfile as needed
13- cp bundle.Dockerfile " ${bundle_dir} /bundle.Dockerfile"
14- mv bundle.Dockerfile.backup bundle.Dockerfile
15- }
16-
17- if [ " ${subdir} " != " " ]; then
18- target_dir+=" /${subdir} "
19- bundle_dir+=" /${subdir} "
20- config_dir+=" /${subdir} "
21- mkdir -p " ${target_dir} " " ${bundle_dir} "
22- cp -R config/release " ${config_dir} "
23- cp -R bundle/manifests bundle/metadata " ${bundle_dir} /manifests"
24- cp bundle.Dockerfile bundle.Dockerfile.backup
25- trap cleanup EXIT
26- fi
27-
286clusterwide_dir=" ${target_dir} /clusterwide"
297namespaced_dir=" ${target_dir} /namespaced"
308crds_dir=" ${target_dir} /crds"
@@ -36,59 +14,59 @@ mkdir -p "${crds_dir}"
3614mkdir -p " ${openshift} "
3715
3816# Generate configuration and save it to `all-in-one`
39- controller-gen crd:crdVersions=v1,ignoreUnexportedFields=true rbac:roleName=manager-role webhook paths=" ./pkg/api/..." output:crd:artifacts:config=" ${config_dir} /crd/bases"
40- cd " ${config_dir} /manager" && kustomize edit set image controller=" ${INPUT_IMAGE_URL} "
17+ controller-gen crd:crdVersions=v1,ignoreUnexportedFields=true rbac:roleName=manager-role webhook paths=" ./pkg/api/..." output:crd:artifacts:config=config /crd/bases
18+ cd config /manager && kustomize edit set image controller=" ${INPUT_IMAGE_URL} "
4119cd -
42- ./scripts/split_roles_yaml.sh " ${subdir} "
20+ ./scripts/split_roles_yaml.sh
4321
4422which kustomize
4523kustomize version
4624
4725# all-in-one
48- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /release/${INPUT_ENV} /allinone" > " ${target_dir} /all-in-one.yaml"
26+ kustomize build --load-restrictor LoadRestrictionsNone " config /release/${INPUT_ENV} /allinone" > " ${target_dir} /all-in-one.yaml"
4927echo " Created all-in-one config"
5028
5129# clusterwide
52- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /release/${INPUT_ENV} /clusterwide" > " ${clusterwide_dir} /clusterwide-config.yaml"
53- kustomize build " ${config_dir} /crd" > " ${clusterwide_dir} /crds.yaml"
30+ kustomize build --load-restrictor LoadRestrictionsNone " config /release/${INPUT_ENV} /clusterwide" > " ${clusterwide_dir} /clusterwide-config.yaml"
31+ kustomize build " config /crd" > " ${clusterwide_dir} /crds.yaml"
5432echo " Created clusterwide config"
5533
5634# base-openshift-namespace-scoped
57- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /release/${INPUT_ENV} /openshift" > " ${openshift} /openshift.yaml"
58- kustomize build " ${config_dir} /crd" > " ${openshift} /crds.yaml"
35+ kustomize build --load-restrictor LoadRestrictionsNone " config /release/${INPUT_ENV} /openshift" > " ${openshift} /openshift.yaml"
36+ kustomize build " config /crd" > " ${openshift} /crds.yaml"
5937echo " Created openshift namespaced config"
6038
6139# namespaced
62- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /release/${INPUT_ENV} /namespaced" > " ${namespaced_dir} /namespaced-config.yaml"
63- kustomize build " ${config_dir} /crd" > " ${namespaced_dir} /crds.yaml"
40+ kustomize build --load-restrictor LoadRestrictionsNone " config /release/${INPUT_ENV} /namespaced" > " ${namespaced_dir} /namespaced-config.yaml"
41+ kustomize build " config /crd" > " ${namespaced_dir} /crds.yaml"
6442echo " Created namespaced config"
6543
6644# crds
67- cp " ${config_dir} /crd/bases" /* " ${crds_dir} "
45+ cp config /crd/bases/* " ${crds_dir} "
6846
6947# CSV bundle
7048operator-sdk generate kustomize manifests -q --apis-dir=pkg/api
7149# get the current version so we could put it into the "replaces:"
72- current_version=$( yq e ' .metadata.name' " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml" )
50+ current_version=" $( yq e ' .metadata.name' bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml) "
7351
7452# We pass the version only for non-dev deployments (it's ok to have "0.0.0" for dev)
7553channel=" stable"
7654if [[ " ${INPUT_ENV} " == " dev" ]]; then
7755 echo " build dev purpose"
78- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /manifests" |
79- operator-sdk generate bundle -q --overwrite --default-channel=" ${channel} " --channels=" ${channel} " --output-dir " ${bundle_dir} "
56+ kustomize build --load-restrictor LoadRestrictionsNone config /manifests |
57+ operator-sdk generate bundle -q --overwrite --default-channel=" ${channel} " --channels=" ${channel} "
8058else
8159 echo " build release version"
8260 echo " ${INPUT_IMAGE_URL} "
83- kustomize build --load-restrictor LoadRestrictionsNone " ${config_dir} /manifests" |
84- operator-sdk generate bundle -q --overwrite --version " ${INPUT_VERSION} " --default-channel=" ${channel} " --channels=" ${channel} " --output-dir " ${bundle_dir} "
61+ kustomize build --load-restrictor LoadRestrictionsNone config /manifests |
62+ operator-sdk generate bundle -q --overwrite --version " ${INPUT_VERSION} " --default-channel=" ${channel} " --channels=" ${channel} "
8563 # add replaces
86- awk ' !/replaces:/' " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml" > tmp && mv tmp " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml"
87- echo " replaces: $current_version " >> " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml"
64+ awk ' !/replaces:/' bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml > tmp && mv tmp bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml
65+ echo " replaces: $current_version " >> bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml
8866 # Add WATCH_NAMESPACE env parameter
89- value=" metadata.annotations['olm.targetNamespaces']" yq e -i ' .spec.install.spec.deployments[0].spec.template.spec.containers[0].env[2] |= {"name": "WATCH_NAMESPACE", "valueFrom": {"fieldRef": {"fieldPath": env(value)}}}' " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml"
90- # Add containerImage to "${bundle_dir} /manifests/" csv. containerImage - The full location (registry, repository, name and tag) of the operator image
91- yq e -i " .metadata.annotations.containerImage=\" ${INPUT_IMAGE_URL} \" " " ${bundle_dir} /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml"
67+ value=" metadata.annotations['olm.targetNamespaces']" yq e -i ' .spec.install.spec.deployments[0].spec.template.spec.containers[0].env[2] |= {"name": "WATCH_NAMESPACE", "valueFrom": {"fieldRef": {"fieldPath": env(value)}}}' bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml
68+ # Add containerImage to bundle /manifests/ csv. containerImage - The full location (registry, repository, name and tag) of the operator image
69+ yq e -i " .metadata.annotations.containerImage=\" ${INPUT_IMAGE_URL} \" " bundle /manifests/mongodb-atlas-kubernetes.clusterserviceversion.yaml
9270fi
9371
9472# add additional LABELs to bundle.Docker file
0 commit comments