Apicurio Studio

Apicurio Registry Operator configuration reference

This chapter provides detailed information on the custom resource used to configure the Apicurio Registry Operator to deploy Apicurio Registry:

Apicurio Registry Custom Resource

The Apicurio Registry Operator defines an ApicurioRegistry custom resource (CR) that represents a single deployment of Apicurio Registry on OpenShift.

These resource objects are created and maintained by users to instruct the Apicurio Registry Operator how to deploy and configure Apicurio Registry.

Example ApicurioRegistry CR

The following command displays the ApicurioRegistry resource:

kubectl edit apicurioregistry example-apicurioregistry
apiVersion: apicur.io/v1alpha1
kind: ApicurioRegistry
metadata:
  name: example-apicurioregistry
  namespace: demo-streams
  # ...
spec:
  configuration:
    persistence: streams
    streams:
      bootstrapServers: 'my-cluster-kafka-bootstrap.demo-streams.svc:9092'
  deployment:
    host: >-
      example-apicurioregistry.demo-streams.example.com
status:
  deploymentName: example-apicurioregistry-deployment-qsdb7
  host: >-
    example-apicurioregistry.demo-streams.example.com
  image: >-
    registry.redhat.io/integration/service-registry-streams-rhel8@sha256:4b56da802333d2115cb3a0acc8d97445bd0dab67b639c361816df27b7f1aa296
  ingressName: example-apicurioregistry-ingress-7mlnw
  replicaCount: 1
  serviceName: example-apicurioregistry-service-xvnmz
The Apicurio Registry Operator currently only watches its own project namespace. Therefore you must create the ApicurioRegistry CR in the same namespace.
These configuration options may change or be renamed until Apicurio Registry Operator leaves the alpha development stage.

Apicurio Registry CR spec

The spec is the part of the ApicurioRegistry CR that is used to provide the desired state or configuration for the Operator to achieve.

ApicurioRegistry CR spec contents

The following example block contains the full tree of possible spec configuration options. Some fields may not be required or should not be defined at the same time.

spec:
  configuration:
    persistence: <string>
    dataSource:
      url: <string>
      userName: <string>
      password: <string>
    kafka:
      bootstrapServers: <string>
    streams:
      bootstrapServers: <string>
      applicationId: <string>
      applicationServerPort: <string>
      security:
        tls:
          truststoreSecretName: <string>
          keystoreSecretName: <string>
        scram:
          mechanism: <string>
          truststoreSecretName: <string>
          user: <string>
          passwordSecretName: <string>
    infinispan:
      clusterName: <string>
    ui:
      readOnly: <string>
    logLevel: <string>
  deployment:
    replicas: <int32>
    host: <string>

The following table describes each configuration option:

Table 1. ApicurioRegistry CR spec configuration options
Configuration option type Default value Description

configuration

-

-

Section for configuration of Apicurio Registry application

configuration/persistence

string

mem

Storage backend. One of mem, jpa, kafka, streams, infinispan

configuration/dataSource

-

-

Database connection configuration for JPA storage backend

configuration/dataSource/url

string

required

Database connection URL string

configuration/dataSource/userName

string

required

Database connection user

configuration/dataSource/password

string

empty

Database connection password

configuration/kafka

-

-

Kafka backend configuration section

configuration/kafka/bootstrapServers

string

required

Kafka bootstrap server URL

configuration/streams

-

-

Kafka Streams storage backend configuration

configuration/streams/bootstrapServers

string

required

Kafka bootstrap server URL, for Streams storage backend

configuration/streams/applicationId

string

ApicurioRegistry CR name

Kafka Streams application ID

configuration/streams/applicationServerPort

string

9000

-

configuration/streams/security/tls

-

-

Section to configure TLS authentication for Kafka Streams storage backend

configuration/streams/security/tls/truststoreSecretName

string

required

Name of a secret containing TLS truststore for Kafka

configuration/streams/security/tls/keystoreSecretName

string

required

Name of a secret containing user TLS keystore

configuration/streams/security/scram/truststoreSecretName

string

required

Name of a secret containing TLS truststore for Kafka

configuration/streams/security/scram/user

string

required

SCRAM user name

configuration/streams/security/scram/passwordSecretName

string

required

Name of a secret containing SCRAM user password

configuration/streams/security/scram/mechanism

string

SCRAM-SHA-512

SASL mechanism

configuration/infinispan

-

-

Infinispan persistence configuration section

configuration/infinispan/clusterName

string

ApicurioRegistry CR name

Infinispan cluster name

configuration/ui

-

-

Apicurio Registry web console settings

configuration/ui/readOnly

string

false

Set Apicurio Registry web console to read-only mode

configuration/logLevel

string

INFO

Apicurio Registry operand log level. One of INFO, DEBUG

deployment

-

-

Section for operand deployment settings

deployment/replicas

positive integer

1

Number of Apicurio Registry pods to deploy

deployment/host

string

auto-generated from ApicurioRegistry CR name and namespace

Host/URL where the Apicurio Registry console and API are available

If an option is marked as required, it might be conditional on other configuration options being enabled. Empty values might be accepted, but the Operator does not perform the specified action.

Apicurio Registry CR status

The status is the section of the CR managed by the Apicurio Registry Operator that contains a description of the current deployment and application state.

ApicurioRegistry CR status contents

The status section contains the following fields:

status:
  image: <string>
  deploymentName: <string>
  serviceName: <string>
  ingressName: <string>
  replicaCount: <int32>
  host: <string>
Table 2. ApicurioRegistry CR status fields
Status field Type Description

image

string

Apicurio Registry operand image that the Operator deploys. Might change based on the storage option selected in configuration.

deploymentName

string

Name of the Deployment or DeploymentConfig managed by the Operator, used to deploy the Apicurio Registry.

serviceName

string

Name of the Service managed by the Operator, to expose the Apicurio Registry operand as a service.

ingressName

string

Name of the Ingress managed by the Operator, to make the Apicurio Registry accessible via HTTP. A Route is also created on OCP.

replicaCount

int32

Number of Apicurio Registry operand pods deployed.

host

string

URL where the Apicurio Registry UI and REST API are accessible.

Apicurio Registry managed resources

The resources managed by the Apicurio Registry Operator when deploying Apicurio Registry are as follows:

  • Deployment (Kubernetes) or DeploymentConfig (OpenShift)

  • Service

  • Ingress and Route (OpenShift)

  • PodDisruptionBudget

Apicurio Registry Operator labels

Resources managed by the Apicurio Registry Operator are usually labeled as follows:

Table 3. Apicurio Registry Operator labels for managed resources
Label Description

app

Name of the Apicurio Registry deployment that the resource belongs to, based on the name of the specified ApicurioRegistry CR.

apicur.io/type

Type of the deployment: apicurio-registry or operator

apicur.io/name

Name of the deployment: same value as app or apicurio-registry-operator

apicur.io/version

Version of the Apicurio Registry or the Apicurio Registry Operator

app.kubernetes.io/*

A set of recommended Kubernetes labels for application deployments.