mkdir demo-zeus-operator
cd demo-zeus-operator
operator-sdk version
operator-sdk init --domain=zeusville.com --repo=github.com/YOURGITHUBREPO/demo-zeus-operator
operator-sdk create api --group test --version v1 --kind Test --controller --resource
Configure the envtest to allow building the operator image. Alternatively, remove the test
target from the docker-build
target.
# Run tests
ENVTEST_ASSETS_DIR=$(shell pwd)/testbin
test: generate fmt vet manifests
mkdir -p ${ENVTEST_ASSETS_DIR}
test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/master/hack/setup-envtest.sh
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR); go test ./... -coverprofile cover.out
First generate the bundle and fill out the information.
make bundle DEFAULT_CHANNEL=alpha IMG=docker.io/YOURDOCKERREPO/demo-zeus-operator:0.0.1
Display name: Demo Zeus Operator
description: Awesome demo operator.
provider name: example.com
relevant URL: nothing
keywords: awesome,demo,zeus
maintainers: zeus:[email protected]
Now build the bundle image
make bundle-build BUNDLE_IMG=docker.io/YOURDOCKERREPO/demo-zeus-operator-bundle:0.0.1
docker push docker.io/YOURDOCKERREPO/demo-zeus-operator-bundle:0.0.1
make docker-build IMG=docker.io/YOURDOCKERREPO/demo-zeus-operator:0.0.1
make docker-push IMG=docker.io/YOURDOCKERREPO/demo-zeus-operator:0.0.1
kind delete cluster
kind create cluster
operator-sdk olm install
operator-sdk run bundle docker.io/YOURDOCKERREPO/demo-zeus-operator-bundle:0.0.1
INFO[0008] Successfully created registry pod: docker-io-jmrodri-demo-zeus-operator-bundle-0-0-1
INFO[0008] Created CatalogSource: demo-zeus-operator-catalog
INFO[0008] OperatorGroup "operator-sdk-og" created
INFO[0008] Created Subscription: demo-zeus-operator-v0-0-1-sub
INFO[0019] Approved InstallPlan install-krv7q for the Subscription: demo-zeus-operator-v0-0-1-sub
INFO[0019] Waiting for ClusterServiceVersion "default/demo-zeus-operator.v0.0.1" to reach 'Succeeded' phase
INFO[0019] Waiting for ClusterServiceVersion "default/demo-zeus-operator.v0.0.1" to appear
INFO[0031] Found ClusterServiceVersion "default/demo-zeus-operator.v0.0.1" phase: Pending
INFO[0032] Found ClusterServiceVersion "default/demo-zeus-operator.v0.0.1" phase: Installing
INFO[0040] Found ClusterServiceVersion "default/demo-zeus-operator.v0.0.1" phase: Succeeded
INFO[0040] OLM has successfully installed "demo-zeus-operator.v0.0.1"
Please note that this cleanup will remove the CRD and thus remove all CRs.
operator-sdk cleanup demo-zeus-operator
INFO[0000] subscription "demo-zeus-operator-v0-0-1-sub" deleted
INFO[0000] customresourcedefinition "tests.test.zeusville.com" deleted
INFO[0000] clusterserviceversion "demo-zeus-operator.v0.0.1" deleted
INFO[0000] clusterrole "demo-zeus-operator-metrics-reader" deleted
INFO[0000] role "demo-zeus-operator.v0.0.1-default-bbd496994" deleted
INFO[0000] rolebinding "demo-zeus-operator.v0.0.1-default-bbd496994" deleted
INFO[0000] catalogsource "demo-zeus-operator-catalog" deleted
INFO[0000] operatorgroup "operator-sdk-og" deleted
INFO[0000] Operator "demo-zeus-operator" uninstalled