123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959 |
- ## nginx configuration
- ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md
- ##
- ## Overrides for generated resource names
- # See templates/_helpers.tpl
- # nameOverride:
- # fullnameOverride:
- ## Labels to apply to all resources
- ##
- commonLabels: {}
- # scmhash: abc123
- # myLabel: aakkmd
- controller:
- name: controller
- image:
- ## Keep false as default for now!
- chroot: false
- registry: registry.k8s.io
- image: ingress-nginx/controller
- ## for backwards compatibility consider setting the full image url via the repository value below
- ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
- ## repository:
- tag: "v1.5.1"
- #digest: sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
- #digestChroot: sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345
- pullPolicy: IfNotPresent
- # www-data -> uid 101
- runAsUser: 101
- allowPrivilegeEscalation: true
- # -- Use an existing PSP instead of creating one
- existingPsp: ""
- # -- Configures the controller container name
- containerName: controller
- # -- Configures the ports that the nginx-controller listens on
- containerPort:
- http: 80
- https: 443
- # -- Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
- config:
- proxy-body-size: 8196m
- # -- Annotations to be added to the controller config configuration configmap.
- configAnnotations: {}
- # -- Will add custom headers before sending traffic to backends according to https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/custom-headers
- proxySetHeaders: {}
- # -- Will add custom headers before sending response traffic to the client according to: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#add-headers
- addHeaders: {}
- # -- Optionally customize the pod dnsConfig.
- dnsConfig: {}
- # -- Optionally customize the pod hostname.
- hostname: {}
- # -- Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'.
- # By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller
- # to keep resolving names inside the k8s network, use ClusterFirstWithHostNet.
- dnsPolicy: ClusterFirst
- # -- Bare-metal considerations via the host network https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network
- # Ingress status was blank because there is no Service exposing the NGINX Ingress controller in a configuration using the host network, the default --publish-service flag used in standard cloud setups does not apply
- reportNodeInternalIp: false
- # -- Process Ingress objects without ingressClass annotation/ingressClassName field
- # Overrides value for --watch-ingress-without-class flag of the controller binary
- # Defaults to false
- watchIngressWithoutClass: false
- # -- Process IngressClass per name (additionally as per spec.controller).
- ingressClassByName: false
- # -- This configuration defines if Ingress Controller should allow users to set
- # their own *-snippet annotations, otherwise this is forbidden / dropped
- # when users add those annotations.
- # Global snippets in ConfigMap are still respected
- allowSnippetAnnotations: true
- # -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm),
- # since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920
- # is merged
- hostNetwork: false
- ## Use host ports 80 and 443
- ## Disabled by default
- hostPort:
- # -- Enable 'hostPort' or not
- enabled: true
- ports:
- # -- 'hostPort' http port
- http: 80
- # -- 'hostPort' https port
- https: 443
- # -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
- electionID: ""
- ## This section refers to the creation of the IngressClass resource
- ## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19
- ingressClassResource:
- # -- Name of the ingressClass
- name: nginx
- # -- Is this ingressClass enabled or not
- enabled: true
- # -- Is this the default ingressClass for the cluster
- default: true
- # -- Controller-value of the controller that is processing this ingressClass
- controllerValue: "k8s.io/ingress-nginx"
- # -- Parameters is a link to a custom resource containing additional
- # configuration for the controller. This is optional if the controller
- # does not require extra parameters.
- parameters: {}
- # -- For backwards compatibility with ingress.class annotation, use ingressClass.
- # Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
- ingressClass: nginx
- # -- Labels to add to the pod container metadata
- podLabels: {}
- # key: value
- # -- Security Context policies for controller pods
- podSecurityContext: {}
- # -- See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls
- sysctls: {}
- # sysctls:
- # "net.core.somaxconn": "8192"
- # -- Allows customization of the source of the IP address or FQDN to report
- # in the ingress status field. By default, it reads the information provided
- # by the service. If disable, the status field reports the IP address of the
- # node or nodes where an ingress controller pod is running.
- publishService:
- # -- Enable 'publishService' or not
- enabled: true
- # -- Allows overriding of the publish service to bind to
- # Must be <namespace>/<service_name>
- pathOverride: ""
- # Limit the scope of the controller to a specific namespace
- scope:
- # -- Enable 'scope' or not
- enabled: false
- # -- Namespace to limit the controller to; defaults to $(POD_NAMESPACE)
- namespace: ""
- # -- When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels
- # only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces.
- namespaceSelector: ""
- # -- Allows customization of the configmap / nginx-configmap namespace; defaults to $(POD_NAMESPACE)
- configMapNamespace: ""
- tcp:
- # -- Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE)
- configMapNamespace: ""
- # -- Annotations to be added to the tcp config configmap
- annotations: {}
- udp:
- # -- Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE)
- configMapNamespace: ""
- # -- Annotations to be added to the udp config configmap
- annotations: {}
- # -- Maxmind license key to download GeoLite2 Databases.
- ## https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases
- maxmindLicenseKey: ""
- # -- Additional command line arguments to pass to nginx-ingress-controller
- # E.g. to specify the default SSL certificate you can use
- extraArgs: {}
- ## extraArgs:
- ## default-ssl-certificate: "<namespace>/<secret_name>"
- # -- Additional environment variables to set
- extraEnvs: []
- # extraEnvs:
- # - name: FOO
- # valueFrom:
- # secretKeyRef:
- # key: FOO
- # name: secret-resource
- # -- Use a `DaemonSet` or `Deployment`
- kind: Deployment
- # -- Annotations to be added to the controller Deployment or DaemonSet
- ##
- annotations: {}
- # keel.sh/pollSchedule: "@every 60m"
- # -- Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels
- ##
- labels: {}
- # keel.sh/policy: patch
- # keel.sh/trigger: poll
- # -- The update strategy to apply to the Deployment or DaemonSet
- ##
- updateStrategy: {}
- # rollingUpdate:
- # maxUnavailable: 1
- # type: RollingUpdate
- # -- `minReadySeconds` to avoid killing pods before we are ready
- ##
- minReadySeconds: 0
- # -- Node tolerations for server scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
- # -- Affinity and anti-affinity rules for server scheduling to nodes
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
- ##
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - k8smaster
- - node02
- - node01
- # # An example of preferred pod anti-affinity, weight is in the range 1-100
- # podAntiAffinity:
- # preferredDuringSchedulingIgnoredDuringExecution:
- # - weight: 100
- # podAffinityTerm:
- # labelSelector:
- # matchExpressions:
- # - key: app.kubernetes.io/name
- # operator: In
- # values:
- # - ingress-nginx
- # - key: app.kubernetes.io/instance
- # operator: In
- # values:
- # - ingress-nginx
- # - key: app.kubernetes.io/component
- # operator: In
- # values:
- # - controller
- # topologyKey: kubernetes.io/hostname
- # # An example of required pod anti-affinity
- # podAntiAffinity:
- # requiredDuringSchedulingIgnoredDuringExecution:
- # - labelSelector:
- # matchExpressions:
- # - key: app.kubernetes.io/name
- # operator: In
- # values:
- # - ingress-nginx
- # - key: app.kubernetes.io/instance
- # operator: In
- # values:
- # - ingress-nginx
- # - key: app.kubernetes.io/component
- # operator: In
- # values:
- # - controller
- # topologyKey: "kubernetes.io/hostname"
- # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
- ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
- ##
- topologySpreadConstraints: []
- # - maxSkew: 1
- # topologyKey: topology.kubernetes.io/zone
- # whenUnsatisfiable: DoNotSchedule
- # labelSelector:
- # matchLabels:
- # app.kubernetes.io/instance: ingress-nginx-internal
- # -- `terminationGracePeriodSeconds` to avoid killing pods before we are ready
- ## wait up to five minutes for the drain of connections
- ##
- terminationGracePeriodSeconds: 300
- # -- Node labels for controller pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector:
- kubernetes.io/os: linux
- ## Liveness and readiness probe values
- ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
- ##
- ## startupProbe:
- ## httpGet:
- ## # should match container.healthCheckPath
- ## path: "/healthz"
- ## port: 10254
- ## scheme: HTTP
- ## initialDelaySeconds: 5
- ## periodSeconds: 5
- ## timeoutSeconds: 2
- ## successThreshold: 1
- ## failureThreshold: 5
- livenessProbe:
- httpGet:
- # should match container.healthCheckPath
- path: "/healthz"
- port: 10254
- scheme: HTTP
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 5
- readinessProbe:
- httpGet:
- # should match container.healthCheckPath
- path: "/healthz"
- port: 10254
- scheme: HTTP
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 3
- # -- Path of the health check endpoint. All requests received on the port defined by
- # the healthz-port parameter are forwarded internally to this path.
- healthCheckPath: "/healthz"
- # -- Address to bind the health check endpoint.
- # It is better to set this option to the internal node address
- # if the ingress nginx controller is running in the `hostNetwork: true` mode.
- healthCheckHost: ""
- # -- Annotations to be added to controller pods
- ##
- podAnnotations: {}
- replicaCount: 3
- minAvailable: 1
- ## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
- ## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
- ## Ideally, there should be no limits.
- ## https://engineering.indeedblog.com/blog/2019/12/cpu-throttling-regression-fix/
- resources:
- ## limits:
- ## cpu: 100m
- ## memory: 90Mi
- requests:
- cpu: 500m
- memory: 200Mi
- # Mutually exclusive with keda autoscaling
- autoscaling:
- enabled: false
- minReplicas: 1
- maxReplicas: 11
- targetCPUUtilizationPercentage: 50
- targetMemoryUtilizationPercentage: 50
- behavior: {}
- # scaleDown:
- # stabilizationWindowSeconds: 300
- # policies:
- # - type: Pods
- # value: 1
- # periodSeconds: 180
- # scaleUp:
- # stabilizationWindowSeconds: 300
- # policies:
- # - type: Pods
- # value: 2
- # periodSeconds: 60
- autoscalingTemplate: []
- # Custom or additional autoscaling metrics
- # ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics
- # - type: Pods
- # pods:
- # metric:
- # name: nginx_ingress_controller_nginx_process_requests_total
- # target:
- # type: AverageValue
- # averageValue: 10000m
- # Mutually exclusive with hpa autoscaling
- keda:
- apiVersion: "keda.sh/v1alpha1"
- ## apiVersion changes with keda 1.x vs 2.x
- ## 2.x = keda.sh/v1alpha1
- ## 1.x = keda.k8s.io/v1alpha1
- enabled: false
- minReplicas: 1
- maxReplicas: 11
- pollingInterval: 30
- cooldownPeriod: 300
- restoreToOriginalReplicaCount: false
- scaledObject:
- annotations: {}
- # Custom annotations for ScaledObject resource
- # annotations:
- # key: value
- triggers: []
- # - type: prometheus
- # metadata:
- # serverAddress: http://<prometheus-host>:9090
- # metricName: http_requests_total
- # threshold: '100'
- # query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
- behavior: {}
- # scaleDown:
- # stabilizationWindowSeconds: 300
- # policies:
- # - type: Pods
- # value: 1
- # periodSeconds: 180
- # scaleUp:
- # stabilizationWindowSeconds: 300
- # policies:
- # - type: Pods
- # value: 2
- # periodSeconds: 60
- # -- Enable mimalloc as a drop-in replacement for malloc.
- ## ref: https://github.com/microsoft/mimalloc
- ##
- enableMimalloc: true
- ## Override NGINX template
- customTemplate:
- configMapName: ""
- configMapKey: ""
- service:
- enabled: true
- # -- If enabled is adding an appProtocol option for Kubernetes service. An appProtocol field replacing annotations that were
- # using for setting a backend protocol. Here is an example for AWS: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
- # It allows choosing the protocol for each backend specified in the Kubernetes service.
- # See the following GitHub issue for more details about the purpose: https://github.com/kubernetes/kubernetes/issues/40244
- # Will be ignored for Kubernetes versions older than 1.20
- ##
- appProtocol: true
- annotations: {}
- labels: {}
- # clusterIP: ""
- # -- List of IP addresses at which the controller services are available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
- # -- Used by cloud providers to connect the resulting `LoadBalancer` to a pre-existing static IP according to https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
- loadBalancerIP: ""
- loadBalancerSourceRanges: []
- enableHttp: true
- enableHttps: true
- ## Set external traffic policy to: "Local" to preserve source IP on providers supporting it.
- ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
- # externalTrafficPolicy: ""
- ## Must be either "None" or "ClientIP" if set. Kubernetes will default to "None".
- ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
- # sessionAffinity: ""
- ## Specifies the health check node port (numeric port number) for the service. If healthCheckNodePort isn’t specified,
- ## the service controller allocates a port from your cluster’s NodePort range.
- ## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- # healthCheckNodePort: 0
- # -- Represents the dual-stack-ness requested or required by this Service. Possible values are
- # SingleStack, PreferDualStack or RequireDualStack.
- # The ipFamilies and clusterIPs fields depend on the value of this field.
- ## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
- ipFamilyPolicy: "SingleStack"
- # -- List of IP families (e.g. IPv4, IPv6) assigned to the service. This field is usually assigned automatically
- # based on cluster configuration and the ipFamilyPolicy field.
- ## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
- ipFamilies:
- - IPv4
- ports:
- http: 80
- https: 443
- targetPorts:
- http: http
- https: https
- type: LoadBalancer
- ## type: NodePort
- ## nodePorts:
- ## http: 32080
- ## https: 32443
- ## tcp:
- ## 8080: 32808
- nodePorts:
- http: ""
- https: ""
- tcp: {}
- udp: {}
- external:
- enabled: true
- internal:
- # -- Enables an additional internal load balancer (besides the external one).
- enabled: false
- # -- Annotations are mandatory for the load balancer to come up. Varies with the cloud service.
- annotations: {}
- # loadBalancerIP: ""
- # -- Restrict access For LoadBalancer service. Defaults to 0.0.0.0/0.
- loadBalancerSourceRanges: []
- ## Set external traffic policy to: "Local" to preserve source IP on
- ## providers supporting it
- ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
- # externalTrafficPolicy: ""
- # shareProcessNamespace enables process namespace sharing within the pod.
- # This can be used for example to signal log rotation using `kill -USR1` from a sidecar.
- shareProcessNamespace: false
- # -- Additional containers to be added to the controller pod.
- # See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example.
- extraContainers: []
- # - name: my-sidecar
- # image: nginx:latest
- # - name: lemonldap-ng-controller
- # image: lemonldapng/lemonldap-ng-controller:0.2.0
- # args:
- # - /lemonldap-ng-controller
- # - --alsologtostderr
- # - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
- # env:
- # - name: POD_NAME
- # valueFrom:
- # fieldRef:
- # fieldPath: metadata.name
- # - name: POD_NAMESPACE
- # valueFrom:
- # fieldRef:
- # fieldPath: metadata.namespace
- # volumeMounts:
- # - name: copy-portal-skins
- # mountPath: /srv/var/lib/lemonldap-ng/portal/skins
- # -- Additional volumeMounts to the controller main container.
- extraVolumeMounts: []
- # - name: copy-portal-skins
- # mountPath: /var/lib/lemonldap-ng/portal/skins
- # -- Additional volumes to the controller pod.
- extraVolumes: []
- # - name: copy-portal-skins
- # emptyDir: {}
- # -- Containers, which are run before the app containers are started.
- extraInitContainers: []
- # - name: init-myservice
- # image: busybox
- # command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
- extraModules: []
- ## Modules, which are mounted into the core nginx image
- # - name: opentelemetry
- # image: registry.k8s.io/ingress-nginx/opentelemetry:v20220906-g981ce38a7@sha256:aa079daa7efd93aa830e26483a49a6343354518360929494bad1d0ad3303142e
- #
- # The image must contain a `/usr/local/bin/init_module.sh` executable, which
- # will be executed as initContainers, to move its config files within the
- # mounted volume.
- admissionWebhooks:
- annotations: {}
- # ignore-check.kube-linter.io/no-read-only-rootfs: "This deployment needs write access to root filesystem".
- ## Additional annotations to the admission webhooks.
- ## These annotations will be added to the ValidatingWebhookConfiguration and
- ## the Jobs Spec of the admission webhooks.
- enabled: false
- # -- Additional environment variables to set
- extraEnvs: []
- # extraEnvs:
- # - name: FOO
- # valueFrom:
- # secretKeyRef:
- # key: FOO
- # name: secret-resource
- # -- Admission Webhook failure policy to use
- failurePolicy: Fail
- # timeoutSeconds: 10
- port: 8443
- certificate: "/usr/local/certificates/cert"
- key: "/usr/local/certificates/key"
- namespaceSelector: {}
- objectSelector: {}
- # -- Labels to be added to admission webhooks
- labels: {}
- # -- Use an existing PSP instead of creating one
- existingPsp: ""
- networkPolicyEnabled: false
- service:
- annotations: {}
- # clusterIP: ""
- externalIPs: []
- # loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 443
- type: ClusterIP
- createSecretJob:
- securityContext:
- allowPrivilegeEscalation: false
- resources: {}
- # limits:
- # cpu: 10m
- # memory: 20Mi
- # requests:
- # cpu: 10m
- # memory: 20Mi
- patchWebhookJob:
- securityContext:
- allowPrivilegeEscalation: false
- resources: {}
- patch:
- enabled: true
- image:
- registry: registry.k8s.io
- image: ingress-nginx/kube-webhook-certgen
- ## for backwards compatibility consider setting the full image url via the repository value below
- ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
- ## repository:
- tag: v20220916-gd32f8c343
- digest: sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
- pullPolicy: IfNotPresent
- # -- Provide a priority class name to the webhook patching job
- ##
- priorityClassName: ""
- podAnnotations: {}
- nodeSelector:
- kubernetes.io/os: linux
- tolerations: []
- # -- Labels to be added to patch job resources
- labels: {}
- securityContext:
- runAsNonRoot: true
- runAsUser: 2000
- fsGroup: 2000
- metrics:
- port: 10254
- portName: metrics
- # if this port is changed, change healthz-port: in extraArgs: accordingly
- enabled: true
- service:
- annotations: {}
- # prometheus.io/scrape: "true"
- # prometheus.io/port: "10254"
- # clusterIP: ""
- # -- List of IP addresses at which the stats-exporter service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
- # loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 10254
- type: ClusterIP
- # externalTrafficPolicy: ""
- # nodePort: ""
- serviceMonitor:
- enabled: false
- additionalLabels: {}
- ## The label to use to retrieve the job name from.
- ## jobLabel: "app.kubernetes.io/name"
- namespace: ""
- namespaceSelector: {}
- ## Default: scrape .Release.Namespace only
- ## To scrape all, use the following:
- ## namespaceSelector:
- ## any: true
- scrapeInterval: 30s
- # honorLabels: true
- targetLabels: []
- relabelings: []
- metricRelabelings: []
- prometheusRule:
- enabled: false
- additionalLabels: {}
- # namespace: ""
- rules: []
- # # These are just examples rules, please adapt them to your needs
- # - alert: NGINXConfigFailed
- # expr: count(nginx_ingress_controller_config_last_reload_successful == 0) > 0
- # for: 1s
- # labels:
- # severity: critical
- # annotations:
- # description: bad ingress config - nginx config test failed
- # summary: uninstall the latest ingress changes to allow config reloads to resume
- # - alert: NGINXCertificateExpiry
- # expr: (avg(nginx_ingress_controller_ssl_expire_time_seconds) by (host) - time()) < 604800
- # for: 1s
- # labels:
- # severity: critical
- # annotations:
- # description: ssl certificate(s) will expire in less then a week
- # summary: renew expiring certificates to avoid downtime
- # - alert: NGINXTooMany500s
- # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"5.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
- # for: 1m
- # labels:
- # severity: warning
- # annotations:
- # description: Too many 5XXs
- # summary: More than 5% of all requests returned 5XX, this requires your attention
- # - alert: NGINXTooMany400s
- # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
- # for: 1m
- # labels:
- # severity: warning
- # annotations:
- # description: Too many 4XXs
- # summary: More than 5% of all requests returned 4XX, this requires your attention
- # -- Improve connection draining when ingress controller pod is deleted using a lifecycle hook:
- # With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds
- # to 300, allowing the draining of connections up to five minutes.
- # If the active connections end before that, the pod will terminate gracefully at that time.
- # To effectively take advantage of this feature, the Configmap feature
- # worker-shutdown-timeout new value is 240s instead of 10s.
- ##
- lifecycle:
- preStop:
- exec:
- command:
- - /wait-shutdown
- priorityClassName: ""
- # -- Rollback limit
- ##
- revisionHistoryLimit: 10
- ## Default 404 backend
- ##
- defaultBackend:
- ##
- enabled: false
- name: defaultbackend
- image:
- registry: registry.k8s.io
- image: defaultbackend-amd64
- ## for backwards compatibility consider setting the full image url via the repository value below
- ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
- ## repository:
- tag: "1.5"
- pullPolicy: IfNotPresent
- # nobody user -> uid 65534
- runAsUser: 65534
- runAsNonRoot: true
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- # -- Use an existing PSP instead of creating one
- existingPsp: ""
- extraArgs: {}
- serviceAccount:
- create: true
- name: ""
- automountServiceAccountToken: true
- # -- Additional environment variables to set for defaultBackend pods
- extraEnvs: []
- port: 8080
- ## Readiness and liveness probes for default backend
- ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
- ##
- livenessProbe:
- failureThreshold: 3
- initialDelaySeconds: 30
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- readinessProbe:
- failureThreshold: 6
- initialDelaySeconds: 0
- periodSeconds: 5
- successThreshold: 1
- timeoutSeconds: 5
- # -- Node tolerations for server scheduling to nodes with taints
- ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- ##
- tolerations: []
- # - key: "key"
- # operator: "Equal|Exists"
- # value: "value"
- # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
- affinity: {}
- # -- Security Context policies for controller pods
- # See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
- # notes on enabling and using sysctls
- ##
- podSecurityContext: {}
- # -- Security Context policies for controller main container.
- # See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
- # notes on enabling and using sysctls
- ##
- containerSecurityContext: {}
- # -- Labels to add to the pod container metadata
- podLabels: {}
- # key: value
- # -- Node labels for default backend pod assignment
- ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector:
- kubernetes.io/os: linux
- # -- Annotations to be added to default backend pods
- ##
- podAnnotations: {}
- replicaCount: 1
- minAvailable: 1
- resources: {}
- # limits:
- # cpu: 10m
- # memory: 20Mi
- # requests:
- # cpu: 10m
- # memory: 20Mi
- extraVolumeMounts: []
- ## Additional volumeMounts to the default backend container.
- # - name: copy-portal-skins
- # mountPath: /var/lib/lemonldap-ng/portal/skins
- extraVolumes: []
- ## Additional volumes to the default backend pod.
- # - name: copy-portal-skins
- # emptyDir: {}
- autoscaling:
- annotations: {}
- enabled: false
- minReplicas: 1
- maxReplicas: 2
- targetCPUUtilizationPercentage: 50
- targetMemoryUtilizationPercentage: 50
- service:
- annotations: {}
- # clusterIP: ""
- # -- List of IP addresses at which the default backend service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- ##
- externalIPs: []
- # loadBalancerIP: ""
- loadBalancerSourceRanges: []
- servicePort: 80
- type: ClusterIP
- priorityClassName: ""
- # -- Labels to be added to the default backend resources
- labels: {}
- ## Enable RBAC as per https://github.com/kubernetes/ingress-nginx/blob/main/docs/deploy/rbac.md and https://github.com/kubernetes/ingress-nginx/issues/266
- rbac:
- create: true
- scope: false
- ## If true, create & use Pod Security Policy resources
- ## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
- podSecurityPolicy:
- enabled: false
- serviceAccount:
- create: true
- name: ""
- automountServiceAccountToken: true
- # -- Annotations for the controller service account
- annotations: {}
- # -- Optional array of imagePullSecrets containing private registry credentials
- ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- imagePullSecrets: []
- # - name: secretName
- # -- TCP service key-value pairs
- ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
- ##
- tcp:
- 8162: "cicd/gogs:8162"
- # -- UDP service key-value pairs
- ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
- ##
- udp: {}
- # -- Prefix for TCP and UDP ports names in ingress controller service
- ## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
- portNamePrefix: ""
- # -- (string) A base64-encoded Diffie-Hellman parameter.
- # This can be generated with: `openssl dhparam 4096 2> /dev/null | base64`
- ## Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param
- dhParam:
|