$ mkdir memcached-operator
To demonstrate the basics of setting up and running a Go-based Operator using tools and libraries provided by the Operator SDK, Operator developers can build an example Go-based Operator for Memcached, a distributed key-value store, and deploy it to a cluster.
You can build and deploy a simple Go-based Operator for Memcached by using the Operator SDK.
Create a project.
Create your project directory:
$ mkdir memcached-operator
Change into the project directory:
$ cd memcached-operator
Run the operator-sdk init
command
to initialize the project:
$ operator-sdk init \
--domain=example.com \
--repo=github.com/example-inc/memcached-operator
The command uses the Go plug-in by default.
Create an API.
Create a simple Memcached API:
$ operator-sdk create api \
--resource=true \
--controller=true \
--group cache \
--version v1 \
--kind Memcached
Build and push the Operator image.
Use the default Makefile
targets to build and push your Operator. Set IMG
with a pull spec for your image that uses a registry you can push to:
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Run the Operator.
Install the CRD:
$ make install
Deploy the project to the cluster. Set IMG
to the image that you pushed:
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Create a sample custom resource (CR).
Create a sample CR:
$ oc apply -f config/samples/cache_v1_memcached.yaml \
-n memcached-operator-system
Watch for the CR to reconcile the Operator:
$ oc logs deployment.apps/memcached-operator-controller-manager \
-c manager \
-n memcached-operator-system
Clean up.
Run the following command to clean up the resources that have been created as part of this procedure:
$ make undeploy
See Operator SDK tutorial for Go-based Operators for a more in-depth walkthrough on building a Go-based Operator.