diff --git a/bitnami/nats/Chart.yaml b/bitnami/nats/Chart.yaml index 78c2a946f..b9131c673 100644 --- a/bitnami/nats/Chart.yaml +++ b/bitnami/nats/Chart.yaml @@ -24,4 +24,4 @@ name: nats sources: - https://github.com/bitnami/bitnami-docker-nats - https://nats.io/ -version: 6.1.0 +version: 6.1.1 diff --git a/bitnami/nats/README.md b/bitnami/nats/README.md index 67264377c..9187aebeb 100644 --- a/bitnami/nats/README.md +++ b/bitnami/nats/README.md @@ -230,67 +230,6 @@ It is strongly recommended to use immutable tags in a production environment. Th Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist. -### Production configuration and horizontal scaling - -This chart includes a `values-production.yaml` file where you can find some parameters oriented to production configuration in comparison to the regular `values.yaml`. You can use this file instead of the default one. - -- Number of NATS nodes - -```diff -- replicaCount: 1 -+ replicaCount: 3 -``` - -- Enable and set the max. number of client connections, protocol control line, payload and duration the server can block on a socket write to a client - -```diff -- # maxConnections: 100 -- # maxControlLine: 512 -- # maxPayload: 65536 -- # writeDeadline: "2s" -+ maxConnections: 100 -+ maxControlLine: 512 -+ maxPayload: 65536 -+ writeDeadline: "2s" -``` - -- Enable NetworkPolicy: - -```diff -- networkPolicy.enabled: false -+ networkPolicy.enabled: true -``` - -- Disallow external connections: - -```diff -- networkPolicy.allowExternal: true -+ networkPolicy.allowExternal: false -``` - -- Enable ingress controller resource: - -```diff -- ingress.enabled: false -+ ingress.enabled: true -``` - -- Enable Prometheus metrics via exporter side-car: - -```diff -- metrics.enabled: false -+ metrics.enabled: true -``` - -- Enable PodDisruptionBudget: - -```diff -- pdb.create: false -+ pdb.create: true -``` - -To horizontally scale this chart, you can use the `--replicas` flag to modify the number of nodes in your NATS replica set. - ### Adding extra environment variables In case you want to add extra environment variables (useful for advanced operations like custom init scripts), you can use the `extraEnvVars` property. diff --git a/bitnami/nats/values-production.yaml b/bitnami/nats/values-production.yaml deleted file mode 100644 index a46116815..000000000 --- a/bitnami/nats/values-production.yaml +++ /dev/null @@ -1,565 +0,0 @@ -## Global Docker image parameters -## Please, note that this will override the image parameters, including dependencies, configured to use the global value -## Current available global Docker image parameters: imageRegistry and imagePullSecrets -## -# global: -# imageRegistry: myRegistryName -# imagePullSecrets: -# - myRegistryKeySecretName - -## Bitnami NATS image version -## ref: https://hub.docker.com/r/bitnami/nats/tags/ -## -image: - registry: docker.io - repository: bitnami/nats - tag: 2.1.9-debian-10-r64 - ## Specify a imagePullPolicy - ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' - ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images - ## - pullPolicy: IfNotPresent - ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace) - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - ## Example: - ## pullSecrets: - ## - myRegistryKeySecretName - ## - pullSecrets: [] - -## Force target Kubernetes version (using Helm capabilites if not set) -## -kubeVersion: - -## String to partially override common.names.fullname template (will maintain the release name) -## -# nameOverride: - -## String to fully override common.names.fullname template -## -# fullnameOverride: - -## Add labels to all the deployed resources -## -commonLabels: {} - -## Add annotations to all the deployed resources -## -commonAnnotations: {} - -## Kubernetes Cluster Domain -## -clusterDomain: cluster.local - -## Extra objects to deploy (value evaluated as a template) -## -extraDeploy: [] - -## Client Authentication -## ref: https://github.com/nats-io/gnatsd#authentication -## -auth: - enabled: true - user: nats_client - # password: - # token: - -## Cluster Authentication -## ref: https://github.com/nats-io/gnatsd#authentication -## -clusterAuth: - enabled: true - user: nats_cluster - # password: - # token: - -## Logging parameters -## ref: https://github.com/nats-io/gnatsd#command-line-arguments -## -debug: - enabled: false - trace: false - logtime: false - -## System overrides parameters -## ref: https://github.com/nats-io/gnatsd#configuration-file -## -maxConnections: 100 -maxControlLine: 512 -maxPayload: 65536 -writeDeadline: "2s" - -## Nats filenames: -## - For Nats 1.x.x version, some filenames (binary, configuration file, pid file) uses `gnatsd` as part of the name. -## - For Nats 2.x.x version, those filenames now uses `nats-server` -## In order to make the chart compatible with NATS versions 1.0.0 and 2.0.0 we have parametrized the following value -## to specify the proper filename according to the image version. -## -natsFilename: nats-server - -## Command and args for running the container (set to default if not set). Use array form -## -command: [] -args: [] - -## Extra flags to be passed to NATS -## Example: -## extraFlags: -## tls.insecure-skip-tls-verify: "" -## web.telemetry-path: "/metrics" -## -extraFlags: {} - -## An array to add extra env vars -## Example: -## extraEnvVars: -## - name: FOO -## value: "bar" -## -extraEnvVars: [] - -## ConfigMap with extra environment variables -## -extraEnvVarsCM: - -## Secret with extra environment variables -## -extraEnvVarsSecret: - -## NATS cluster resource type under Kubernetes. Allowed values: statefulset (default) or deployment -## ref: -## - https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ -## - https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ -## -resourceType: "statefulset" - -## Number of NATS replicas to deploy -## -replicaCount: 3 - -## Use an alternate scheduler, e.g. "stork". -## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ -## -# schedulerName: - -## Pod Priority Class -## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ -## -# priorityClassName: "" - -## Strategy to use to update Pods -## -updateStrategy: - ## StrategyType - ## Can be set to RollingUpdate or OnDelete - ## - type: RollingUpdate - -## NATS pods' Security Context -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container -## -podSecurityContext: - enabled: false - ## fsGroup: 1001 - ## - -## NATS containers' SecurityContext -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod -## -containerSecurityContext: - enabled: false - ## runAsUser: 1001 - ## runAsNonRoot: true - ## - -## NATS resource requests and limits -## ref: http://kubernetes.io/docs/user-guide/compute-resources/ -## -resources: - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - limits: {} - # cpu: 200m - # memory: 256Mi - requests: {} - # cpu: 200m - # memory: 256Mi - -## NATS containers' liveness and readiness probes. -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes -## -livenessProbe: - enabled: true - httpGet: - path: / - port: monitoring - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 6 - successThreshold: 1 -readinessProbe: - httpGet: - path: / - port: monitoring - enabled: true - initialDelaySeconds: 5 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 6 - successThreshold: 1 - -## Custom Liveness probes for NATS -## -customLivenessProbe: {} - -## Custom Rediness probes NATS -## -customReadinessProbe: {} - -## Pod extra labels -## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ -## -podLabels: {} - -## Annotations for server pods. -## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ -## -podAnnotations: {} - -## Pod affinity preset -## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity -## Allowed values: soft, hard -## -podAffinityPreset: "" - -## Pod anti-affinity preset -## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity -## Allowed values: soft, hard -## -podAntiAffinityPreset: soft - -## Node affinity preset -## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity -## Allowed values: soft, hard -## -nodeAffinityPreset: - ## Node affinity type - ## Allowed values: soft, hard - ## - type: "" - ## Node label key to match - ## E.g. - ## key: "kubernetes.io/e2e-az-name" - ## - key: "" - ## Node label values to match - ## E.g. - ## values: - ## - e2e-az1 - ## - e2e-az2 - ## - values: [] - -## Affinity for pod assignment. Evaluated as a template. -## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity -## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set -## -affinity: {} - -## Node labels for pod assignment. Evaluated as a template. -## ref: https://kubernetes.io/docs/user-guide/node-selection/ -## -nodeSelector: {} - -## Tolerations for pod assignment. Evaluated as a template. -## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ -## -tolerations: [] - -## Extra volumes to add to the deployment -## -extraVolumes: [] - -## Extra volume mounts to add to the container -## -extraVolumeMounts: [] - -## Add init containers to the NATS pods. -## Example: -## initContainers: -## - name: your-image-name -## image: your-image -## imagePullPolicy: Always -## ports: -## - name: portname -## containerPort: 1234 -## -initContainers: {} - -## Add sidecars to the NATS pods. -## Example: -## sidecars: -## - name: your-image-name -## image: your-image -## imagePullPolicy: Always -## ports: -## - name: portname -## containerPort: 1234 -## -sidecars: {} - -## NATS svc used for client connections -## ref: https://github.com/nats-io/gnatsd#running -## -client: - service: - ## Kubernetes service type - ## - type: ClusterIP - port: 4222 - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - ## Use loadBalancerIP to request a specific static IP, - ## otherwise leave blank - ## - # loadBalancerIP: - -## Kubernetes svc used for clustering -## ref: https://github.com/nats-io/gnatsd#clustering -## -cluster: - ## Use connectRetries to configure number of connect retries for implicit routes, - ## otherwise leave blank - ## - # connectRetries: - service: - ## Kubernetes service type - ## - type: ClusterIP - port: 6222 - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - ## Use loadBalancerIP to request a specific static IP, - ## otherwise leave blank - ## - # loadBalancerIP: - -## NATS svc used for monitoring -## ref: https://github.com/nats-io/gnatsd#monitoring -## -monitoring: - service: - ## Kubernetes service type - ## - type: ClusterIP - port: 8222 - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - ## Use loadBalancerIP to request a specific static IP, - ## otherwise leave blank - ## - loadBalancerIP: - -## Configure the ingress resource that allows you to access the -## NATS installation. Set up the URL -## ref: http://kubernetes.io/docs/user-guide/ingress/ -## -ingress: - ## Set to true to enable ingress record generation - ## - enabled: false - - ## Set this to true in order to add the corresponding annotations for cert-manager - ## - certManager: false - - ## Ingress Path type - ## - pathType: ImplementationSpecific - - ## Override API Version (automatically detected if not set) - ## - apiVersion: - - ## When the ingress is enabled, a host pointing to this will be created - ## - hostname: nats.local - - ## The Path to NATS. You may need to set this to '/*' in order to use this - ## with ALB ingress controllers. - ## - path: / - - ## Ingress annotations done as key:value pairs - ## For a full list of possible ingress annotations, please see - ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md - ## - ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set - ## - annotations: {} - - ## Enable TLS configuration for the hostname defined at ingress.hostname parameter - ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }} - ## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it - ## - tls: false - - ## The list of additional hostnames to be covered with this ingress record. - ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array - ## extraHosts: - ## - name: nats.local - ## path: / - ## - - ## Any additional arbitrary paths that may need to be added to the ingress under the main host. - ## For example: The ALB ingress controller requires a special rule for handling SSL redirection. - ## extraPaths: - ## - path: /* - ## backend: - ## serviceName: ssl-redirect - ## servicePort: use-annotation - ## - - ## The tls configuration for additional hostnames to be covered with this ingress record. - ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls - ## extraTls: - ## - hosts: - ## - nats.local - ## secretName: nats.local-tls - ## - - ## If you're providing your own certificates, please use this to add the certificates as secrets - ## key and certificate should start with -----BEGIN CERTIFICATE----- or - ## -----BEGIN RSA PRIVATE KEY----- - ## - ## name should line up with a tlsSecret set further up - ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set - ## - ## It is also possible to create and manage the certificates outside of this helm chart - ## Please see README.md for more information - ## - secrets: [] - ## - name: nats.local-tls - ## key: - ## certificate: - ## - -## Network Policy configuration -## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/ -## -networkPolicy: - ## Enable creation of NetworkPolicy resources - ## - enabled: true - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to the ports Keycloak is listening - ## on. When true, Keycloak will accept connections from any source - ## (with the correct destination port). - ## - allowExternal: false - ## Additional NetworkPolicy Ingress "from" rules to set. Note that all rules are OR-ed. - ## Example: - ## additionalRules: - ## - matchLabels: - ## - role: frontend - ## - matchExpressions: - ## - key: role - ## operator: In - ## values: - ## - frontend - ## - additionalRules: {} - -## NATS Pod Disruption Budget configuration -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ -## -pdb: - create: true - ## Min number of pods that must still be available after the eviction - ## - minAvailable: 1 - ## Max number of pods that can be unavailable after the eviction - ## - # maxUnavailable: 1 - -## Metrics / Prometheus NATS Exporter -## -## ref: https://github.com/nats-io/prometheus-nats-exporter -## -metrics: - enabled: true - image: - registry: docker.io - repository: bitnami/nats-exporter - tag: 0.6.2-debian-10-r226 - pullPolicy: IfNotPresent - ## Optionally specify an array of imagePullSecrets. - ## Secrets must be manually created in the namespace. - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - ## - # pullSecrets: - # - myRegistryKeySecretName - ## Metrics exporter resource requests and limits - ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ - ## - resources: {} - ## Metrics exporter port - ## - containerPort: 7777 - ## Metrics exporter flags - ## - flags: - - -connz - - -routez - - -subz - - -varz - ## Metrics service configuration - ## - service: - type: ClusterIP - port: 7777 - ## Use serviceLoadBalancerIP to request a specific static IP, - ## otherwise leave blank - # loadBalancerIP: - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "{{ .Values.metrics.service.port }}" - labels: {} - ## Prometheus Operator ServiceMonitor configuration - ## - serviceMonitor: - enabled: false - ## Specify a namespace if needed - # namespace: monitoring - # fallback to the prometheus default unless specified - # interval: 10s - ## Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#tldr) - ## [Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-operator-1) - ## [Kube Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#exporters) - ## - selector: - prometheus: kube-prometheus