Cheat Sheet
Below you will find a cheat sheet with options and helpers for projects, which are built with the SDK and are respecting its proposed layout.
Common commands and options
Command | Description |
---|---|
operator-sdk init |
To initialize an operator project in the current directory. |
operator-sdk init --plugins=<plugin-key> |
To initialize an operator project in the current directory using a specific plugin. To check the available plugins you can run operator-sdk --help . E.g (operator-sdk init --plugins=helm ). |
operator-sdk create api [flags] |
Lets you create your own APIs with its GKV by Extending the Kubernetes API with CustomResourceDefinitions, or lets you use external/core-types. Also generates their respective controllers. |
operator-sdk create webhook [flags] |
To scaffold Webhooks for the APIs declared in the project. Currently, only the Go-based project supports this option. |
make docker-build IMG=<some-registry>/<project-name>:<tag> |
Build the operator image. |
make docker-build docker-push IMG=<some-registry>/<project-name>:<tag> |
Build and push the operator image for your registry. |
make install |
Install the CRDs into the cluster. |
make uninstall |
Uninstall the CRDs into the cluster. |
make run |
Run your controller locally and outside of the cluster. Note that this will run in the foreground, so switch to a new terminal if you want to leave it running. |
make deploy |
Deploy your project on the cluster. |
make undeploy |
Undeploy your project on the cluster. |
To create bundles, catalogs, and develop for OLM
For further information check Operator SDK Integration with Operator Lifecycle Manager.
Command | Description |
---|---|
make bundle |
Create/update the bundle based on the project manifests in the bundle/ directory. For more info see Create a bundle. |
operator-sdk bundle validate ./bundle |
To validate your bundle spec definition. |
operator-sdk bundle validate ./bundle --select-optional suite=operatorframework |
Validate your bundle against OperatorHub.io criteria. For further information use the flag --help . |
operator-sdk olm install |
To install OLM on your cluster for development purposes. |
operator-sdk olm uninstall |
To uninstall OLM from your cluster. |
make bundle-build BUNDLE_IMG=<some-registry>/<project-name-bundle>:<tag> |
To build your bundle operator image. |
make bundle-build bundle-push BUNDLE_IMG=<some-registry>/<project-name-bundle>:<tag> |
To build and push your bundle operator image. |
operator-sdk run bundle <some-registry>/<project-name-bundle>:<tag> |
To deploy your bundle operator using OLM on your cluster for development purposes. |
operator-sdk run bundle private-registry.org/bundle:v1.2.3 --service-account sa-with-secret --pull-secret-name regcred --ca-secret-name cert-sec |
Configure run bundle (and run bundle-upgrade ) to use an image pull secret, non-default service account configured with that secret, and custom CA certificate secret |
Updating bundle channels
The following examples let you update the bundle with data-informed. For further information also check Upgrade your Operator and see Channel Naming.
NOTE: Note that it will carry over any customizations you have made and ensure a rolling update to the next version of your Operator.
make bundle CHANNELS=fast,preview DEFAULT_CHANNEL=stable VERSION=1.0.0 IMG=<some-registry>/<project-name-bundle>:<tag>
NOTE You can use environment variables to pass the values such as export CHANNELS=fast,candidate
. Note that, their values will be used by make bundle
command.
To test your projects
Command | Description |
---|---|
operator-sdk scorecard ./bundle |
Run the Scorecard tests for your bundle. |
make test |
Run Go tests. It is valid only for Go-based operators. |
molecule test |
Run Molecule tests. It is valid only for Ansible-based operators. |
helm test |
Run Helm chart tests. It is valid only for Helm-based operators. |
NOTE: This is not a comprehensive list of make targets or commands. Please see the scaffolded Makefile and make help
for the full list of targets. Note that you can use operator-sdk <command> --help
and check the CLI section to check all options.