memcached-operator

module
v0.0.0-...-1bf226e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2020 License: Apache-2.0

README

Memcached Go Operator

Overview

This Memcached operator is a simple example operator for the Operator SDK and includes some basic end-to-end tests.

Prerequisites

Getting Started

Cloning the repository

Checkout this Memcached Operator repository

$ mkdir -p $GOPATH/src/github.com/operator-framework
$ cd $GOPATH/src/github.com/operator-framework
$ git clone https://github.com/operator-framework/operator-sdk-samples.git
$ cd operator-sdk-samples/go/memcached-operator
Pulling the dependencies

Run the following command

$ go mod tidy
Building the operator

Build the Memcached operator image and push it to a public registry, such as quay.io:

$ export IMAGE=quay.io/example-inc/memcached-operator:v0.0.1
$ operator-sdk build $IMAGE
$ docker push $IMAGE
Using the image
# Update the operator manifest to use the built image name (if you are performing these steps on OSX, see note below)
$ sed -i 's|REPLACE_IMAGE|quay.io/example-inc/memcached-operator:v0.0.1|g' deploy/operator.yaml
# On OSX use:
$ sed -i "" 's|REPLACE_IMAGE|quay.io/example-inc/memcached-operator:v0.0.1|g' deploy/operator.yaml

NOTE The quay.io/example-inc/memcached-operator:v0.0.1 is an example. You should build and push the image for your repository.

Installing

Run make install to install the operator. Check that the operator is running in the cluster, also check that the example Memcached service was deployed.

Following the expected result.

$ kubectl get all -n memcached
NAME                                      READY   STATUS    RESTARTS   AGE
pod/example-memcached-7c4df9b7b4-lzd6j    1/1     Running   0          64s
pod/example-memcached-7c4df9b7b4-wbtkz    1/1     Running   0          64s
pod/example-memcached-7c4df9b7b4-wt6jb    1/1     Running   0          64s
pod/memcached-operator-56f54d84bf-zrtfv   1/1     Running   0          69s

NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
service/example-memcached            ClusterIP   10.108.124.47   <none>        11211/TCP           63s
service/memcached-operator-metrics   ClusterIP   10.108.67.82    <none>        8383/TCP,8686/TCP   66s

NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/example-memcached    3/3     3            3           65s
deployment.apps/memcached-operator   1/1     1            1           70s

NAME                                            DESIRED   CURRENT   READY   AGE
replicaset.apps/example-memcached-7c4df9b7b4    3         3         3       65s
replicaset.apps/memcached-operator-56f54d84bf   1         1         1       70s
Uninstalling

To uninstall all that was performed in the above step run make uninstall.

Troubleshooting

Use the following command to check the operator logs.

kubectl logs deployment.apps/memcached-operator -n memcached
Running Tests

Run make test-e2e to run the integration e2e tests with different options. For more information see the writing e2e tests guide.

Directories

Path Synopsis
cmd
pkg
apis/cache
Package cache contains cache API versions.
Package cache contains cache API versions.
apis/cache/v1alpha1
Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=cache.example.com Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=cache.example.com
Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=cache.example.com Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=cache.example.com

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL