Skip to content

Apicurio/apicurio-registry-operator

Repository files navigation

Apicurio Registry Operator

Apicurio Registry Operator provides a quick and easy way to deploy and manage Apicurio Registry on Kubernetes or OpenShift.

Deployment Requirements

The Apicurio Registry Operator supports the following platform versions:

Table 1. Apicurio Registry Operator platforms
Platform Required version

Kubernetes

1.19+

OpenShift

4.6+

Build Requirements

  • Docker

  • go v1.20 (with export GO111MODULE='on', $GOPATH and $GOROOT)

  • Operator SDK v1.14

  • A running Kubernetes (Minikube) or OpenShift (Minishift) cluster with system admin access

Quickstart

This section explains how to quickly install development version of the Apicurio Registry Operator on the command line.

Note
The recommended installation option for non-development environments is OperatorHub.io. The recommended storage options are SQL or Kafka. Please visit the latest Apicurio Registry and Operator documentation.
Procedure
  1. Prepare your Kubernetes or OpenShift cluster. If you are using Minikube, run:

    minikube addons enable ingress
  2. Build the latest distribution bundle:

    make dist
    Note
    Run make without any parameters to get a help message.
  3. Follow the instructions in ./dist/README.adoc file.

Build and Deploy Apicurio Registry Operator

This section explains how to build Apicurio Registry Operator on your own and deploy it for testing and development.

Procedure
  1. Prepare your Kubernetes or OpenShift cluster. If you are using Minikube, run:

    minikube addons enable ingress
    Note
    Run export CLIENT="oc" if you are deploying to OpenShift.
  2. Choose a namespace where the Operator will be deployed:

    export NAMESPACE="apicurio-registry-operator"
    kubectl create namespace "$NAMESPACE"
  3. Choose a Docker registry where to push the operator images that you build, e.g. quay.io/foo:

    export OPERATOR_IMAGE_REPOSITORY="quay.io/foo"
  4. The following command will build the operator image, push it into your registry, and deploy it to the selected namespace in your cluster.

    make build docker-push deploy
  5. To remove the operator from your cluster, run:

    make undeploy

Deploy Apicurio Registry

After the Apicurio Registry Operator has been deployed, it can deploy an Apicurio Registry instance.

Procedure
  1. To create a new Apicurio Registry deployment, the fastest way is to use one of the example ApicurioRegistry custom resources:

    cat config/examples/resources/apicurioregistry_mem_cr.yaml | kubectl apply -f - -n "$NAMESPACE"
  2. Optionally, build the latest distribution bundle that contains additional examples:

    make dist
  3. Verify that your Apicurio Registry deployment is healthy (for Minikube). Find out the hostname of the deployed Apicurio Registry:

    kubectl get ingress -n "$NAMESPACE"
    export HOSTNAME="..."
    ./hack/modify_etc_hosts.sh "$HOSTNAME"

    and issue a request to the metrics endpoint:

    curl "http://$HOSTNAME/health"
    Note
    The in-memory deployment is not suitable for production. We recommend using SQL or Kafka persistence options for that. See the documentation for more information.

Notes

Create an issue on GitHub if you find any problems.

You can find more information on the Apicurio website.