Last active
May 1, 2020 14:33
-
-
Save joelanford/f7a7d89977638547b410db3eafc35a62 to your computer and use it in GitHub Desktop.
Setup script for github.com/joelanford/bundle-runner example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -ex | |
QUAY_PROJECT=joelanford | |
OPERATOR_NAME=example-operator | |
# | |
# 1. Create the project | |
# | |
operator-sdk new --type=go ${OPERATOR_NAME} --repo=github.com/${QUAY_PROJECT}/${OPERATOR_NAME} | |
pushd ${OPERATOR_NAME} | |
operator-sdk add api --api-version=example.com/v1 --kind=App --crd-version=v1beta1 | |
operator-sdk add controller --api-version=example.com/v1 --kind=App | |
# | |
# 2. Build and push the operator image for v0.1.0 | |
# | |
sed -i "s|0.0.1|0.1.0|g" version/version.go | |
operator-sdk build quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.1.0 | |
docker push quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.1.0 | |
operatorImageRefV1=$(docker inspect --format='{{index .RepoDigests 0}}' quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.1.0) | |
# | |
# 3. Generate the CSV, build and push the bundle image for v0.1.0 | |
# | |
sed -i "s|REPLACE_IMAGE|$operatorImageRefV1|g" deploy/operator.yaml | |
operator-sdk generate csv --csv-version=0.1.0 | |
operator-sdk bundle create quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.1.0 | |
docker push quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.1.0 | |
bundleImageRefV1=$(docker inspect --format='{{index .RepoDigests 0}}' quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.1.0) | |
# | |
# 4. Build and push the index image | |
# | |
opm index add -i quay.io/joelanford/upstream-opm-builder -b $bundleImageRefV1 -c docker -t quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-index:0.1.0 | |
docker push quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-index:0.1.0 | |
indexImageRefV1=$(docker inspect --format='{{index .RepoDigests 0}}' quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-index:0.1.0) | |
# | |
# 5. Build and push the operator image for v0.2.0 | |
# | |
sed -i "s|0.1.0|0.2.0|g" version/version.go | |
operator-sdk build quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.2.0 | |
docker push quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.2.0 | |
operatorImageRefV2=$(docker inspect --format='{{index .RepoDigests 0}}' quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}:0.2.0) | |
# | |
# 6. Generate the CSV, build and push the bundle image for v0.2.0 | |
# | |
sed -i "s|$operatorImageRefV1|$operatorImageRefV2|g" deploy/operator.yaml | |
operator-sdk generate csv --csv-version=0.2.0 | |
operator-sdk bundle create quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.2.0 | |
docker push quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.2.0 | |
bundleImageRefV2=$(docker inspect --format='{{index .RepoDigests 0}}' quay.io/${QUAY_PROJECT}/${OPERATOR_NAME}-bundle:0.2.0) | |
cat <<EOF >${OPERATOR_NAME}.values.yaml | |
registry: | |
bundleImage: ${bundleImageRefV2} | |
indexImage: ${indexImageRefV1} | |
subscription: | |
channel: stable | |
operatorName: ${OPERATOR_NAME} | |
catalog: | |
displayName: Example operators | |
publisher: Operator SDK Team | |
EOF | |
popd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment