Skip to content

Latest commit

 

History

History
88 lines (56 loc) · 2.66 KB

README.md

File metadata and controls

88 lines (56 loc) · 2.66 KB

Otterize Credentials Operator

Getting Started

You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster. Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info shows).

Running on the cluster

  1. Install Instances of Custom Resources:

    kubectl apply -f config/samples/
  2. Build and push your image to the location specified by IMG:

    make docker-build docker-push IMG=<some-registry>/credentials-operator:tag
  3. Deploy the controller to the cluster with the image specified by IMG:

    make deploy IMG=<some-registry>/credentials-operator:tag

Uninstall CRDs

To delete the CRDs from the cluster:

make uninstall

Undeploy controller

UnDeploy the controller to the cluster:

make undeploy

How it works

This project aims to follow the Kubernetes Operator pattern

It uses Controllers which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster

Test it out

  1. Install a SPIRE server. You can use the SPIRE server from the helm-charts repository.

  2. If you are running this locally against a SPIRE server, and did not install it using the Otterize all-in-one helm chart, then you need to create a SPIRE server entry for the operator:

    kubectl exec -n spire spire-server-0 -- /opt/spire/bin/spire-server entry create \
        -spiffeID spiffe://example.org/ns/default/sa/default \
        -parentID spiffe://example.org/ns/spire/sa/spire-agent \
        -selector k8s:ns:credentials-operator-system -admin
  3. Install the CRDs into the cluster:

    make install
  4. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):

    make run

NOTE: You can also run this in one step by running: make install run

Modifying the API definitions

If you are editing the API definitions, generate the manifests such as CRs or CRDs using:

make manifests

NOTE: Run make --help for more information on all potential make targets

More information can be found via the Kubebuilder Documentation