Cheat Sheet
Operator-SDK Cheat Sheet commands and operations
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 oparator-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.
Last modified August 11, 2021: WIP (#5135) (a05f9668)