A Helm chart with cp-schema-registry for Kubernetes
The original Helm chart for Confluent Schema Registry has been deprecated, and over time it became too bulky and outdated. That's why I've created a new, lighter, and more up-to-date Helm chart. This new chart is more streamlined and easier to customize.
Some of the key changes include:
- Configurations that are compatible with the latest Kubernetes features
- Easier setup, with more modular and flexible options
Name | Url | |
---|---|---|
ialejandro | [email protected] | https://ialejandro.rocks |
- Helm 3+
helm repo add devops-ia https://devops-ia.github.io/helm-charts
helm repo update
helm install [RELEASE_NAME] devops-ia/cp-schema-registry
This install all the Kubernetes components associated with the chart and creates the release.
See helm install for command documentation.
helm uninstall [RELEASE_NAME]
This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
See Customizing the chart before installing. To see all configurable options with comments:
helm show values devops-ia/cp-schema-registry
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
Affinity for pod assignment Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity |
autoscaling | object | {"enabled":false,"maxReplicas":100,"minReplicas":1,"targetCPUUtilizationPercentage":80} |
Autoscaling with CPU or memory utilization percentage Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ |
env | object | {"SCHEMA_REGISTRY_HEAP_OPTS":"-Xms512M -Xmx512M","SCHEMA_REGISTRY_MASTER_ELIGIBILITY":"true"} |
Environment variables to configure application Ref: https://docs.confluent.io/platform/current/schema-registry/installation/config.html#schemaregistry-config |
envFromSecrets | object | {} |
Secrets from variables |
fullnameOverride | string | "" |
String to fully override cp-schema-registry.fullname template |
image | object | {"pullPolicy":"IfNotPresent","repository":"confluentinc/cp-schema-registry","tag":""} |
Image registry The image configuration for the base service |
imagePullSecrets | list | [] |
Global Docker registry secret names as an array |
ingress | object | {"annotations":{},"className":"","enabled":false,"hosts":[{"host":"chart-example.local","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}],"tls":[]} |
Ingress configuration to expose app Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ |
initContainers | list | [] |
Configure additional containers Ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ |
livenessProbe | object | {"enabled":false,"failureThreshold":3,"initialDelaySeconds":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5} |
Configure liveness checker Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes |
livenessProbeCustom | object | {} |
Custom livenessProbe |
metrics | object | {"enabled":false,"exporter":{"enabled":false,"image":{"pullPolicy":"IfNotPresent","repository":"solsson/kafka-prometheus-jmx-exporter@sha256","tag":"6f82e2b0464f50da8104acd7363fb9b995001ddff77d248379f8788e78946143"},"port":5556,"resources":{}},"port":5555} |
Enable metrics |
metrics.enabled | bool | false |
Enable or disable |
metrics.exporter | object | {"enabled":false,"image":{"pullPolicy":"IfNotPresent","repository":"solsson/kafka-prometheus-jmx-exporter@sha256","tag":"6f82e2b0464f50da8104acd7363fb9b995001ddff77d248379f8788e78946143"},"port":5556,"resources":{}} |
prometheus-jmx-exporter configuration |
metrics.exporter.enabled | bool | false |
Enable or disable |
metrics.exporter.image | object | {"pullPolicy":"IfNotPresent","repository":"solsson/kafka-prometheus-jmx-exporter@sha256","tag":"6f82e2b0464f50da8104acd7363fb9b995001ddff77d248379f8788e78946143"} |
Image registry The image configuration for the base service |
metrics.exporter.port | int | 5556 |
Expose exporter port |
metrics.exporter.resources | object | {} |
Resources limits and requested Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
metrics.port | int | 5555 |
Expose metrics port |
nameOverride | string | "" |
String to partially override cp-schema-registry.fullname template (will maintain the release name) |
nodeSelector | object | {} |
Node labels for pod assignment Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector |
podAnnotations | object | {} |
Configure annotations on Pods |
podDisruptionBudget | object | {"enabled":false,"maxUnavailable":1,"minAvailable":null} |
Pod Disruption Budget Ref: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/ |
podLabels | object | {} |
Configure labels on Pods |
podSecurityContext | object | {} |
Defines privilege and access control settings for a Pod Ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/ Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
readinessProbe | object | {"enabled":false,"failureThreshold":3,"initialDelaySeconds":10,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1} |
Configure readinessProbe checker Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes |
readinessProbeCustom | object | {} |
Custom readinessProbe |
replicaCount | int | 1 |
Number of replicas Specifies the number of replicas for the service |
resources | object | {} |
Resources limits and requested Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
secrets | object | {} |
Secrets values to create credentials and reference by envFromSecrets Generate Secret with following name: -credentials |
securityContext | object | {} |
Defines privilege and access control settings for a Container Ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/ Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
service | object | {"port":8081,"targetPort":8081,"type":"ClusterIP"} |
Kubernetes service to expose Pod Ref: https://kubernetes.io/docs/concepts/services-networking/service/ |
service.port | int | 8081 |
Kubernetes Service port |
service.targetPort | int | 8081 |
Pod expose port |
service.type | string | "ClusterIP" |
Kubernetes Service type. Allowed values: NodePort, LoadBalancer or ClusterIP |
serviceAccount | object | {"annotations":{},"automount":true,"create":true,"name":""} |
Enable creation of ServiceAccount |
serviceMonitor | object | {"enabled":false,"interval":"30s","metricRelabelings":[],"relabelings":[],"scrapeTimeout":"10s"} |
Enable ServiceMonitor to get metrics Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitor |
serviceMonitor.enabled | bool | false |
Enable or disable |
startupProbe | object | {"enabled":false,"failureThreshold":30,"initialDelaySeconds":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5} |
Configure startupProbe checker Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes |
startupProbeCustom | object | {} |
Custom startupProbe |
testConnection | bool | false |
Enable or disable test connection |
tolerations | list | [] |
Tolerations for pod assignment Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
volumeMounts | list | [] |
Additional volumeMounts on the output Deployment definition |
volumes | list | [] |
Additional volumes on the output Deployment definition |