Apicurio 0.1.0 Helm Readme

Type: application AppVersion: 0.1.0

Helm Charts to deploy Apicurio Registry

Default Users

In case you are running the Apicurio Registry with the authentication enabled, the default users to access the Keycloak Admin Console and the Apicurio Registry UI are the following:

Keycloak Admin User

{
   "username": "admin",
   "password": "admin123"
}

Apicurio Registry Admin User

{
   "username": "apicurio-admin",
   "password": "notsecret"
}

This user will require updating the password after the first login.

The default Apicurio Registry API client credentials to configure the Platform Manager with, are the following:

Apicurio Registry Admin User

   {
   "client-id": "apicurio-api",
   "client-secret": "EPADhdDgRCP7RgkTFABopzAnuPHueeop"
   }

They can be regenerated from the Keycloak Admin

Requirements

Repository Name Version

https://charts.bitnami.com/bitnami

apicurioKeycloakMysql(mysql)

9.10.9

https://codecentric.github.io/helm-charts

apicurioKeycloak(keycloakx)

2.5.1

Values

Key Type Default Description

affinity

object

{}

The pod’s scheduling constraints. See the Kubernetes documentation on Affinity and Anti-affinity.

annotations

object

{}

Annotations to add to the Deployment resource.

apicurioKeycloak

object

{"enabled":false,"proxy":{"http":{"enabled":true},"mode":"xforwarded"},"realm":""}

Apicurio Keycloak Instance

apicurioKeycloak.enabled

bool

false

Keycloak Components toggles

apicurioKeycloak.proxy

object

{"http":{"enabled":true},"mode":"xforwarded"}

Keycloak Proxy configuration

apicurioKeycloak.realm

string

""

Apicurio realm name

apicurioKeycloakMysql

object

{"enabled":false,"image":{"registry":"docker.io","repository":"bitnamilegacy/mysql"}}

Apicurio Keycloak MySQL Components toggles

authProxy.config

object

{"auth-proxy":{"backend-service":"http://localhost:8081","client-id":"","jwks-endpoint-uri":"","valid-issuer-uri":""},"server":{"port":8082}}

Auth Proxy application.yml configuration Full YAML structure that will be mounted as /config/application.yml Minimal configuration - only override essential values that differ from Auth Proxy defaults

authProxy.config.auth-proxy.backend-service

string

"http://localhost:8081"

Backend service URL to proxy requests to (routes to Apicurio backend in the same pod)

authProxy.config.auth-proxy.client-id

string

""

Expected client ID / audience value for JWT validation

authProxy.config.auth-proxy.jwks-endpoint-uri

string

""

JWKS endpoint URI for fetching public keys. REQUIRED.

authProxy.config.auth-proxy.valid-issuer-uri

string

""

JWT issuer URI for validation (e.g., https://axual.cloud/auth/realms/tenant1). REQUIRED.

authProxy.config.server.port

int

8082

Port override (must differ from Apicurio’s 8081 and UI’s 8080)

authProxy.debug

object

{}

authProxy.enabled

bool

false

Enable Auth Proxy sidecar container

authProxy.env

list

[]

Additional environment variables for Auth Proxy container These will be added to the env section of the Auth Proxy container

authProxy.existingSecretName

string

""

The name of an existing Kubernetes Secret. The key in the Secret must be secrets.yml. The contents get mounted into the container.

authProxy.image.pullPolicy

string

"Always"

One of Always, IfNotPresent, or Never.

authProxy.image.registry

string

"registry.axual.io"

Registry to pull the image from.

authProxy.image.repository

string

"axual/auth-proxy"

Name of the image being deployed.

authProxy.image.tag

string

"0.1.1"

Image tag for the Auth Proxy.

authProxy.ingress

object

{"annotations":{},"className":"","enabled":false,"hosts":[{"host":"chart-example.local","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}],"tls":[]}

Ingress configuration for Auth Proxy (separate from Apicurio ingress)

authProxy.ingress.annotations

object

{}

Annotations to add to the Auth Proxy Ingress resource

authProxy.ingress.className

string

""

The name of the IngressClass cluster resource

authProxy.ingress.enabled

bool

false

Enable creation of the Ingress resource for Auth Proxy

authProxy.ingress.hosts[0].host

string

"chart-example.local"

The fully qualified domain name for Auth Proxy

authProxy.ingress.hosts[0].paths[0].path

string

"/"

Matched against the path of an incoming request

authProxy.ingress.hosts[0].paths[0].pathType

string

"ImplementationSpecific"

Determines the interpretation of the Path matching

authProxy.ingress.tls

list

[]

TLS configuration for Auth Proxy Ingress

authProxy.livenessProbe

object

{"failureThreshold":3,"initialDelaySeconds":10,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}

Liveness probe configuration for Auth Proxy. Probes /actuator/health/liveness on the management port.

authProxy.livenessProbe.failureThreshold

int

3

Minimum consecutive failures for the probe to be considered failed after having succeeded. A failed livenessProbe will cause the container to be restarted.

authProxy.livenessProbe.initialDelaySeconds

int

10

Number of seconds after the container has started before liveness probes are initiated.

authProxy.livenessProbe.periodSeconds

int

10

How often (in seconds) to perform the probe.

authProxy.livenessProbe.successThreshold

int

1

Minimum consecutive successes for the probe to be considered successful after having failed.

authProxy.livenessProbe.timeoutSeconds

int

1

Number of seconds after which the probe times out.

authProxy.logbackConfig

multi-line

""

String that is put into a configmap, mounted in the pod and used as the logback config for Auth Proxy. If present, configuration under logging is ignored.

authProxy.logging

object

{"loggers":{"io.axual.auth.proxy":"INFO","org.springframework.cloud.gateway":"INFO"},"pattern":"%d{yyyy-MM-dd’T’HH:mm:ss.SSSXXX, UTC} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] [traceid=%X{traceid}, spanid=%X{spanid}] %-40.40logger{39} : %m%n}","rootLoglevel":"INFO"}

Logging configuration object used when the logbackConfig is not set. Allows for configuring pattern and per package log levels.

authProxy.logging.loggers

object

{"io.axual.auth.proxy":"INFO","org.springframework.cloud.gateway":"INFO"}

Log level per package (when logbackConfig is not defined)

authProxy.logging.loggers.”io.axual.auth.proxy”

string

"INFO"

Log level for Auth Proxy (when logbackConfig is not defined)

authProxy.logging.loggers.”org.springframework.cloud.gateway”

string

"INFO"

Log level for Spring Cloud Gateway (when logbackConfig is not defined)

authProxy.logging.pattern

string

"%d{yyyy-MM-dd’T’HH:mm:ss.SSSXXX, UTC} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] [traceid=%X{traceid}, spanid=%X{spanid}] %-40.40logger{39} : %m%n}"

Log pattern (when logbackConfig is not defined)

authProxy.logging.rootLoglevel

string

"INFO"

Root log level used (when logbackConfig is not defined)

authProxy.management

object

{"metricsEnabled":true,"port":8086}

Management/actuator endpoints configuration Auth Proxy uses built-in defaults for most management settings (port 8086, health/metrics endpoints, etc.)

authProxy.management.metricsEnabled

bool

true

Enable Prometheus metrics scraping via ServiceMonitor

authProxy.management.port

int

8086

Port for Spring Boot Actuator management endpoints (Auth Proxy default: 8086) Used for health probe references and service port definition

authProxy.port

int

8082

Port on which the Auth Proxy listens for incoming requests NOTE: Must be different from Apicurio backend (8081) and UI (8080) ports

authProxy.readinessProbe

object

{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}

Readiness probe configuration for Auth Proxy. Probes /actuator/health/readiness on the management port.

authProxy.readinessProbe.failureThreshold

int

3

Minimum consecutive failures for the probe to be considered failed after having succeeded. A failed readinessProbe will cause the container to move to the NotReady state.

authProxy.readinessProbe.initialDelaySeconds

int

5

Number of seconds after the container has started before readiness probes are initiated.

authProxy.readinessProbe.periodSeconds

int

10

How often (in seconds) to perform the probe.

authProxy.readinessProbe.successThreshold

int

1

Minimum consecutive successes for the probe to be considered successful after having failed.

authProxy.readinessProbe.timeoutSeconds

int

1

Number of seconds after which the probe times out.

authProxy.resources

object

{}

The resource requirements for Auth Proxy container.

authProxy.route

object

{"annotations":{},"enabled":false,"host":"","labels":{},"path":"/","subdomain":"","targetPort":"auth-proxy","tls":{"caCertificate":"","certificate":"","destinationCACertificate":"","key":"","termination":"edge"}}

OpenShift Route configuration for Auth Proxy (separate from Apicurio route)

authProxy.route.annotations

object

{}

Annotations to add to the Auth Proxy Route

authProxy.route.enabled

bool

false

Enable creation of an OpenShift Route for Auth Proxy

authProxy.route.host

string

""

An alias/DNS that points to the service

authProxy.route.labels

object

{}

Labels to add to the Auth Proxy Route

authProxy.route.path

string

"/"

Path that the router watches for

authProxy.route.subdomain

string

""

Subdomain is a DNS subdomain requested within the ingress controller’s domain

authProxy.route.targetPort

string

"auth-proxy"

Target pod port used by the Router

authProxy.route.tls.caCertificate

string

""

The Certificate Authority certificate contents

authProxy.route.tls.certificate

string

""

Certificate contents

authProxy.route.tls.destinationCACertificate

string

""

The CA certificate of the final destination

authProxy.route.tls.key

string

""

Key file contents

authProxy.route.tls.termination

string

"edge"

Indicates a termination type. One of: edge, passthrough, or reencrypt

authProxy.secrets

object

{}

Secrets configuration for Auth Proxy Full YAML structure that will be mounted as /config/secrets/secrets.yml

autoscaling.enabled

bool

false

Enables the creation of a HorizontalPodAutoscaler.

autoscaling.maxReplicas

int

10

Upper limit for the number of replicas to which the autoscaler can scale up. Cannot be less that minReplicas.

autoscaling.minReplicas

int

1

Lower limit for the number of replicas to which the autoscaler can scale down.

autoscaling.targetCPUUtilizationPercentage

int

80

Percentage of CPU utilization that the autoscaler will try to meet.

autoscaling.targetMemoryUtilizationPercentage

int

80

Percentage of memory utilization that the autoscaler will try to meet.

config

object

{"apicurio.auth.admin-override.enabled":"true","apicurio.auth.anonymous-read-access.enabled":"true","apicurio.auth.owner-only-authorization":"true","apicurio.auth.role-based-authorization":"true","apicurio.ccompat.legacy-id-mode.enabled":"false","apicurio.ccompat.use-canonical-hash":"true","apicurio.rest.deletion.artifact-version.enabled":"true","apicurio.rest.deletion.artifact.enabled":"true","apicurio.rules.global.compatibility":"NONE","apicurio.rules.global.validity":"FULL","quarkus.log.console.enabled":"true","quarkus.log.console.json.date-format":"default","quarkus.log.console.json.enabled":"true","quarkus.log.console.json.exception-output-type":"formatted","quarkus.log.console.json.pretty-print":"false"}

Configuration passed to the container. Contents get injected to a ConfigMap, which gets mounted as an application.properties file.

debug

object

{"enabled":false}

Debug Configuration passed to the container(s). Enable the 5005 port in the deployment.yaml

env

list

[]

Environment variables to define for the container. See the Kubernetes documentation on Environment Variables.

extraContainers

string

""

Additional sidecar containers, e.g. for a database proxy, such as Google’s cloudsql-proxy

extraInitContainers

string

""

Additional init containers, e.g. for configuring java-security

extraVolumeMounts

string

""

Add additional volumes mounts, e.g. for java-security

extraVolumes

string

""

Add additional volumes, e.g. for java-security

fullnameOverride

string

""

Override the fully qualified app name generated by the chart.

global.clusterDomain

string

"cluster.local"

The domain of the Kubernetes cluster. The vast majority of Kubernetes clusters use the default value.

global.imagePullSecrets

list

[]

Globally override the list of ImagePullSecrets provided.

global.imageRegistry

string

""

Globally override the registry to pull images from.

hostAliases

list

[]

Optional list of hosts and IPs that will be injected into the pod’s hosts file.

image.pullPolicy

string

"Always"

One of Always, IfNotPresent, or Never.

image.registry

string

"registry.axual.io/docker.io"

Registry to pull the image from.

image.repository

string

"axual/apicurio-registry"

Name of the image being deployed.

image.tag

string

"3.3.0.Ax1"

Override the image tag whose default is the chart appVersion. This tag is used for the registry backend container.

imagePullSecrets

list

[]

List of ImagePullSecrets to apply to the service account. If the service account is disabled, it will be applied to the pod instead.

ingress.backend.annotations

object

{}

Annotations to add to the backend Ingress resource.

ingress.backend.className

string

""

The name of the IngressClass cluster resource.

ingress.backend.enabled

bool

false

Enable creation of the backend Ingress resource (serves /apis)

ingress.backend.host

string

"chart-example.local"

Hostname for the backend Ingress.

ingress.backend.tls

list

[]

TLS configuration for the backend Ingress.

ingress.ui.annotations

object

{}

Annotations to add to the UI Ingress resource.

ingress.ui.className

string

""

The name of the IngressClass cluster resource.

ingress.ui.enabled

bool

false

Enable creation of the UI Ingress resource (serves /). In case of AuthProxy enabled, this ingress requires the presence of the backend ingress. AuthProxy does not validate JWT tokens against Apicurio keycloak, making it impossible to validate the JWT received after looging into the UI.

ingress.ui.host

string

"chart-example.local"

Hostname for the UI Ingress.

ingress.ui.tls

list

[]

TLS configuration for the UI Ingress.

kafka

object

{"bootstrapServers":"","eventsTopic":"_registry-events","groupPatternOverride":"","journalTopic":"_kafkasql-journal","snapshotsTopic":"_kafkasql-snapshots"}

Kafka Configuration passed to the Apicurio Registry

kafka.bootstrapServers

string

""

Kafka bootstrap servers

kafka.eventsTopic

string

"_registry-events"

Name of the registry events topic (default: registry-events, typically {tenant}-{instance}-events)

kafka.groupPatternOverride

string

""

Override group prefix to give access to (typically {tenant}.{instance}.apicurio) If you’d like a custom group prefix, you can specify an override here.

kafka.journalTopic

string

"_kafkasql-journal"

Name of the KafkaSQL journal topic (default: kafkasql-journal, typically {tenant}-{instance}-journal)

kafka.snapshotsTopic

string

"_kafkasql-snapshots"

Name of the KafkaSQL snapshots topic (default: kafkasql-snapshots, typically {tenant}-{instance}-snapshots)

kafkaInitContainer.apicurioPrincipal

string

""

The principal common name used to produce and consume from Kafka topics (should match the one on APICURIO_KAFKASQL_SSL_KEYSTORE_LOCATION) If Kafka is configured to validate ACLs over the full principal chain, please provide the principal chain as this example: [0] CN=Root CA, [1] CN=Intermediate CA, [3] CN=schema-registry Otherwise, just provide the common name prefixed with CN:

kafkaInitContainer.eventsPartitions

string

"1"

Number of partitions for events topic

kafkaInitContainer.imageRegistry

string

"registry.axual.io"

Registry to pull the image from

kafkaInitContainer.journalPartitions

string

"1"

Number of partitions for journal topic (1 is sufficient, all messages use a global partition key)

kafkaInitContainer.minIsr

string

"2"

min.isr for journal, snapshots, events topics

kafkaInitContainer.replicationFactor

string

"3"

Replication factor for Kafka topics (recommended: 3 for HA)

kafkaInitContainer.repository

string

"axual/streaming/strimzi/kafka"

Name of the image being deployed

kafkaInitContainer.resources

object

{}

The resource requirements for this container.

kafkaInitContainer.snapshotsPartitions

string

"1"

Number of partitions for snapshots topic (1 is sufficient, all messages use a global partition key)

kafkaInitContainer.tag

string

"0.51.0-kafka-4.2.0"

Tag of the image being deployed

kafkaInitContainer.tls.keypairSecretCertName

string

""

Existing Keypair certificate name

kafkaInitContainer.tls.keypairSecretKeyName

string

""

Existing Keypair key name

kafkaInitContainer.tls.keypairSecretName

string

""

Existing Keypair secret name

kafkaInitContainer.tls.truststoreCaSecretCertName

string

""

Existing Truststore certificate name

kafkaInitContainer.tls.truststoreCaSecretName

string

""

Existing Truststore secret name

keystoreProvider.image.registry

string

"registry.axual.io"

Registry to pull the image from.

keystoreProvider.image.repository

string

"axual/keystore-provider"

Name of the image being deployed.

keystoreProvider.image.tag

string

"0.3.1"

keystoreProvider.resources

object

{}

The resource requirements for this container.

livenessProbe.failureThreshold

int

3

Minimum consecutive failures for the probe to be considered failed after having succeeded. A failed livenessProbe will cause the container to be restarted.

livenessProbe.initialDelaySeconds

int

0

initialDelaySeconds is effectively 0 here since startupProbe gates liveness.

livenessProbe.periodSeconds

int

10

How often (in seconds) to perform the probe.

livenessProbe.successThreshold

int

1

Minimum consecutive successes for the probe to be considered successful after having failed.

livenessProbe.timeoutSeconds

int

5

Number of seconds after which the probe times out.

logLevel

string

"INFO"

Log Level configuration passed as APICURIO_LOG_LEVEL Must be uppercase: TRACE, DEBUG, INFO, WARN, ERROR, OFF, ALL

managementPort

int

9000

Quarkus Management Interface configuration (enabled by default since Apicurio 3.2.0). Health probes and metrics are served on this separate port under the /q/ root path.

nameOverride

string

""

Override the app name generated by the chart.

nodeSelector

object

{}

Selector that must match a node’s labels for the pod to be scheduled on that node.

podAnnotations

object

{}

Extra annotations to add to the Pods.

podDisruptionBudget.enabled

bool

true

Enables creation of the PodDisruptionBudget. Ignored if replicaCount is 1.

podDisruptionBudget.maxUnavailable

int

1

An eviction is allowed if at most “maxUnavailable” pods are unavailable after eviction. Mutually exclusive with minAvailable.

podDisruptionBudget.minAvailable

int

nil

An eviction is allowed if at least “minAvailable” pods will still be available after the eviction. Mutually exclusive with maxUnavailable.

podSecurityContext

object

{}

Pod-level security attributes and common container settings.

priorityClass

string

""

Assigns a PriorityClass to the Pod. See Kubernetes documentation on Pod Priority and Preemption.

prometheusRule.defaultRule.labels

object

{"severity":"medium","target":"business"}

Customize the labels to the default prometheusRule

prometheusRule.enabled

bool

true

Enables creation of Prometheus Operator PrometheusRule.

prometheusRule.extraRules

list

[]

A list alerting or recording rules to include on top of the defaults. These fields are templated.

prometheusRule.interval

string

""

Determines how often rules in the group are evaluated.

prometheusRule.labels

object

{}

Additional labels for the PrometheusRule

readinessProbe.failureThreshold

int

3

Minimum consecutive failures for the probe to be considered failed after having succeeded. A failed readinessProbe will cause the container to move to the NotReady state.

readinessProbe.initialDelaySeconds

int

0

Number of seconds after the container has started before readiness probes are initiated.

readinessProbe.periodSeconds

int

10

How often (in seconds) to perform the probe.

readinessProbe.successThreshold

int

1

Minimum consecutive successes for the probe to be considered successful after having failed.

readinessProbe.timeoutSeconds

int

5

Number of seconds after which the probe times out.

replicaCount

int

1

Number of pods to deploy.

resources

object

{}

The resource requirements for this container.

route.annotations

object

{}

Annotations to add to the Route.

route.enabled

bool

false

Enable creation of an OpenShift Route resource to expose this service.

route.host

string

""

An alias/DNS that points to the service. Optional. If not specified, a route name will typically be automatically chosen.

route.labels

object

{}

Labels to add to the route.

route.path

string

"/"

Path that the router watches for, to route traffic for to the service.

route.subdomain

string

""

Subdomain is a DNS subdomain requested within the ingress controller’s domain (as a subdomain). If host is set this field is ignored.

route.targetPort

string

"https"

Target pod port used by the Router

route.tls.caCertificate

string

""

The Certificate Authority certificate contents.

route.tls.certificate

string

""

Certificate contents. This should be a single serving certificate, not a certificate chain. Do not include a CA certificate.

route.tls.destinationCACertificate

string

""

The CA certificate of the final destination. When using reencrypt termination, this file should be provided to have routers use it for health checks on the secure connection.

route.tls.key

string

""

Key file contents.

route.tls.termination

string

"passthrough"

Indicates a termination type. One of: edge, passthrough, or reencrypt.

security

object

{"authentication":{"basicAuthEnabled":false,"enabled":false,"keycloak":{"authUrl":"","realm":"","webClientId":"","webRedirectUrl":""}}}

The configuration related to authentication and authorization of users to the registry Note: In order for any other authentication feature to work, security.authentication.enabled needs to be enabled

security.authentication.keycloak

object

{"authUrl":"","realm":"","webClientId":"","webRedirectUrl":""}

Attributes that are required for Apicurio to access the keycloak instance required only when security.authentication.enabled is true

security.authentication.keycloak.authUrl

string

""

Keycloak Authentication URL

security.authentication.keycloak.realm

string

""

Keycloak Realm used for Apicurio permissions and users

security.authentication.keycloak.webClientId

string

""

Client ID for the Apicurio UI

security.authentication.keycloak.webRedirectUrl

string

""

Apicurio UI URL

securityContext

object

See values.yaml file.

Defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

service.annotations

object

{}

Annotations to add to the Service resource.

service.httpPort

int

20500

service.httpsPort

int

21500

The port that will be exposed by the service. Note: this is independent of the ports opened on the container.

service.type

string

"ClusterIP"

Determines how the Service is exposed.

service.uiPort

int

20501

serviceAccount.annotations

object

{}

Annotations to add to the service account

serviceAccount.create

bool

true

Specifies whether a service account should be created

serviceAccount.name

string

""

The name of the service account to use. If not set and create is true, a name is generated using the fullname template.

serviceMonitor.enabled

bool

true

Enables creation of Prometheus Operator ServiceMonitor.

serviceMonitor.interval

string

"30s"

Interval at which metrics should be scraped.

serviceMonitor.labels

object

{}

Additional labels for the ServiceMonitor

serviceMonitor.scrapeTimeout

string

"10s"

Timeout after which the scrape is ended.

startupProbe.failureThreshold

int

60

Minimum consecutive failures for the probe to be considered failed. Allow up to 10 minutes for startup (Quarkus JVM boot + Kafka partition assignment + journal replay). liveness/readiness probes only kick in after startupProbe succeeds.

startupProbe.initialDelaySeconds

int

20

Number of seconds after the container has started before the startup probe is initiated.

startupProbe.periodSeconds

int

10

How often (in seconds) to perform the probe.

startupProbe.successThreshold

int

1

Minimum consecutive successes for the probe to be considered successful after having failed.

startupProbe.timeoutSeconds

int

5

Number of seconds after which the probe times out.

tls.clientKeypairSecretName

string

""

Name of the Client KeyPair Secret (Optional). type: kubernetes.io/tls

tls.clientTruststoreCaSecretName

string

""

Name of the Client Truststore Certificates Secret (Optional). If provided, takes precedence over the truststoreCaSecretName. type: Opaque

tls.serverKeypairSecretName

string

""

Name of the Server KeyPair Secret. type: kubernetes.io/tls

tls.serverTruststoreCaSecretName

string

""

Name of the Server Truststore Certificates Secret (Optional). If provided, takes precedence over the truststoreCaSecretName. type: Opaque

tls.truststoreCaSecretName

string

""

Name of the Truststore Certificates Secret (Optional). type: Opaque

tolerations

list

[]

The tolerations on this pod. See the Kubernetes documentation on Taints and Tolerations.

topologySpreadConstraints

list

[]

Describes how a group of pods ought to spread across topology domains. See the Kubernetes documentation on Pod Topology Spread Constraints.

ui

object

{"config":{"authType":"oidc","readOnly":false,"registryApiUrl":"","roleManagement":true,"settings":true},"image":{"pullPolicy":"Always","registry":"registry.axual.io/docker.io","repository":"apicurio/apicurio-registry-ui","tag":"3.3.0"},"resources":{}}

UI container configuration (Apicurio 3.x has UI as separate container) Note: UI is always deployed with the registry (cannot be disabled separately)

ui.config

object

{"authType":"oidc","readOnly":false,"registryApiUrl":"","roleManagement":true,"settings":true}

UI-specific configuration

ui.config.authType

string

"oidc"

Authentication type: “none” or “oidc”

ui.config.readOnly

bool

false

Enable read-only mode

ui.config.registryApiUrl

string

""

Backend API location - REQUIRED: Must be set to the public HTTPS URL that browsers can access. Example: “https://apicurio.example.com/apis/registry/v3”; Note: Do NOT use localhost - this URL is accessed by the user’s browser, not the container.

ui.config.roleManagement

bool

true

Show role management tab

ui.config.settings

bool

true

Show settings tab

ui.image.pullPolicy

string

"Always"

One of Always, IfNotPresent, or Never.

ui.image.registry

string

"registry.axual.io/docker.io"

Registry to pull the UI image from.

ui.image.repository

string

"apicurio/apicurio-registry-ui"

Name of the UI image being deployed.

ui.image.tag

string

"3.3.0"

Override the UI image tag whose default is the image.tag. This tag is used for the registry UI container.

ui.resources

object

{}

The resource requirements for the UI container.


Autogenerated from chart metadata using helm-docs v1.14.2

Reference Helm VALUES.YAML for Apicurio

# Default values for apicurio-registry.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

global:
  # -- The domain of the Kubernetes cluster. The vast majority of Kubernetes clusters use the default value.
  clusterDomain: "cluster.local"

  # -- Globally override the registry to pull images from.
  imageRegistry: ""
  # -- Globally override the list of ImagePullSecrets provided.
  imagePullSecrets: []

# -- Override the app name generated by the chart.
nameOverride: ""
# -- Override the fully qualified app name generated by the chart.
fullnameOverride: ""

# -- Number of pods to deploy.
replicaCount: 1

# -- Annotations to add to the Deployment resource.
annotations: {}

image:
  # -- Registry to pull the image from.
  registry: "registry.axual.io"
  # -- Name of the image being deployed.
  repository: "axual/apicurio-registry"
  # -- Override the image tag whose default is the chart `appVersion`.
  # This tag is used for the registry backend container.
  tag: "3.3.0.Ax1"
  # -- One of `Always`, `IfNotPresent`, or `Never`.
  pullPolicy: "Always"

# -- UI container configuration (Apicurio 3.x has UI as separate container)
# Note: UI is always deployed with the registry (cannot be disabled separately)
ui:
  image:
    # -- Registry to pull the UI image from.
    registry: "registry.axual.io/docker.io"
    # -- Name of the UI image being deployed.
    repository: "apicurio/apicurio-registry-ui"
    # -- Override the UI image tag whose default is the `image.tag`.
    # This tag is used for the registry UI container.
    tag: "3.3.0"
    # -- One of `Always`, `IfNotPresent`, or `Never`.
    pullPolicy: "Always"
  # -- The [resource requirements](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the UI container.
  resources: {}
  # -- UI-specific configuration
  config:
    # -- Backend API location - REQUIRED: Must be set to the public HTTPS URL that browsers can access.
    # Example: "https://apicurio.example.com/apis/registry/v3"
    # Note: Do NOT use localhost - this URL is accessed by the user's browser, not the container.
    registryApiUrl: ""
    # -- Authentication type: "none" or "oidc"
    authType: "oidc"
    # -- Enable read-only mode
    readOnly: false
    # -- Show role management tab
    roleManagement: true
    # -- Show settings tab
    settings: true

keystoreProvider:
  image:
    # -- Registry to pull the image from.
    registry: "registry.axual.io"
    # -- Name of the image being deployed.
    repository: "axual/keystore-provider"
    tag: "0.3.1"
  # -- The [resource requirements](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for this container.
  resources: {}

tls:
  # -- Name of the Client KeyPair Secret (Optional).
  # type: kubernetes.io/tls
  clientKeypairSecretName: ""
  # -- Name of the Server KeyPair Secret.
  # type: kubernetes.io/tls
  serverKeypairSecretName: ""
  # -- Name of the Truststore Certificates Secret (Optional).
  # type: Opaque
  truststoreCaSecretName: ""
  # -- Name of the Client Truststore Certificates Secret (Optional).
  # If provided, takes precedence over the truststoreCaSecretName.
  # type: Opaque
  clientTruststoreCaSecretName: ""
  # -- Name of the Server Truststore Certificates Secret (Optional).
  # If provided, takes precedence over the truststoreCaSecretName.
  # type: Opaque
  serverTruststoreCaSecretName: ""

# -- Environment variables to define for the container.
# See the Kubernetes documentation on [Environment Variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/).
env: []

# -- Configuration passed to the container.
# Contents get injected to a ConfigMap, which gets mounted as an `application.properties` file.
config:
  # ENABLE_CCOMPAT_CANONICAL_HASH_MODE
  apicurio.ccompat.use-canonical-hash: "true"
  # ENABLE_CCOMPAT_LEGACY_ID_MODE
  apicurio.ccompat.legacy-id-mode.enabled: "false"
  # REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED (enabled)
  apicurio.auth.anonymous-read-access.enabled: "true"
  # ROLE_BASED_AUTHZ_ENABLED
  # REGISTRY_AUTH_RBAC_ENABLED
  apicurio.auth.role-based-authorization: "true"
  # REGISTRY_AUTH_OBAC_ENABLED
  apicurio.auth.owner-only-authorization: "true"
  # REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED
  apicurio.auth.admin-override.enabled: "true"
  # Define the Global Validity
  apicurio.rules.global.validity: "FULL"
  # Define the Global Compatibility
  apicurio.rules.global.compatibility: "NONE"
  # Enable artifact deletion (disabled by default in v3)
  apicurio.rest.deletion.artifact.enabled: "true"
  # Enable artifact version deletion (disabled by default in v3)
  apicurio.rest.deletion.artifact-version.enabled: "true"
  # Configure JSON logging (quarkus-logging-json extension is bundled in the image)
  quarkus.log.console.enabled: "true"
  quarkus.log.console.json.enabled: "true"
  quarkus.log.console.json.pretty-print: "false"
  quarkus.log.console.json.date-format: "default"
  quarkus.log.console.json.exception-output-type: "formatted"

# -- Quarkus Management Interface configuration (enabled by default since Apicurio 3.2.0).
# Health probes and metrics are served on this separate port under the /q/ root path.
managementPort: 9000

# -- List of ImagePullSecrets to apply to the service account. If the service account is disabled, it will be applied to the pod instead.
imagePullSecrets: []

# -- Kafka Configuration passed to the Apicurio Registry
kafka:
  # -- Kafka bootstrap servers
  bootstrapServers: ""
  # -- Override group prefix to give access to (typically {tenant}.{instance}.apicurio) If you'd like a custom group prefix, you can specify an override here.
  groupPatternOverride: ""
  # -- Name of the KafkaSQL journal topic (default: _kafkasql-journal, typically _{tenant}-{instance}-journal)
  journalTopic: "_kafkasql-journal"
  # -- Name of the KafkaSQL snapshots topic (default: _kafkasql-snapshots, typically _{tenant}-{instance}-snapshots)
  snapshotsTopic: "_kafkasql-snapshots"
  # -- Name of the registry events topic (default: _registry-events, typically _{tenant}-{instance}-events)
  eventsTopic: "_registry-events"

# -- The configuration related to authentication and authorization of users to the registry
# Note: In order for any other authentication feature to work,
# security.authentication.enabled needs to be enabled
security:
  authentication:
    enabled: false
    basicAuthEnabled: false

    # -- Attributes that are required for Apicurio to access the keycloak instance
    # required only when security.authentication.enabled is true
    keycloak:
      # -- Keycloak Authentication URL
      authUrl: ""
      # -- Keycloak Realm used for Apicurio permissions and users
      realm: ""
      # -- Client ID for the Apicurio UI
      webClientId: ""
      # -- Apicurio UI URL
      webRedirectUrl: ""

# -- Log Level configuration passed as APICURIO_LOG_LEVEL
logLevel: INFO

# -- Debug Configuration passed to the container(s).
# Enable the `5005` port in the deployment.yaml
debug:
  enabled: false

serviceAccount:
  # -- Specifies whether a service account should be created
  create: true
  # -- Annotations to add to the service account
  annotations: {}
  # -- The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template.
  name: ""

# -- Extra annotations to add to the Pods.
podAnnotations: {}

# -- Pod-level security attributes and common container settings.
podSecurityContext: {}
#   fsGroup: 2000

startupProbe:
  # -- Minimum consecutive failures for the probe to be considered failed.
  # Allow up to 10 minutes for startup (Quarkus JVM boot + Kafka partition assignment + journal replay).
  # liveness/readiness probes only kick in after startupProbe succeeds.
  failureThreshold: 60
  # -- Number of seconds after the container has started before the startup probe is initiated.
  initialDelaySeconds: 20
  # -- How often (in seconds) to perform the probe.
  periodSeconds: 10
  # -- Minimum consecutive successes for the probe to be considered successful after having failed.
  successThreshold: 1
  # -- Number of seconds after which the probe times out.
  timeoutSeconds: 5

livenessProbe:
  # -- Minimum consecutive failures for the probe to be considered failed after having succeeded.
  # A failed livenessProbe will cause the container to be restarted.
  failureThreshold: 3
  # -- initialDelaySeconds is effectively 0 here since startupProbe gates liveness.
  initialDelaySeconds: 0
  # -- How often (in seconds) to perform the probe.
  periodSeconds: 10
  # -- Minimum consecutive successes for the probe to be considered successful after having failed.
  successThreshold: 1
  # -- Number of seconds after which the probe times out.
  timeoutSeconds: 5

readinessProbe:
  # -- Minimum consecutive failures for the probe to be considered failed after having succeeded.
  # A failed readinessProbe will cause the container to move to the `NotReady` state.
  failureThreshold: 3
  # -- Number of seconds after the container has started before readiness probes are initiated.
  initialDelaySeconds: 0
  # -- How often (in seconds) to perform the probe.
  periodSeconds: 10
  # -- Minimum consecutive successes for the probe to be considered successful after having failed.
  successThreshold: 1
  # -- Number of seconds after which the probe times out.
  timeoutSeconds: 5

# -- Defines the security options the container should be run with.
# If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
# @default -- See `values.yaml` file.
securityContext:
  allowPrivilegeEscalation: false
  capabilities:
    drop:
      - ALL
  privileged: false
  readOnlyRootFilesystem: false
  runAsNonRoot: true
  runAsUser: 1000

# -- Additional init containers, e.g. for configuring java-security
extraInitContainers: ""

# -- Add additional volumes, e.g. for java-security
extraVolumes: ""

# -- Add additional volumes mounts, e.g. for java-security
extraVolumeMounts: ""

# -- Additional sidecar containers, e.g. for a database proxy, such as Google's cloudsql-proxy
extraContainers: ""


service:
  # -- Annotations to add to the Service resource.
  annotations: { }
  # -- Determines how the Service is exposed.
  type: ClusterIP
  # -- The port that will be exposed by the service.
  # Note: this is independent of the ports opened on the container.
  httpsPort: 21500
  httpPort: 20500
  uiPort: 20501

ingress:
  backend:
    # -- Enable creation of the backend Ingress resource (serves /apis)
    enabled: false
    # -- The name of the IngressClass cluster resource.
    className: ""
    # -- Annotations to add to the backend Ingress resource.
    annotations: {}
    # -- Hostname for the backend Ingress.
    host: "chart-example.local"
    # -- TLS configuration for the backend Ingress.
    tls: []
    #  - secretName: chart-example-tls
    #    hosts:
    #      - chart-example.local
  ui:
    # -- Enable creation of the UI Ingress resource (serves /). In case of AuthProxy enabled, this ingress requires the presence of the `backend` ingress. AuthProxy does not validate JWT tokens against Apicurio keycloak, making it impossible to validate the JWT received after looging into the UI.
    enabled: false
    # -- The name of the IngressClass cluster resource.
    className: ""
    # -- Annotations to add to the UI Ingress resource.
    annotations: {}
    # -- Hostname for the UI Ingress.
    host: "chart-example.local"
    # -- TLS configuration for the UI Ingress.
    tls: []
    #  - secretName: chart-example-tls
    #    hosts:
    #      - chart-example.local


route:
  # -- Enable creation of an OpenShift Route resource to expose this service.
  enabled: false
  # -- Annotations to add to the Route.
  annotations: {}
  # -- Labels to add to the route.
  labels: {}
  # -- An alias/DNS that points to the service. Optional. If not specified, a route name will typically be automatically chosen.
  host: ""
  # -- Subdomain is a DNS subdomain requested within the ingress controller’s domain (as a subdomain). If host is set this field is ignored.
  subdomain: ""
  # -- Path that the router watches for, to route traffic for to the service.
  path: "/"
  # -- Target pod port used by the Router
  targetPort: https
  tls:
    # -- The Certificate Authority certificate contents.
    caCertificate: ""
    # -- Certificate contents. This should be a single serving certificate, not a certificate chain. Do not include a CA certificate.
    certificate: ""
    # -- Key file contents.
    key: ""
    # -- Indicates a termination type. One of: `edge`, `passthrough`, or `reencrypt`.
    termination: "passthrough"
    # -- The CA certificate of the final destination.
    # When using reencrypt termination, this file should be provided
    #  to have routers use it for health checks on the secure connection.
    destinationCACertificate: ""

# -- The [resource requirements](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for this container.
resources: {}

autoscaling:
  # -- Enables the creation of a HorizontalPodAutoscaler.
  enabled: false
  # -- Lower limit for the number of replicas to which the autoscaler can scale down.
  minReplicas: 1
  # -- Upper limit for the number of replicas to which the autoscaler can scale up. Cannot be less that minReplicas.
  maxReplicas: 10
  # -- Percentage of CPU utilization that the autoscaler will try to meet.
  targetCPUUtilizationPercentage: 80
  # -- (int) Percentage of memory utilization that the autoscaler will try to meet.
  targetMemoryUtilizationPercentage: 80

podDisruptionBudget:
  # -- Enables creation of the PodDisruptionBudget. Ignored if replicaCount is 1.
  enabled: true
  # -- (int) An eviction is allowed if at most "maxUnavailable" pods are unavailable after eviction. Mutually exclusive with minAvailable.
  maxUnavailable: 1
  # -- (int) An eviction is allowed if at least "minAvailable" pods will still be available after the eviction. Mutually exclusive with maxUnavailable.
  minAvailable:

# -- Assigns a PriorityClass to the Pod. See Kubernetes documentation on [Pod Priority and Preemption](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/).
priorityClass: ""

# -- Optional list of hosts and IPs that will be injected into the pod's hosts file.
hostAliases: []

# -- Selector that must match a node's labels for the pod to be scheduled on that node.
nodeSelector: {}

# -- The tolerations on this pod. See the Kubernetes documentation on [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
tolerations: []

# -- The pod's scheduling constraints. See the Kubernetes documentation on [Affinity and Anti-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity).
affinity: {}

# -- Describes how a group of pods ought to spread across topology domains. See the Kubernetes documentation on [Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/).
topologySpreadConstraints: []

serviceMonitor:
  # -- Enables creation of Prometheus Operator [ServiceMonitor](https://prometheus-operator.dev/docs/operator/api/#monitoring.coreos.com/v1.ServiceMonitor).
  enabled: true
  # -- Interval at which metrics should be scraped.
  interval: 30s
  # -- Timeout after which the scrape is ended.
  scrapeTimeout: 10s
  # -- Additional labels for the ServiceMonitor
  labels: { }

prometheusRule:
  # -- Enables creation of Prometheus Operator [PrometheusRule](https://prometheus-operator.dev/docs/operator/api/#monitoring.coreos.com/v1.PrometheusRule).
  enabled: true
  # -- Determines how often rules in the group are evaluated.
  interval: ""
  # -- Additional labels for the PrometheusRule
  labels: { }
  defaultRule:
    # -- Customize the labels to the default prometheusRule
    labels:
      severity: medium
      target: business
  # -- A list alerting or recording rules to include on top of the defaults. These fields are templated.
  extraRules:
    []
#    # - alert: MyAlertName
#    #   annotations:
#    #     summary: Summary of my alert
#    #     description: Longer description of my alert that goes into a bit more detail
#    #   expr: up{service="{{ include "apicurio-registry.fullname" . }}"} == 0
#    #   for: 5m
#    #   labels:
#    #     severity: medium
#    #     target: business

kafkaInitContainer:
  # -- Registry to pull the image from
  imageRegistry: "registry.axual.io"
  # -- Name of the image being deployed
  repository: "axual/streaming/strimzi/kafka"
  # -- Tag of the image being deployed
  tag: "0.51.0-kafka-4.2.0"
  # -- The principal common name used to produce and consume from Kafka topics (should match the one on APICURIO_KAFKASQL_SSL_KEYSTORE_LOCATION)
  # If Kafka is configured to validate ACLs over the full principal chain, please provide the principal chain as this example: [0] CN=Root CA, [1] CN=Intermediate CA, [3] CN=schema-registry
  # Otherwise, just provide the common name prefixed with `CN:`
  apicurioPrincipal: ""
  # -- Replication factor for Kafka topics (recommended: 3 for HA)
  replicationFactor: "3"
  # -- min.isr for journal, snapshots, events topics
  minIsr: "2"
  # -- Number of partitions for journal topic (1 is sufficient, all messages use a global partition key)
  journalPartitions: "1"
  # -- Number of partitions for snapshots topic (1 is sufficient, all messages use a global partition key)
  snapshotsPartitions: "1"
  # -- Number of partitions for events topic
  eventsPartitions: "1"
  tls:
    # -- Existing Keypair secret name
    keypairSecretName: ""
    # -- Existing Keypair key name
    keypairSecretKeyName: ""
    # -- Existing Keypair certificate name
    keypairSecretCertName: ""
    # -- Existing Truststore secret name
    truststoreCaSecretName: ""
    # -- Existing Truststore certificate name
    truststoreCaSecretCertName: ""
  # -- The [resource requirements](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for this container.
  resources: {}

# -- Apicurio Keycloak MySQL Components toggles
apicurioKeycloakMysql:
  enabled: false
  image:
    registry: docker.io
    repository: bitnamilegacy/mysql

# -- Apicurio Keycloak Instance
apicurioKeycloak:
  # -- Keycloak Components toggles
  enabled: false
  # -- Apicurio realm name
  realm: ""
  # -- Keycloak Proxy configuration
  proxy:
    # Needed since Keycloak 25.0.1
    mode: xforwarded
    http:
      enabled: true


# ============================================================================
# Auth Proxy Configuration
# ============================================================================
# Auth Proxy provides JWT validation and Basic Auth conversion for Apicurio Registry.
# When enabled, it runs as a sidecar container and handles authentication/authorization.
# ============================================================================
authProxy:
  # -- Enable Auth Proxy sidecar container
  enabled: false
  image:
    # -- Registry to pull the image from.
    registry: "registry.axual.io"
    # -- Name of the image being deployed.
    repository: "axual/auth-proxy"
    # -- Image tag for the Auth Proxy.
    tag: "0.1.1"
    # -- One of `Always`, `IfNotPresent`, or `Never`.
    pullPolicy: "Always"
  # -- Port on which the Auth Proxy listens for incoming requests
  # NOTE: Must be different from Apicurio backend (8081) and UI (8080) ports
  port: 8082
  # -- Auth Proxy application.yml configuration
  # Full YAML structure that will be mounted as /config/application.yml
  # Minimal configuration - only override essential values that differ from Auth Proxy defaults
  config:
    server:
      # -- Port override (must differ from Apicurio's 8081 and UI's 8080)
      port: 8082
    auth-proxy:
      # -- JWT issuer URI for validation (e.g., https://axual.cloud/auth/realms/tenant1). REQUIRED.
      valid-issuer-uri: ""
      # -- JWKS endpoint URI for fetching public keys. REQUIRED.
      jwks-endpoint-uri: ""
      # -- Expected client ID / audience value for JWT validation
      client-id: ""
      # -- Backend service URL to proxy requests to (routes to Apicurio backend in the same pod)
      backend-service: "http://localhost:8081"
    # Uncomment to enable OpenTelemetry distributed tracing
    # management:
    #   otlp:
    #     tracing:
    #       endpoint: "http://jaeger-collector:4318/v1/traces"
    # spring:
    #   application:
    #     name: "my-auth-proxy"
    # deployment:
    #   environment: "production"
  # -- Secrets configuration for Auth Proxy
  # Full YAML structure that will be mounted as /config/secrets/secrets.yml
  secrets: {}
    # Example:
    # auth-proxy:
  #   client-secret-salt: "your-secure-random-salt"
  # -- Secret management
    # -- The name of an existing Kubernetes Secret. The key in the Secret must be `secrets.yml`.
    # The contents get mounted into the container.
  existingSecretName: ""

  # -- Liveness probe configuration for Auth Proxy.
  # Probes /actuator/health/liveness on the management port.
  livenessProbe:
    # -- Minimum consecutive failures for the probe to be considered failed after having succeeded.
    # A failed livenessProbe will cause the container to be restarted.
    failureThreshold: 3
    # -- Number of seconds after the container has started before liveness probes are initiated.
    initialDelaySeconds: 10
    # -- How often (in seconds) to perform the probe.
    periodSeconds: 10
    # -- Minimum consecutive successes for the probe to be considered successful after having failed.
    successThreshold: 1
    # -- Number of seconds after which the probe times out.
    timeoutSeconds: 1
  # -- Readiness probe configuration for Auth Proxy.
  # Probes /actuator/health/readiness on the management port.
  readinessProbe:
    # -- Minimum consecutive failures for the probe to be considered failed after having succeeded.
    # A failed readinessProbe will cause the container to move to the `NotReady` state.
    failureThreshold: 3
    # -- Number of seconds after the container has started before readiness probes are initiated.
    initialDelaySeconds: 5
    # -- How often (in seconds) to perform the probe.
    periodSeconds: 10
    # -- Minimum consecutive successes for the probe to be considered successful after having failed.
    successThreshold: 1
    # -- Number of seconds after which the probe times out.
    timeoutSeconds: 1

  debug: {}
  # -- The [resource requirements](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for Auth Proxy container.
  resources: {}
  # -- Management/actuator endpoints configuration
  # Auth Proxy uses built-in defaults for most management settings (port 8086, health/metrics endpoints, etc.)
  management:
    # -- Port for Spring Boot Actuator management endpoints (Auth Proxy default: 8086)
    # Used for health probe references and service port definition
    port: 8086
    # -- Enable Prometheus metrics scraping via ServiceMonitor
    metricsEnabled: true
  # -- Ingress configuration for Auth Proxy (separate from Apicurio ingress)
  ingress:
    # -- Enable creation of the Ingress resource for Auth Proxy
    enabled: false
    # -- The name of the IngressClass cluster resource
    className: ""
    # -- Annotations to add to the Auth Proxy Ingress resource
    annotations: {}
    hosts:
      - # -- The fully qualified domain name for Auth Proxy
        host: "chart-example.local"
        paths:
          - # -- Matched against the path of an incoming request
            path: "/"
            # -- Determines the interpretation of the Path matching
            pathType: "ImplementationSpecific"
    # -- TLS configuration for Auth Proxy Ingress
    tls: []
    #  - secretName: auth-proxy-tls
    #    hosts:
    #      - chart-example.local
  # -- OpenShift Route configuration for Auth Proxy (separate from Apicurio route)
  route:
    # -- Enable creation of an OpenShift Route for Auth Proxy
    enabled: false
    # -- Annotations to add to the Auth Proxy Route
    annotations: {}
    # -- Labels to add to the Auth Proxy Route
    labels: {}
    # -- An alias/DNS that points to the service
    host: ""
    # -- Subdomain is a DNS subdomain requested within the ingress controller's domain
    subdomain: ""
    # -- Path that the router watches for
    path: "/"
    # -- Target pod port used by the Router
    targetPort: auth-proxy
    tls:
      # -- The Certificate Authority certificate contents
      caCertificate: ""
      # -- Certificate contents
      certificate: ""
      # -- Key file contents
      key: ""
      # -- Indicates a termination type. One of: edge, passthrough, or reencrypt
      termination: "edge"
      # -- The CA certificate of the final destination
      destinationCACertificate: ""
  # -- (multi-line) String that is put into a configmap, mounted in the pod and used as the logback config for Auth Proxy. If present, configuration under `logging` is ignored.
  logbackConfig: ""
  # -- Logging configuration object used when the logbackConfig is not set. Allows for configuring pattern and per package log levels.
  logging:
    # -- Log pattern (when logbackConfig is not defined)
    pattern: "%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX, UTC} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] [traceid=%X{traceid}, spanid=%X{spanid}] %-40.40logger{39} : %m%n}"
    # -- Root log level used (when logbackConfig is not defined)
    rootLoglevel: INFO
    # -- Log level per package (when logbackConfig is not defined)
    loggers:
      # -- Log level for Auth Proxy (when logbackConfig is not defined)
      io.axual.auth.proxy: INFO
      # -- Log level for Spring Cloud Gateway (when logbackConfig is not defined)
      org.springframework.cloud.gateway: INFO
  # -- Additional environment variables for Auth Proxy container
  # These will be added to the env section of the Auth Proxy container
  env: []
    # Example:
    # - name: CUSTOM_VAR
    #   value: "custom-value"
    # - name: SECRET_VAR
    #   valueFrom:
    #     secretKeyRef:
    #       name: my-secret
  #       key: secret-key