2020-02-24 19:25:57 +00:00
## nginx configuration
## Ref: https://github.com/kubernetes/ingress/blob/master/controllers/nginx/configuration.md
##
controller :
image :
2020-07-09 23:25:33 +00:00
repository : us.gcr.io/k8s-artifacts-prod/ingress-nginx/controller
2020-07-15 19:56:40 +00:00
tag : "v0.34.1"
digest : sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
2020-02-24 19:25:57 +00:00
pullPolicy : IfNotPresent
# www-data -> uid 101
runAsUser : 101
allowPrivilegeEscalation : true
# Configures the ports 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 : {}
2020-02-26 15:53:20 +00:00
## Annotations to be added to the controller config configuration configmap
##
configAnnotations : {}
2020-02-24 19:25:57 +00:00
# Will add custom headers before sending traffic to backends according to https://github.com/kubernetes/ingress-nginx/tree/master/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 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
2020-04-06 23:01:52 +00:00
# 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
2020-02-24 19:25:57 +00:00
2020-04-06 23:01:52 +00:00
## Use host ports 80 and 443
## Disabled by default
##
hostPort :
enabled : false
ports :
http : 80
https : 443
2020-02-24 19:25:57 +00:00
## Election ID to use for status update
##
electionID : ingress-controller-leader
## Name of the ingress class to route through this controller
##
ingressClass : nginx
# labels to add to the pod container metadata
podLabels : {}
# key: value
## Security Context policies for controller pods
##
podSecurityContext : {}
2020-06-12 07:45:55 +00:00
## See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
## notes on enabling and using sysctls
###
sysctls : {}
# sysctls:
# "net.core.somaxconn": "8192"
2020-03-30 18:22:09 +00:00
## 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.
2020-02-24 19:25:57 +00:00
publishService :
2020-03-30 18:22:09 +00:00
enabled : true
2020-02-24 19:25:57 +00:00
## Allows overriding of the publish service to bind to
## Must be <namespace>/<service_name>
##
pathOverride : ""
## Limit the scope of the controller
##
scope :
enabled : false
namespace : "" # defaults to .Release.Namespace
## Allows customization of the configmap / nginx-configmap namespace
##
configMapNamespace : "" # defaults to .Release.Namespace
2020-02-26 15:53:20 +00:00
## Allows customization of the tcp-services-configmap
2020-02-24 19:25:57 +00:00
##
tcp :
configMapNamespace : "" # defaults to .Release.Namespace
2020-02-26 15:53:20 +00:00
## Annotations to be added to the tcp config configmap
annotations : {}
2020-02-24 19:25:57 +00:00
2020-02-26 15:53:20 +00:00
## Allows customization of the udp-services-configmap
2020-02-24 19:25:57 +00:00
##
udp :
configMapNamespace : "" # defaults to .Release.Namespace
2020-02-26 15:53:20 +00:00
## Annotations to be added to the udp config configmap
annotations : {}
2020-02-24 19:25:57 +00:00
## Additional command line arguments to pass to nginx-ingress-controller
## E.g. to specify the default SSL certificate you can use
## extraArgs:
## default-ssl-certificate: "<namespace>/<secret_name>"
extraArgs : {}
## Additional environment variables to set
extraEnvs : [ ]
# extraEnvs:
# - name: FOO
# valueFrom:
# secretKeyRef:
# key: FOO
# name: secret-resource
## DaemonSet or Deployment
##
kind : Deployment
2020-04-06 23:01:52 +00:00
## Annotations to be added to the controller Deployment or DaemonSet
2020-03-02 14:49:26 +00:00
##
2020-04-06 23:01:52 +00:00
annotations : {}
2020-03-02 14:49:26 +00:00
2020-02-24 19:25:57 +00:00
# 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
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity : {}
# # An example of preferred pod anti-affinity, weight is in the range 1-100
# podAntiAffinity:
# preferredDuringSchedulingIgnoredDuringExecution:
# - weight: 100
# podAffinityTerm:
# labelSelector:
# matchExpressions:
# - key: app
# operator: In
# values:
2020-02-28 14:53:24 +00:00
# - ingress-nginx
2020-02-24 19:25:57 +00:00
# topologyKey: kubernetes.io/hostname
# # An example of required pod anti-affinity
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - labelSelector:
# matchExpressions:
# - key: app
# operator: In
# values:
2020-02-28 14:53:24 +00:00
# - ingress-nginx
2020-02-24 19:25:57 +00:00
# topologyKey: "kubernetes.io/hostname"
## terminationGracePeriodSeconds
2020-04-06 16:34:19 +00:00
## wait up to five minutes for the drain of connections
2020-02-24 19:25:57 +00:00
##
2020-04-06 16:34:19 +00:00
terminationGracePeriodSeconds : 300
2020-02-24 19:25:57 +00:00
## Node labels for controller pod assignment
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector : {}
## Liveness and readiness probe values
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe :
2020-06-06 10:09:43 +00:00
failureThreshold : 5
2020-02-24 19:25:57 +00:00
initialDelaySeconds : 10
periodSeconds : 10
successThreshold : 1
timeoutSeconds : 1
port : 10254
readinessProbe :
failureThreshold : 3
initialDelaySeconds : 10
periodSeconds : 10
successThreshold : 1
timeoutSeconds : 1
port : 10254
2020-03-15 14:54:58 +00:00
# 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"
2020-02-24 19:25:57 +00:00
## Annotations to be added to controller pods
##
podAnnotations : {}
replicaCount : 1
minAvailable : 1
2020-04-01 21:33:38 +00:00
# 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 :
2020-02-24 19:25:57 +00:00
# limits:
# cpu: 100m
2020-04-01 21:33:38 +00:00
# memory: 90Mi
requests :
cpu : 100m
memory : 90Mi
2020-02-24 19:25:57 +00:00
autoscaling :
enabled : false
minReplicas : 1
maxReplicas : 11
targetCPUUtilizationPercentage : 50
targetMemoryUtilizationPercentage : 50
2020-06-11 22:34:31 +00:00
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
2020-04-06 16:34:19 +00:00
## Enable mimalloc as a drop-in replacement for malloc.
## ref: https://github.com/microsoft/mimalloc
##
enableMimalloc : false
2020-02-24 19:25:57 +00:00
## Override NGINX template
customTemplate :
configMapName : ""
configMapKey : ""
service :
enabled : 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 : [ ]
2020-03-02 14:49:26 +00:00
# loadBalancerIP: ""
2020-02-24 19:25:57 +00:00
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
2020-03-02 14:49:26 +00:00
# externalTrafficPolicy: ""
2020-02-24 19:25:57 +00:00
# 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
2020-03-02 14:49:26 +00:00
# sessionAffinity: ""
2020-02-24 19:25:57 +00:00
2020-03-02 14:49:26 +00:00
# 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
2020-02-24 19:25:57 +00:00
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 : {}
2020-06-15 11:08:06 +00:00
## Enables an additional internal load balancer (besides the external one).
## Annotations are mandatory for the load balancer to come up. Varies with the cloud service.
internal :
enabled : false
annotations : {}
2020-02-24 19:25:57 +00:00
extraContainers : [ ]
## Additional containers to be added to the controller pod.
## See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example.
# - 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
extraVolumeMounts : [ ]
## Additional volumeMounts to the controller main container.
# - name: copy-portal-skins
# mountPath: /var/lib/lemonldap-ng/portal/skins
extraVolumes : [ ]
## Additional volumes to the controller pod.
# - name: copy-portal-skins
# emptyDir: {}
extraInitContainers : [ ]
## Containers, which are run before the app containers are started.
# - name: init-myservice
# image: busybox
# command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
admissionWebhooks :
enabled : true
failurePolicy : Fail
port : 8443
service :
annotations : {}
# clusterIP: ""
externalIPs : [ ]
2020-03-02 14:49:26 +00:00
# loadBalancerIP: ""
2020-02-24 19:25:57 +00:00
loadBalancerSourceRanges : [ ]
servicePort : 443
type : ClusterIP
patch :
enabled : true
image :
2020-06-25 21:25:20 +00:00
repository : docker.io/jettech/kube-webhook-certgen
2020-07-03 14:33:53 +00:00
tag : v1.2.2
2020-02-24 19:25:57 +00:00
pullPolicy : IfNotPresent
## Provide a priority class name to the webhook patching job
##
priorityClassName : ""
podAnnotations : {}
nodeSelector : {}
2020-05-19 05:58:57 +00:00
tolerations : [ ]
2020-05-04 17:50:00 +00:00
runAsUser : 2000
2020-02-24 19:25:57 +00:00
metrics :
port : 10254
# if this port is changed, change healthz-port: in extraArgs: accordingly
enabled : false
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 : [ ]
2020-03-02 14:49:26 +00:00
# loadBalancerIP: ""
2020-02-24 19:25:57 +00:00
loadBalancerSourceRanges : [ ]
servicePort : 9913
type : ClusterIP
serviceMonitor :
enabled : false
additionalLabels : {}
namespace : ""
namespaceSelector : {}
# Default: scrape .Release.Namespace only
# To scrape all, use the following:
# namespaceSelector:
# any: true
scrapeInterval : 30s
# honorLabels: true
prometheusRule :
enabled : false
additionalLabels : {}
2020-03-02 14:49:26 +00:00
# namespace: ""
2020-02-24 19:25:57 +00:00
rules : [ ]
# # These are just examples rules, please adapt them to your needs
# - alert: TooMany500s
# expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"5.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
# for: 1m
# labels:
# severity: critical
# annotations:
# description: Too many 5XXs
# summary: More than 5% of the all requests did return 5XX, this require your attention
# - alert: TooMany400s
# expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
# for: 1m
# labels:
# severity: critical
# annotations:
# description: Too many 4XXs
# summary: More than 5% of the all requests did return 4XX, this require your attention
2020-04-06 16:34:19 +00:00
## 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 efectively take advantage of this feature, the Configmap feature
## worker-shutdown-timeout new value is 240s instead of 10s.
##
lifecycle :
preStop :
exec :
command :
- /wait-shutdown
2020-02-24 19:25:57 +00:00
priorityClassName : ""
## Rollback limit
##
revisionHistoryLimit : 10
2020-04-30 21:54:58 +00:00
# Maxmind license key to download GeoLite2 Databases
# https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases
maxmindLicenseKey : ""
2020-02-24 19:25:57 +00:00
## Default 404 backend
##
defaultBackend :
##
enabled : false
image :
repository : k8s.gcr.io/defaultbackend-amd64
tag : "1.5"
pullPolicy : IfNotPresent
# nobody user -> uid 65534
runAsUser : 65534
extraArgs : {}
serviceAccount :
create : true
name :
## 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 : {}
# 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 : {}
## Annotations to be added to default backend pods
##
podAnnotations : {}
replicaCount : 1
minAvailable : 1
resources : {}
# limits:
# cpu: 10m
# memory: 20Mi
# requests:
# cpu: 10m
# memory: 20Mi
service :
annotations : {}
2020-03-02 14:49:26 +00:00
2020-02-24 19:25:57 +00:00
# clusterIP: ""
## List of IP addresses at which the default backend service is available
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs : [ ]
2020-03-02 14:49:26 +00:00
# loadBalancerIP: ""
2020-02-24 19:25:57 +00:00
loadBalancerSourceRanges : [ ]
servicePort : 80
type : ClusterIP
priorityClassName : ""
## Enable RBAC as per https://github.com/kubernetes/ingress/tree/master/examples/rbac/nginx and https://github.com/kubernetes/ingress/issues/266
rbac :
create : true
2020-02-26 19:55:02 +00:00
scope : false
2020-02-24 19:25:57 +00:00
# If true, create & use Pod Security Policy resources
# https://kubernetes.io/docs/concepts/policy/pod-security-policy/
podSecurityPolicy :
enabled : false
serviceAccount :
create : true
name :
## 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/contrib/tree/master/ingress/controllers/nginx/examples/tcp
##
tcp : {}
# 8080: "default/example-tcp-svc:9000"
# UDP service key:value pairs
# Ref: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/udp
##
udp : {}
# 53: "kube-system/kube-dns:53"