values.yaml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959
  1. ## nginx configuration
  2. ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md
  3. ##
  4. ## Overrides for generated resource names
  5. # See templates/_helpers.tpl
  6. # nameOverride:
  7. # fullnameOverride:
  8. ## Labels to apply to all resources
  9. ##
  10. commonLabels: {}
  11. # scmhash: abc123
  12. # myLabel: aakkmd
  13. controller:
  14. name: controller
  15. image:
  16. ## Keep false as default for now!
  17. chroot: false
  18. registry: registry.k8s.io
  19. image: ingress-nginx/controller
  20. ## for backwards compatibility consider setting the full image url via the repository value below
  21. ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
  22. ## repository:
  23. tag: "v1.5.1"
  24. #digest: sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
  25. #digestChroot: sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345
  26. pullPolicy: IfNotPresent
  27. # www-data -> uid 101
  28. runAsUser: 101
  29. allowPrivilegeEscalation: true
  30. # -- Use an existing PSP instead of creating one
  31. existingPsp: ""
  32. # -- Configures the controller container name
  33. containerName: controller
  34. # -- Configures the ports that the nginx-controller listens on
  35. containerPort:
  36. http: 80
  37. https: 443
  38. # -- Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
  39. config:
  40. proxy-body-size: 8196m
  41. # -- Annotations to be added to the controller config configuration configmap.
  42. configAnnotations: {}
  43. # -- Will add custom headers before sending traffic to backends according to https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/custom-headers
  44. proxySetHeaders: {}
  45. # -- 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
  46. addHeaders: {}
  47. # -- Optionally customize the pod dnsConfig.
  48. dnsConfig: {}
  49. # -- Optionally customize the pod hostname.
  50. hostname: {}
  51. # -- Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'.
  52. # By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller
  53. # to keep resolving names inside the k8s network, use ClusterFirstWithHostNet.
  54. dnsPolicy: ClusterFirst
  55. # -- Bare-metal considerations via the host network https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network
  56. # 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
  57. reportNodeInternalIp: false
  58. # -- Process Ingress objects without ingressClass annotation/ingressClassName field
  59. # Overrides value for --watch-ingress-without-class flag of the controller binary
  60. # Defaults to false
  61. watchIngressWithoutClass: false
  62. # -- Process IngressClass per name (additionally as per spec.controller).
  63. ingressClassByName: false
  64. # -- This configuration defines if Ingress Controller should allow users to set
  65. # their own *-snippet annotations, otherwise this is forbidden / dropped
  66. # when users add those annotations.
  67. # Global snippets in ConfigMap are still respected
  68. allowSnippetAnnotations: true
  69. # -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm),
  70. # since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920
  71. # is merged
  72. hostNetwork: false
  73. ## Use host ports 80 and 443
  74. ## Disabled by default
  75. hostPort:
  76. # -- Enable 'hostPort' or not
  77. enabled: true
  78. ports:
  79. # -- 'hostPort' http port
  80. http: 80
  81. # -- 'hostPort' https port
  82. https: 443
  83. # -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
  84. electionID: ""
  85. ## This section refers to the creation of the IngressClass resource
  86. ## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19
  87. ingressClassResource:
  88. # -- Name of the ingressClass
  89. name: nginx
  90. # -- Is this ingressClass enabled or not
  91. enabled: true
  92. # -- Is this the default ingressClass for the cluster
  93. default: true
  94. # -- Controller-value of the controller that is processing this ingressClass
  95. controllerValue: "k8s.io/ingress-nginx"
  96. # -- Parameters is a link to a custom resource containing additional
  97. # configuration for the controller. This is optional if the controller
  98. # does not require extra parameters.
  99. parameters: {}
  100. # -- For backwards compatibility with ingress.class annotation, use ingressClass.
  101. # Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
  102. ingressClass: nginx
  103. # -- Labels to add to the pod container metadata
  104. podLabels: {}
  105. # key: value
  106. # -- Security Context policies for controller pods
  107. podSecurityContext: {}
  108. # -- See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls
  109. sysctls: {}
  110. # sysctls:
  111. # "net.core.somaxconn": "8192"
  112. # -- Allows customization of the source of the IP address or FQDN to report
  113. # in the ingress status field. By default, it reads the information provided
  114. # by the service. If disable, the status field reports the IP address of the
  115. # node or nodes where an ingress controller pod is running.
  116. publishService:
  117. # -- Enable 'publishService' or not
  118. enabled: true
  119. # -- Allows overriding of the publish service to bind to
  120. # Must be <namespace>/<service_name>
  121. pathOverride: ""
  122. # Limit the scope of the controller to a specific namespace
  123. scope:
  124. # -- Enable 'scope' or not
  125. enabled: false
  126. # -- Namespace to limit the controller to; defaults to $(POD_NAMESPACE)
  127. namespace: ""
  128. # -- When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels
  129. # only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces.
  130. namespaceSelector: ""
  131. # -- Allows customization of the configmap / nginx-configmap namespace; defaults to $(POD_NAMESPACE)
  132. configMapNamespace: ""
  133. tcp:
  134. # -- Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE)
  135. configMapNamespace: ""
  136. # -- Annotations to be added to the tcp config configmap
  137. annotations: {}
  138. udp:
  139. # -- Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE)
  140. configMapNamespace: ""
  141. # -- Annotations to be added to the udp config configmap
  142. annotations: {}
  143. # -- Maxmind license key to download GeoLite2 Databases.
  144. ## https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases
  145. maxmindLicenseKey: ""
  146. # -- Additional command line arguments to pass to nginx-ingress-controller
  147. # E.g. to specify the default SSL certificate you can use
  148. extraArgs: {}
  149. ## extraArgs:
  150. ## default-ssl-certificate: "<namespace>/<secret_name>"
  151. # -- Additional environment variables to set
  152. extraEnvs: []
  153. # extraEnvs:
  154. # - name: FOO
  155. # valueFrom:
  156. # secretKeyRef:
  157. # key: FOO
  158. # name: secret-resource
  159. # -- Use a `DaemonSet` or `Deployment`
  160. kind: Deployment
  161. # -- Annotations to be added to the controller Deployment or DaemonSet
  162. ##
  163. annotations: {}
  164. # keel.sh/pollSchedule: "@every 60m"
  165. # -- Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels
  166. ##
  167. labels: {}
  168. # keel.sh/policy: patch
  169. # keel.sh/trigger: poll
  170. # -- The update strategy to apply to the Deployment or DaemonSet
  171. ##
  172. updateStrategy: {}
  173. # rollingUpdate:
  174. # maxUnavailable: 1
  175. # type: RollingUpdate
  176. # -- `minReadySeconds` to avoid killing pods before we are ready
  177. ##
  178. minReadySeconds: 0
  179. # -- Node tolerations for server scheduling to nodes with taints
  180. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  181. ##
  182. tolerations: []
  183. # - key: "key"
  184. # operator: "Equal|Exists"
  185. # value: "value"
  186. # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
  187. # -- Affinity and anti-affinity rules for server scheduling to nodes
  188. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  189. ##
  190. affinity:
  191. nodeAffinity:
  192. requiredDuringSchedulingIgnoredDuringExecution:
  193. nodeSelectorTerms:
  194. - matchExpressions:
  195. - key: kubernetes.io/hostname
  196. operator: In
  197. values:
  198. - k8smaster
  199. - node02
  200. - node01
  201. # # An example of preferred pod anti-affinity, weight is in the range 1-100
  202. # podAntiAffinity:
  203. # preferredDuringSchedulingIgnoredDuringExecution:
  204. # - weight: 100
  205. # podAffinityTerm:
  206. # labelSelector:
  207. # matchExpressions:
  208. # - key: app.kubernetes.io/name
  209. # operator: In
  210. # values:
  211. # - ingress-nginx
  212. # - key: app.kubernetes.io/instance
  213. # operator: In
  214. # values:
  215. # - ingress-nginx
  216. # - key: app.kubernetes.io/component
  217. # operator: In
  218. # values:
  219. # - controller
  220. # topologyKey: kubernetes.io/hostname
  221. # # An example of required pod anti-affinity
  222. # podAntiAffinity:
  223. # requiredDuringSchedulingIgnoredDuringExecution:
  224. # - labelSelector:
  225. # matchExpressions:
  226. # - key: app.kubernetes.io/name
  227. # operator: In
  228. # values:
  229. # - ingress-nginx
  230. # - key: app.kubernetes.io/instance
  231. # operator: In
  232. # values:
  233. # - ingress-nginx
  234. # - key: app.kubernetes.io/component
  235. # operator: In
  236. # values:
  237. # - controller
  238. # topologyKey: "kubernetes.io/hostname"
  239. # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
  240. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  241. ##
  242. topologySpreadConstraints: []
  243. # - maxSkew: 1
  244. # topologyKey: topology.kubernetes.io/zone
  245. # whenUnsatisfiable: DoNotSchedule
  246. # labelSelector:
  247. # matchLabels:
  248. # app.kubernetes.io/instance: ingress-nginx-internal
  249. # -- `terminationGracePeriodSeconds` to avoid killing pods before we are ready
  250. ## wait up to five minutes for the drain of connections
  251. ##
  252. terminationGracePeriodSeconds: 300
  253. # -- Node labels for controller pod assignment
  254. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  255. ##
  256. nodeSelector:
  257. kubernetes.io/os: linux
  258. ## Liveness and readiness probe values
  259. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  260. ##
  261. ## startupProbe:
  262. ## httpGet:
  263. ## # should match container.healthCheckPath
  264. ## path: "/healthz"
  265. ## port: 10254
  266. ## scheme: HTTP
  267. ## initialDelaySeconds: 5
  268. ## periodSeconds: 5
  269. ## timeoutSeconds: 2
  270. ## successThreshold: 1
  271. ## failureThreshold: 5
  272. livenessProbe:
  273. httpGet:
  274. # should match container.healthCheckPath
  275. path: "/healthz"
  276. port: 10254
  277. scheme: HTTP
  278. initialDelaySeconds: 10
  279. periodSeconds: 10
  280. timeoutSeconds: 1
  281. successThreshold: 1
  282. failureThreshold: 5
  283. readinessProbe:
  284. httpGet:
  285. # should match container.healthCheckPath
  286. path: "/healthz"
  287. port: 10254
  288. scheme: HTTP
  289. initialDelaySeconds: 10
  290. periodSeconds: 10
  291. timeoutSeconds: 1
  292. successThreshold: 1
  293. failureThreshold: 3
  294. # -- Path of the health check endpoint. All requests received on the port defined by
  295. # the healthz-port parameter are forwarded internally to this path.
  296. healthCheckPath: "/healthz"
  297. # -- Address to bind the health check endpoint.
  298. # It is better to set this option to the internal node address
  299. # if the ingress nginx controller is running in the `hostNetwork: true` mode.
  300. healthCheckHost: ""
  301. # -- Annotations to be added to controller pods
  302. ##
  303. podAnnotations: {}
  304. replicaCount: 3
  305. minAvailable: 1
  306. ## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
  307. ## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
  308. ## Ideally, there should be no limits.
  309. ## https://engineering.indeedblog.com/blog/2019/12/cpu-throttling-regression-fix/
  310. resources:
  311. ## limits:
  312. ## cpu: 100m
  313. ## memory: 90Mi
  314. requests:
  315. cpu: 500m
  316. memory: 200Mi
  317. # Mutually exclusive with keda autoscaling
  318. autoscaling:
  319. enabled: false
  320. minReplicas: 1
  321. maxReplicas: 11
  322. targetCPUUtilizationPercentage: 50
  323. targetMemoryUtilizationPercentage: 50
  324. behavior: {}
  325. # scaleDown:
  326. # stabilizationWindowSeconds: 300
  327. # policies:
  328. # - type: Pods
  329. # value: 1
  330. # periodSeconds: 180
  331. # scaleUp:
  332. # stabilizationWindowSeconds: 300
  333. # policies:
  334. # - type: Pods
  335. # value: 2
  336. # periodSeconds: 60
  337. autoscalingTemplate: []
  338. # Custom or additional autoscaling metrics
  339. # ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics
  340. # - type: Pods
  341. # pods:
  342. # metric:
  343. # name: nginx_ingress_controller_nginx_process_requests_total
  344. # target:
  345. # type: AverageValue
  346. # averageValue: 10000m
  347. # Mutually exclusive with hpa autoscaling
  348. keda:
  349. apiVersion: "keda.sh/v1alpha1"
  350. ## apiVersion changes with keda 1.x vs 2.x
  351. ## 2.x = keda.sh/v1alpha1
  352. ## 1.x = keda.k8s.io/v1alpha1
  353. enabled: false
  354. minReplicas: 1
  355. maxReplicas: 11
  356. pollingInterval: 30
  357. cooldownPeriod: 300
  358. restoreToOriginalReplicaCount: false
  359. scaledObject:
  360. annotations: {}
  361. # Custom annotations for ScaledObject resource
  362. # annotations:
  363. # key: value
  364. triggers: []
  365. # - type: prometheus
  366. # metadata:
  367. # serverAddress: http://<prometheus-host>:9090
  368. # metricName: http_requests_total
  369. # threshold: '100'
  370. # query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
  371. behavior: {}
  372. # scaleDown:
  373. # stabilizationWindowSeconds: 300
  374. # policies:
  375. # - type: Pods
  376. # value: 1
  377. # periodSeconds: 180
  378. # scaleUp:
  379. # stabilizationWindowSeconds: 300
  380. # policies:
  381. # - type: Pods
  382. # value: 2
  383. # periodSeconds: 60
  384. # -- Enable mimalloc as a drop-in replacement for malloc.
  385. ## ref: https://github.com/microsoft/mimalloc
  386. ##
  387. enableMimalloc: true
  388. ## Override NGINX template
  389. customTemplate:
  390. configMapName: ""
  391. configMapKey: ""
  392. service:
  393. enabled: true
  394. # -- If enabled is adding an appProtocol option for Kubernetes service. An appProtocol field replacing annotations that were
  395. # using for setting a backend protocol. Here is an example for AWS: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
  396. # It allows choosing the protocol for each backend specified in the Kubernetes service.
  397. # See the following GitHub issue for more details about the purpose: https://github.com/kubernetes/kubernetes/issues/40244
  398. # Will be ignored for Kubernetes versions older than 1.20
  399. ##
  400. appProtocol: true
  401. annotations: {}
  402. labels: {}
  403. # clusterIP: ""
  404. # -- List of IP addresses at which the controller services are available
  405. ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
  406. ##
  407. externalIPs: []
  408. # -- 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
  409. loadBalancerIP: ""
  410. loadBalancerSourceRanges: []
  411. enableHttp: true
  412. enableHttps: true
  413. ## Set external traffic policy to: "Local" to preserve source IP on providers supporting it.
  414. ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
  415. # externalTrafficPolicy: ""
  416. ## Must be either "None" or "ClientIP" if set. Kubernetes will default to "None".
  417. ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  418. # sessionAffinity: ""
  419. ## Specifies the health check node port (numeric port number) for the service. If healthCheckNodePort isn’t specified,
  420. ## the service controller allocates a port from your cluster’s NodePort range.
  421. ## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  422. # healthCheckNodePort: 0
  423. # -- Represents the dual-stack-ness requested or required by this Service. Possible values are
  424. # SingleStack, PreferDualStack or RequireDualStack.
  425. # The ipFamilies and clusterIPs fields depend on the value of this field.
  426. ## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
  427. ipFamilyPolicy: "SingleStack"
  428. # -- List of IP families (e.g. IPv4, IPv6) assigned to the service. This field is usually assigned automatically
  429. # based on cluster configuration and the ipFamilyPolicy field.
  430. ## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
  431. ipFamilies:
  432. - IPv4
  433. ports:
  434. http: 80
  435. https: 443
  436. targetPorts:
  437. http: http
  438. https: https
  439. type: LoadBalancer
  440. ## type: NodePort
  441. ## nodePorts:
  442. ## http: 32080
  443. ## https: 32443
  444. ## tcp:
  445. ## 8080: 32808
  446. nodePorts:
  447. http: ""
  448. https: ""
  449. tcp: {}
  450. udp: {}
  451. external:
  452. enabled: true
  453. internal:
  454. # -- Enables an additional internal load balancer (besides the external one).
  455. enabled: false
  456. # -- Annotations are mandatory for the load balancer to come up. Varies with the cloud service.
  457. annotations: {}
  458. # loadBalancerIP: ""
  459. # -- Restrict access For LoadBalancer service. Defaults to 0.0.0.0/0.
  460. loadBalancerSourceRanges: []
  461. ## Set external traffic policy to: "Local" to preserve source IP on
  462. ## providers supporting it
  463. ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
  464. # externalTrafficPolicy: ""
  465. # shareProcessNamespace enables process namespace sharing within the pod.
  466. # This can be used for example to signal log rotation using `kill -USR1` from a sidecar.
  467. shareProcessNamespace: false
  468. # -- Additional containers to be added to the controller pod.
  469. # See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example.
  470. extraContainers: []
  471. # - name: my-sidecar
  472. # image: nginx:latest
  473. # - name: lemonldap-ng-controller
  474. # image: lemonldapng/lemonldap-ng-controller:0.2.0
  475. # args:
  476. # - /lemonldap-ng-controller
  477. # - --alsologtostderr
  478. # - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
  479. # env:
  480. # - name: POD_NAME
  481. # valueFrom:
  482. # fieldRef:
  483. # fieldPath: metadata.name
  484. # - name: POD_NAMESPACE
  485. # valueFrom:
  486. # fieldRef:
  487. # fieldPath: metadata.namespace
  488. # volumeMounts:
  489. # - name: copy-portal-skins
  490. # mountPath: /srv/var/lib/lemonldap-ng/portal/skins
  491. # -- Additional volumeMounts to the controller main container.
  492. extraVolumeMounts: []
  493. # - name: copy-portal-skins
  494. # mountPath: /var/lib/lemonldap-ng/portal/skins
  495. # -- Additional volumes to the controller pod.
  496. extraVolumes: []
  497. # - name: copy-portal-skins
  498. # emptyDir: {}
  499. # -- Containers, which are run before the app containers are started.
  500. extraInitContainers: []
  501. # - name: init-myservice
  502. # image: busybox
  503. # command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  504. extraModules: []
  505. ## Modules, which are mounted into the core nginx image
  506. # - name: opentelemetry
  507. # image: registry.k8s.io/ingress-nginx/opentelemetry:v20220906-g981ce38a7@sha256:aa079daa7efd93aa830e26483a49a6343354518360929494bad1d0ad3303142e
  508. #
  509. # The image must contain a `/usr/local/bin/init_module.sh` executable, which
  510. # will be executed as initContainers, to move its config files within the
  511. # mounted volume.
  512. admissionWebhooks:
  513. annotations: {}
  514. # ignore-check.kube-linter.io/no-read-only-rootfs: "This deployment needs write access to root filesystem".
  515. ## Additional annotations to the admission webhooks.
  516. ## These annotations will be added to the ValidatingWebhookConfiguration and
  517. ## the Jobs Spec of the admission webhooks.
  518. enabled: false
  519. # -- Additional environment variables to set
  520. extraEnvs: []
  521. # extraEnvs:
  522. # - name: FOO
  523. # valueFrom:
  524. # secretKeyRef:
  525. # key: FOO
  526. # name: secret-resource
  527. # -- Admission Webhook failure policy to use
  528. failurePolicy: Fail
  529. # timeoutSeconds: 10
  530. port: 8443
  531. certificate: "/usr/local/certificates/cert"
  532. key: "/usr/local/certificates/key"
  533. namespaceSelector: {}
  534. objectSelector: {}
  535. # -- Labels to be added to admission webhooks
  536. labels: {}
  537. # -- Use an existing PSP instead of creating one
  538. existingPsp: ""
  539. networkPolicyEnabled: false
  540. service:
  541. annotations: {}
  542. # clusterIP: ""
  543. externalIPs: []
  544. # loadBalancerIP: ""
  545. loadBalancerSourceRanges: []
  546. servicePort: 443
  547. type: ClusterIP
  548. createSecretJob:
  549. securityContext:
  550. allowPrivilegeEscalation: false
  551. resources: {}
  552. # limits:
  553. # cpu: 10m
  554. # memory: 20Mi
  555. # requests:
  556. # cpu: 10m
  557. # memory: 20Mi
  558. patchWebhookJob:
  559. securityContext:
  560. allowPrivilegeEscalation: false
  561. resources: {}
  562. patch:
  563. enabled: true
  564. image:
  565. registry: registry.k8s.io
  566. image: ingress-nginx/kube-webhook-certgen
  567. ## for backwards compatibility consider setting the full image url via the repository value below
  568. ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
  569. ## repository:
  570. tag: v20220916-gd32f8c343
  571. digest: sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
  572. pullPolicy: IfNotPresent
  573. # -- Provide a priority class name to the webhook patching job
  574. ##
  575. priorityClassName: ""
  576. podAnnotations: {}
  577. nodeSelector:
  578. kubernetes.io/os: linux
  579. tolerations: []
  580. # -- Labels to be added to patch job resources
  581. labels: {}
  582. securityContext:
  583. runAsNonRoot: true
  584. runAsUser: 2000
  585. fsGroup: 2000
  586. metrics:
  587. port: 10254
  588. portName: metrics
  589. # if this port is changed, change healthz-port: in extraArgs: accordingly
  590. enabled: true
  591. service:
  592. annotations: {}
  593. # prometheus.io/scrape: "true"
  594. # prometheus.io/port: "10254"
  595. # clusterIP: ""
  596. # -- List of IP addresses at which the stats-exporter service is available
  597. ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
  598. ##
  599. externalIPs: []
  600. # loadBalancerIP: ""
  601. loadBalancerSourceRanges: []
  602. servicePort: 10254
  603. type: ClusterIP
  604. # externalTrafficPolicy: ""
  605. # nodePort: ""
  606. serviceMonitor:
  607. enabled: false
  608. additionalLabels: {}
  609. ## The label to use to retrieve the job name from.
  610. ## jobLabel: "app.kubernetes.io/name"
  611. namespace: ""
  612. namespaceSelector: {}
  613. ## Default: scrape .Release.Namespace only
  614. ## To scrape all, use the following:
  615. ## namespaceSelector:
  616. ## any: true
  617. scrapeInterval: 30s
  618. # honorLabels: true
  619. targetLabels: []
  620. relabelings: []
  621. metricRelabelings: []
  622. prometheusRule:
  623. enabled: false
  624. additionalLabels: {}
  625. # namespace: ""
  626. rules: []
  627. # # These are just examples rules, please adapt them to your needs
  628. # - alert: NGINXConfigFailed
  629. # expr: count(nginx_ingress_controller_config_last_reload_successful == 0) > 0
  630. # for: 1s
  631. # labels:
  632. # severity: critical
  633. # annotations:
  634. # description: bad ingress config - nginx config test failed
  635. # summary: uninstall the latest ingress changes to allow config reloads to resume
  636. # - alert: NGINXCertificateExpiry
  637. # expr: (avg(nginx_ingress_controller_ssl_expire_time_seconds) by (host) - time()) < 604800
  638. # for: 1s
  639. # labels:
  640. # severity: critical
  641. # annotations:
  642. # description: ssl certificate(s) will expire in less then a week
  643. # summary: renew expiring certificates to avoid downtime
  644. # - alert: NGINXTooMany500s
  645. # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"5.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
  646. # for: 1m
  647. # labels:
  648. # severity: warning
  649. # annotations:
  650. # description: Too many 5XXs
  651. # summary: More than 5% of all requests returned 5XX, this requires your attention
  652. # - alert: NGINXTooMany400s
  653. # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
  654. # for: 1m
  655. # labels:
  656. # severity: warning
  657. # annotations:
  658. # description: Too many 4XXs
  659. # summary: More than 5% of all requests returned 4XX, this requires your attention
  660. # -- Improve connection draining when ingress controller pod is deleted using a lifecycle hook:
  661. # With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds
  662. # to 300, allowing the draining of connections up to five minutes.
  663. # If the active connections end before that, the pod will terminate gracefully at that time.
  664. # To effectively take advantage of this feature, the Configmap feature
  665. # worker-shutdown-timeout new value is 240s instead of 10s.
  666. ##
  667. lifecycle:
  668. preStop:
  669. exec:
  670. command:
  671. - /wait-shutdown
  672. priorityClassName: ""
  673. # -- Rollback limit
  674. ##
  675. revisionHistoryLimit: 10
  676. ## Default 404 backend
  677. ##
  678. defaultBackend:
  679. ##
  680. enabled: false
  681. name: defaultbackend
  682. image:
  683. registry: registry.k8s.io
  684. image: defaultbackend-amd64
  685. ## for backwards compatibility consider setting the full image url via the repository value below
  686. ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
  687. ## repository:
  688. tag: "1.5"
  689. pullPolicy: IfNotPresent
  690. # nobody user -> uid 65534
  691. runAsUser: 65534
  692. runAsNonRoot: true
  693. readOnlyRootFilesystem: true
  694. allowPrivilegeEscalation: false
  695. # -- Use an existing PSP instead of creating one
  696. existingPsp: ""
  697. extraArgs: {}
  698. serviceAccount:
  699. create: true
  700. name: ""
  701. automountServiceAccountToken: true
  702. # -- Additional environment variables to set for defaultBackend pods
  703. extraEnvs: []
  704. port: 8080
  705. ## Readiness and liveness probes for default backend
  706. ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
  707. ##
  708. livenessProbe:
  709. failureThreshold: 3
  710. initialDelaySeconds: 30
  711. periodSeconds: 10
  712. successThreshold: 1
  713. timeoutSeconds: 5
  714. readinessProbe:
  715. failureThreshold: 6
  716. initialDelaySeconds: 0
  717. periodSeconds: 5
  718. successThreshold: 1
  719. timeoutSeconds: 5
  720. # -- Node tolerations for server scheduling to nodes with taints
  721. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  722. ##
  723. tolerations: []
  724. # - key: "key"
  725. # operator: "Equal|Exists"
  726. # value: "value"
  727. # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
  728. affinity: {}
  729. # -- Security Context policies for controller pods
  730. # See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
  731. # notes on enabling and using sysctls
  732. ##
  733. podSecurityContext: {}
  734. # -- Security Context policies for controller main container.
  735. # See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for
  736. # notes on enabling and using sysctls
  737. ##
  738. containerSecurityContext: {}
  739. # -- Labels to add to the pod container metadata
  740. podLabels: {}
  741. # key: value
  742. # -- Node labels for default backend pod assignment
  743. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  744. ##
  745. nodeSelector:
  746. kubernetes.io/os: linux
  747. # -- Annotations to be added to default backend pods
  748. ##
  749. podAnnotations: {}
  750. replicaCount: 1
  751. minAvailable: 1
  752. resources: {}
  753. # limits:
  754. # cpu: 10m
  755. # memory: 20Mi
  756. # requests:
  757. # cpu: 10m
  758. # memory: 20Mi
  759. extraVolumeMounts: []
  760. ## Additional volumeMounts to the default backend container.
  761. # - name: copy-portal-skins
  762. # mountPath: /var/lib/lemonldap-ng/portal/skins
  763. extraVolumes: []
  764. ## Additional volumes to the default backend pod.
  765. # - name: copy-portal-skins
  766. # emptyDir: {}
  767. autoscaling:
  768. annotations: {}
  769. enabled: false
  770. minReplicas: 1
  771. maxReplicas: 2
  772. targetCPUUtilizationPercentage: 50
  773. targetMemoryUtilizationPercentage: 50
  774. service:
  775. annotations: {}
  776. # clusterIP: ""
  777. # -- List of IP addresses at which the default backend service is available
  778. ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
  779. ##
  780. externalIPs: []
  781. # loadBalancerIP: ""
  782. loadBalancerSourceRanges: []
  783. servicePort: 80
  784. type: ClusterIP
  785. priorityClassName: ""
  786. # -- Labels to be added to the default backend resources
  787. labels: {}
  788. ## 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
  789. rbac:
  790. create: true
  791. scope: false
  792. ## If true, create & use Pod Security Policy resources
  793. ## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
  794. podSecurityPolicy:
  795. enabled: false
  796. serviceAccount:
  797. create: true
  798. name: ""
  799. automountServiceAccountToken: true
  800. # -- Annotations for the controller service account
  801. annotations: {}
  802. # -- Optional array of imagePullSecrets containing private registry credentials
  803. ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  804. imagePullSecrets: []
  805. # - name: secretName
  806. # -- TCP service key-value pairs
  807. ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
  808. ##
  809. tcp:
  810. 8162: "cicd/gogs:8162"
  811. # -- UDP service key-value pairs
  812. ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
  813. ##
  814. udp: {}
  815. # -- Prefix for TCP and UDP ports names in ingress controller service
  816. ## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
  817. portNamePrefix: ""
  818. # -- (string) A base64-encoded Diffie-Hellman parameter.
  819. # This can be generated with: `openssl dhparam 4096 2> /dev/null | base64`
  820. ## Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param
  821. dhParam: