charts/apisix-ingress-controller/values.yaml (110 lines of code) (raw):

# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # -- Default values for apisix-ingress-controller. # This is a YAML-formatted file. # Declare variables to be passed into your templates. # nameOverride: "" fullnameOverride: "" # -- Override default labels assigned to Apache APISIX ingress controller resource labelsOverride: {} # labelsOverride: # app.kubernetes.io/name: "{{ .Release.Name }}" # app.kubernetes.io/instance: '{{ include "apisix-ingress-controller.name" . }}' # -- Add annotations to Apache APISIX ingress controller resource annotations: {} rbac: # -- Specifies whether RBAC resources should be created create: true serviceAccount: # -- Specifies whether a ServiceAccount should be created create: true # -- The name of the ServiceAccount to use. # If not set and create is true, a name is generated using the fullname template name: "" # -- Whether automounting API credentials for a service account automountServiceAccountToken: true replicaCount: 1 image: repository: apache/apisix-ingress-controller pullPolicy: IfNotPresent tag: "1.8.0" podAnnotations: {} priorityClassName: "" imagePullSecrets: [] clusterDomain: cluster.local service: port: 80 config: etcdserver: # -- Enable etcd server or not, default is false. enabled: false image: # -- Apache APISIX image repository repository: apache/apisix # -- Apache APISIX image pull policy pullPolicy: IfNotPresent # -- Apache APISIX image tag # Overrides the image tag whose default is the chart appVersion. tag: 3.5.0-debian # -- the error log level, default is info, optional values are: debug, info, warn, error, panic, fatal logLevel: "info" # -- the output file path of error log, default is stderr, when # the file path is "stderr" or "stdout", logs are marshalled # plainly, which is more readable for human; otherwise logs # are marshalled in JSON format, which can be parsed by # programs easily. logOutput: "stderr" # -- the TLS certificate file path. certFile: "/etc/webhook/certs/cert.pem" # -- the TLS key file path. keyFile: "/etc/webhook/certs/key.pem" # -- the HTTP Server listen address, default is ":8080" httpListen: ":8080" # -- the HTTPS Server listen address, default is ":8443" httpsListen: ":8443" # -- the controller will use the Endpoint of this Service to # update the status information of the Ingress resource. # The format is "namespace/svc-name" to solve the situation that # the data plane and the controller are not deployed in the same namespace. ingressPublishService: "" ingressStatusAddress: [] # -- enable profiling via web interfaces host:port/debug/pprof, default is true. enableProfiling: true # -- Default interval for synchronizing Kubernetes resources to APISIX apisixResourceSyncInterval: "1h" # -- Pluginmetadata in APISIX can be controlled through ConfigMap. default is "" pluginMetadataCM: "" # -- Kubernetes related configurations. kubernetes: # -- the Kubernetes configuration file path, default is "", so the in-cluster # configuration will be used. kubeconfig: "" # -- how long should apisix-ingress-controller re-synchronizes with Kubernetes, # default is 6h, resyncInterval: "6h" # -- namespace_selector represent basis for selecting managed namespaces. # the field is support since version 1.4.0 # For example, "apisix.ingress=watching", so ingress will watching the namespaces which labels "apisix.ingress=watching" namespaceSelector: [""] # -- the election id for the controller leader campaign, # only the leader will watch and delivery resource changes, # other instances (as candidates) stand by. electionId: "ingress-apisix-leader" # -- The class of an Ingress object is set using the field IngressClassName in # Kubernetes clusters version v1.18.0 or higher or the annotation # "kubernetes.io/ingress.class" (deprecated). ingressClass: "apisix" # -- the supported ingress api group version, can be "networking/v1beta1", # "networking/v1" (for Kubernetes version v1.19.0 or higher), and # "extensions/v1beta1", default is "networking/v1". ingressVersion: "networking/v1" # -- whether to watch EndpointSlices rather than Endpoints. watchEndpointSlices: false # -- the supported apisixroute api group version, can be "apisix.apache.org/v2" # "apisix.apache.org/v2beta3" or "apisix.apache.org/v2beta2" apisixRouteVersion: "apisix.apache.org/v2" # -- whether to enable support for Gateway API. # Note: This feature is currently under development and may not work as expected. # It is not recommended to use it in a production environment. # Before we announce support for it to reach Beta level or GA. enableGatewayAPI: false # -- the resource API version, support "apisix.apache.org/v2beta3" and "apisix.apache.org/v2". # default is "apisix.apache.org/v2" apiVersion: "apisix.apache.org/v2" # -- APISIX related configurations. apisix: # -- Enabling this value, overrides serviceName and serviceNamespace. # serviceFullname: "apisix-admin.apisix.svc.local" serviceName: apisix-admin serviceNamespace: ingress-apisix servicePort: 9180 adminKey: "edd1c9f034335f136f87ad84b625c8f1" clusterName: "default" # -- the APISIX admin API version. can be "v2" or "v3", default is "v2". adminAPIVersion: "v2" # -- The APISIX Helm chart supports storing user credentials in a secret. # The secret needs to contain a single key for admin token with key adminKey by default. existingSecret: "" # -- Name of the admin token key in the secret, overrides the default key name "adminKey" existingSecretAdminKeyKey: "" resources: {} initContainer: image: busybox tag: 1.28 autoscaling: enabled: false # -- HPA version, the value is "v2" or "v2beta1", default "v2" version: v2 minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 # -- Update strategy for apisix ingress controller deployment updateStrategy: {} # type: RollingUpdate nodeSelector: {} tolerations: [] affinity: {} # -- Topology Spread Constraints for pod assignment spread across your cluster among failure-domains # ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods topologySpreadConstraints: [] # namespace: "ingress-apisix" # -- Enable creating ServiceMonitor objects for Prometheus operator. # Requires Prometheus operator v0.38.0 or higher. serviceMonitor: enabled: false namespace: "monitoring" interval: 15s # -- @param serviceMonitor.labels ServiceMonitor extra labels labels: {} # -- @param serviceMonitor.annotations ServiceMonitor annotations annotations: {} # -- @param serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion. # ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs metricRelabelings: {} # -- See https://kubernetes.io/docs/tasks/run-application/configure-pdb/ for more details podDisruptionBudget: # -- Enable or disable podDisruptionBudget enabled: false # -- Set the `minAvailable` of podDisruptionBudget. You can specify only one of `maxUnavailable` and `minAvailable` in a single PodDisruptionBudget. # See [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget) # for more details minAvailable: 90% # -- Set the maxUnavailable of podDisruptionBudget maxUnavailable: 1 podSecurityContext: {} # fsGroup: 2000 securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 gateway: # -- Apache APISIX service type for user access itself type: NodePort externalTrafficPolicy: Cluster # annotations: # service.beta.kubernetes.io/aws-load-balancer-type: nlb # loadBalancerIP: a.b.c.d # loadBalancerSourceRanges: # - "143.231.0.0/16" # -- load balancer ips externalIPs: [] nginx: # -- Nginx workerRlimitNoFile workerRlimitNofile: "20480" # -- Nginx worker connections workerConnections: "10620" # -- Nginx worker processes workerProcesses: auto # -- Nginx error logs path errorLog: stderr # -- Nginx error logs level errorLogLevel: warn resources: {} securityContext: {} # capabilities: # add: # - NET_BIND_SERVICE # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 636 tls: enabled: false servicePort: 443 containerPort: 9443 # -- Support multiple https ports, See [Configuration](https://github.com/apache/apisix/blob/0bc65ea9acd726f79f80ae0abd8f50b7eb172e3d/conf/config-default.yaml#L99) additionalContainerPorts: [] # - ip: 127.0.0.3 # Specific IP, If not set, the default value is `0.0.0.0`. # port: 9445 # enable_http2: true # -- Specifies the name of Secret contains trusted CA certificates in the PEM format used to verify the certificate when APISIX needs to do SSL/TLS handshaking with external services (e.g. etcd) existingCASecret: "" # -- Filename be used in the gateway.tls.existingCASecret certCAFilename: "" http2: enabled: true # -- TLS protocols allowed to use. sslProtocols: "TLSv1.2 TLSv1.3" # -- Define SNI to fallback if none is presented by client fallbackSNI: ""