From 337546f078682d56532795779ea57c4bcef5e136 Mon Sep 17 00:00:00 2001 From: CatalogBot Date: Mon, 30 Dec 2024 19:10:48 +0000 Subject: [PATCH] add ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json --- index.yaml | 33 +- ...c40c353b5e607a51b495ceab14cfdc3221efa6.tgz | Bin 0 -> 54458 bytes .../README.md | 180 +++ .../main.yaml | 12 + .../values.schema.json | 1412 +++++++++++++++++ 5 files changed, 1636 insertions(+), 1 deletion(-) create mode 100644 ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz create mode 100644 ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md create mode 100644 ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml create mode 100644 ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json diff --git a/index.yaml b/index.yaml index d56096d4ae..7f9f531eb4 100644 --- a/index.yaml +++ b/index.yaml @@ -7028,6 +7028,37 @@ entries: urls: - https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-570b73b8dd1665a3fd9cd34c378be2acc73ca4be.tgz version: 3.9.3-570b73b8dd1665a3fd9cd34c378be2acc73ca4be + - annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md + application.giantswarm.io/team: team-cabbage + application.giantswarm.io/values-schema: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json + ui.giantswarm.io/logo: https://s.giantswarm.io/app-icons/ingress-nginx/2/logo_dark.svg + apiVersion: v2 + appVersion: 1.11.3 + created: "2024-12-30T19:10:47.997259297Z" + description: Ingress controller for Kubernetes using NGINX as a reverse proxy + and load balancer + digest: d23f4662a436d1369cdd8781c087173dec8b440e3e20222ebf34f866ae5b2643 + home: https://github.com/giantswarm/ingress-nginx-app + icon: https://s.giantswarm.io/app-icons/ingress-nginx/2/icon_dark.svg + keywords: + - ingress + - nginx + kubeVersion: '>=1.21.0-0' + maintainers: + - name: cpanato + - name: Gacko + - name: puerco + - name: rikatz + - name: strongjz + - name: tao12345666333 + name: ingress-nginx + sources: + - https://github.com/kubernetes/ingress-nginx + urls: + - https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz + version: 3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6 - annotations: application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-40fee3236489f269dc9802424fc23b2608162be7.tgz-meta/main.yaml application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-40fee3236489f269dc9802424fc23b2608162be7.tgz-meta/README.md @@ -17041,4 +17072,4 @@ entries: urls: - https://giantswarm.github.io/giantswarm-test-catalog/zot-2.0.0-9afe78380a7b5315ff0f2c37eb29bb4c27eb545d.tgz version: 2.0.0-9afe78380a7b5315ff0f2c37eb29bb4c27eb545d -generated: "2024-12-30T15:17:15.517379598Z" +generated: "2024-12-30T19:10:47.992988555Z" diff --git a/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..dab6b7e1c88619446676f12da8f24a171d39f3c4 GIT binary patch literal 54458 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

U$w|&6`-hTv(+s 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 Dp%SMf literal 0 HcmV?d00001 diff --git a/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md new file mode 100644 index 0000000000..e0cb4d643c --- /dev/null +++ b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md @@ -0,0 +1,180 @@ +[![CircleCI](https://circleci.com/gh/giantswarm/ingress-nginx-app.svg?style=shield)](https://circleci.com/gh/giantswarm/ingress-nginx-app) + +# Ingress NGINX Controller + +This app installs the [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx) into your cluster. + +Its job is to satisfy external requests to services running in the cluster. See the [Kubernetes Ingress documentation](https://kubernetes.io/docs/concepts/services-networking/ingress) for a higher level overview. + +## Table of Contents + +- [Ingress NGINX Controller](#ingress-nginx-controller) +- [Prerequisites](#prerequisites) +- [Installation](#installation) + - [Using our web interface](#using-our-web-interface) + - [Directly creating the `App` resource](#directly-creating-the-app-resource) +- [Configuration](#configuration) + - [`IngressClass` resource](#ingressclass-resource) + - [Internal Ingress NGINX Controller](#internal-ingress-nginx-controller) + - [AWS & PROXY protocol](#aws--proxy-protocol) +- [Migration from `nginx-ingress-controller-app`](#migration-from-nginx-ingress-controller-app) +- [Development](#development) + - [Local installation](#local-installation) + - [Release process](#release-process) + +## Prerequisites + +- Kubernetes version >= v1.20.0 +- Ingress API version >= `networking.k8s.io/v1` (`extensions/v1beta1` & `networking.k8s.io/v1beta1` are no longer supported) + +Additionally, you'll have to make sure your `Ingress` resources are using the `.spec.ingressClassName`, matching the name of your `IngressClass` resource (default: `nginx`). + +## Installation + +There are two ways to install this app into your cluster: + +1. Using our [web interface](https://docs.giantswarm.io/platform-overview/web-interface/app-platform#installing-an-app). +2. Directly creating the [`App` resource](https://docs.giantswarm.io/use-the-api/management-api/crd/apps.application.giantswarm.io). + +### Using our web interface + +This is an example of the values file you could upload using our web interface: + +```yaml +controller: + config: + error-log-level: info +``` + +### Directly creating the `App` resource + +If you have access to management cluster, you can create the `App` & `ConfigMap` resources directly. These sample values deploy the `ingress-nginx` app to your cluster `abc12`: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: ingress-nginx-user-values + namespace: abc12 +data: + values: | + controller: + config: + error-log-level: info +--- +apiVersion: application.giantswarm.io/v1alpha1 +kind: App +metadata: + name: ingress-nginx + namespace: abc12 +spec: + catalog: giantswarm + name: ingress-nginx + version: 3.9.3 + userConfig: + configMap: + name: ingress-nginx-user-values + namespace: abc12 + namespace: kube-system +``` + +See our [app configuration reference](https://docs.giantswarm.io/getting-started/app-platform/app-configuration) for more details. + +## Configuration + +All configuration options are documented in the [`values.yaml`](https://github.com/giantswarm/ingress-nginx-app/blob/main/helm/ingress-nginx/values.yaml). + +### `IngressClass` resource + +In case it is not possible to update all `Ingress` resources to specify the `.spec.ingressClassName`, you can add the `--watch-ingress-without-class` argument using the `controller.extraArgs`. Please make sure there is no other Ingress Controller doing so deployed to your cluster. + +If you are [running multiple Ingress NGINX Controllers](https://docs.giantswarm.io/advanced/ingress/multi-nginx-ic), each needs to have an unique `IngressClass` resource. You can use the values structure below: + +```yaml +controller: + ingressClassResource: + name: nginx-internal + controllerValue: k8s.io/ingress-nginx-internal +``` + +**Note:** It is not possible to change the `controller.ingressClassResource` values after installation, except you are also changing `controller.ingressClassResource.name`. If you need to change these values, you will need to uninstall the app first. + +### Internal Ingress NGINX Controller + +This chart contains a template for an additional [internal service](https://github.com/giantswarm/ingress-nginx-app/blob/main/helm/ingress-nginx/templates/controller-service-internal.yaml) to cover the use case of having separate external & internal services with a single Ingress NGINX Controller instance. + +Valid configuration options are as follows: + +**External only (default)** + +This is the default behavior. No additional configuration required. + +**Internal only** + +This configures the [default service](https://github.com/giantswarm/ingress-nginx-app/blob/main/helm/ingress-nginx/templates/controller-service.yaml) to create an internal facing load balancer: + + ```yaml +controller: + service: + public: false + ``` + +**External & internal** + +This enables the additional [internal service](https://github.com/giantswarm/ingress-nginx-app/blob/main/helm/ingress-nginx/templates/controller-service-internal.yaml) and creates an internal facing load balancer. + +```yaml +controller: + service: + internal: + enabled: true +``` + +### AWS & PROXY protocol + +Since version v2.17.0, this chart has the `use-proxy-procotol` enabled by default when installed in AWS. + +To disable this behavior, it is still possible to set `controller.config.use-proxy-protocol` to `"false"` in the values. + +## Migration from `nginx-ingress-controller-app` + +Please see our [migration guide](https://github.com/giantswarm/ingress-nginx-app/blob/main/migration.md) if you want to update your `nginx-ingress-controller-app` deployment to the new `ingress-nginx` chart. + +## Development + +### Local installation + +To install the chart locally: + +```bash +$ git clone https://github.com/giantswarm/ingress-nginx-app.git +$ cd ingress-nginx-app +$ helm install helm/ingress-nginx +``` + +Provide a custom `values.yaml`: + +```bash +$ helm install helm/ingress-nginx --values values.yaml +``` + +### Testing + +This App includes E2E tests using the [apptest-framework](https://github.com/giantswarm/apptest-framework). You can trigger the configured tests on any open PR by adding the following as a comment: + +``` +/run app-test-suites +``` + +E2E tests include: + +| Suite | Test | Description | Providers | +|-------|-------------|-----------------------------------------------------------------------------|-----------| +| Basic | App install | Check if the App is installed correctly and marked as `deployed` | CAPA | +| Basic | Hello World | Deploy `hello-world` app and verify that it's reachable through the Ingress | CAPA | + +### Release process + +* Ensure CHANGELOG.md is up to date. +* Create a new branch with name `release#vx.x.x`. Automation will create a release PR. +* Merging the release PR will push a new Git tag and trigger a new tarball to be pushed to the [giantswarm-catalog]. diff --git a/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml new file mode 100644 index 0000000000..90670818e3 --- /dev/null +++ b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml @@ -0,0 +1,12 @@ +annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/README.md + application.giantswarm.io/team: team-cabbage + application.giantswarm.io/values-schema: https://giantswarm.github.io/giantswarm-test-catalog/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json + ui.giantswarm.io/logo: https://s.giantswarm.io/app-icons/ingress-nginx/2/logo_dark.svg +chartApiVersion: v2 +chartFile: ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz +dateCreated: '2024-12-30T19:10:36.830235Z' +digest: d23f4662a436d1369cdd8781c087173dec8b440e3e20222ebf34f866ae5b2643 +home: https://github.com/giantswarm/ingress-nginx-app +icon: https://s.giantswarm.io/app-icons/ingress-nginx/2/icon_dark.svg diff --git a/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json new file mode 100644 index 0000000000..4478a6b938 --- /dev/null +++ b/ingress-nginx-3.9.3-4dc40c353b5e607a51b495ceab14cfdc3221efa6.tgz-meta/values.schema.json @@ -0,0 +1,1412 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "baseDomain": { + "type": "string" + }, + "commonLabels": { + "type": "object" + }, + "configmap": { + "type": "object" + }, + "controller": { + "type": "object", + "properties": { + "addHeaders": { + "type": "object" + }, + "admissionWebhooks": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "certManager": { + "type": "object", + "properties": { + "admissionCert": { + "type": "object", + "properties": { + "duration": { + "type": "string" + } + } + }, + "enabled": { + "type": "boolean" + }, + "issuerRef": { + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "rootCert": { + "type": "object", + "properties": { + "duration": { + "type": "string" + } + } + } + } + }, + "certificate": { + "type": "string" + }, + "createSecretJob": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "resources": { + "type": "object" + }, + "securityContext": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object" + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object" + } + } + } + } + }, + "enabled": { + "type": "boolean" + }, + "existingPsp": { + "type": "string" + }, + "extraEnvs": { + "type": "array" + }, + "failurePolicy": { + "type": "string", + "enum": ["Fail", "Ignore"] + }, + "key": { + "type": "string" + }, + "labels": { + "type": "object" + }, + "name": { + "type": "string" + }, + "namespaceSelector": { + "type": "object" + }, + "objectSelector": { + "type": "object" + }, + "patch": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "image": { + "type": "object", + "properties": { + "digest": { + "type": "string" + }, + "image": { + "type": "string" + }, + "pullPolicy": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "labels": { + "type": "object" + }, + "networkPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "nodeSelector": { + "type": "object" + }, + "podAnnotations": { + "type": "object" + }, + "priorityClassName": { + "type": "string" + }, + "rbac": { + "type": "object", + "properties": { + "create": { + "type": "boolean" + } + } + }, + "securityContext": { + "type": "object" + }, + "serviceAccount": { + "type": "object", + "properties": { + "automountServiceAccountToken": { + "type": "boolean" + }, + "create": { + "type": "boolean" + }, + "name": { + "type": "string" + } + } + }, + "tolerations": { + "type": "array" + } + } + }, + "patchWebhookJob": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "resources": { + "type": "object" + }, + "securityContext": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object" + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object" + } + } + } + } + }, + "port": { + "type": "integer" + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "clusterIP": { + "type": "string" + }, + "externalIPs": { + "type": "array" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "type": "array" + }, + "servicePort": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + }, + "timeoutSeconds": { + "type": "integer", + "minimum": 0 + } + } + }, + "affinity": { + "type": "object" + }, + "allowSnippetAnnotations": { + "type": "boolean" + }, + "annotations": { + "type": "object" + }, + "autoscaling": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "behavior": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "maxReplicas": { + "type": "integer" + }, + "minReplicas": { + "type": "integer" + }, + "targetCPUUtilizationPercentage": { + "type": "integer" + }, + "targetMemoryUtilizationPercentage": { + "type": "integer" + } + } + }, + "autoscalingTemplate": { + "type": "array" + }, + "config": { + "type": "object" + }, + "configAnnotations": { + "type": "object" + }, + "configMapNamespace": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "containerPort": { + "type": "object", + "properties": { + "http": { + "type": "integer" + }, + "https": { + "type": "integer" + } + } + }, + "containerSecurityContext": { + "type": "object" + }, + "customTemplate": { + "type": "object", + "properties": { + "configMapKey": { + "type": "string" + }, + "configMapName": { + "type": "string" + } + } + }, + "disableLeaderElection": { + "type": "boolean" + }, + "dnsConfig": { + "type": "object" + }, + "dnsPolicy": { + "type": "string" + }, + "electionID": { + "type": "string" + }, + "electionTTL": { + "type": "string" + }, + "enableAnnotationValidations": { + "type": "boolean" + }, + "enableMimalloc": { + "type": "boolean" + }, + "enableTopologyAwareRouting": { + "type": "boolean" + }, + "existingPsp": { + "type": "string" + }, + "extraArgs": { + "type": "object" + }, + "extraContainers": { + "type": "array" + }, + "extraEnvs": { + "type": "array" + }, + "extraInitContainers": { + "type": "array" + }, + "extraModules": { + "type": "array" + }, + "extraVolumeMounts": { + "type": "array" + }, + "extraVolumes": { + "type": "array" + }, + "healthCheckHost": { + "type": "string" + }, + "healthCheckPath": { + "type": "string" + }, + "hostAliases": { + "type": "array" + }, + "hostNetwork": { + "type": "boolean" + }, + "hostPort": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "ports": { + "type": "object", + "properties": { + "http": { + "type": "integer" + }, + "https": { + "type": "integer" + } + } + } + } + }, + "hostname": { + "type": "object" + }, + "image": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "chroot": { + "type": "boolean" + }, + "digest": { + "type": "string" + }, + "digestChroot": { + "type": "string" + }, + "image": { + "type": "string" + }, + "pullPolicy": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object" + }, + "tag": { + "type": "string" + } + } + }, + "ingressClass": { + "type": "string" + }, + "ingressClassByName": { + "type": "boolean" + }, + "ingressClassResource": { + "type": "object", + "properties": { + "aliases": { + "type": "array" + }, + "annotations": { + "type": "object" + }, + "controllerValue": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "parameters": { + "type": "object" + } + } + }, + "keda": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string" + }, + "behavior": { + "type": "object" + }, + "cooldownPeriod": { + "type": "integer" + }, + "enabled": { + "type": "boolean" + }, + "maxReplicas": { + "type": "integer" + }, + "minReplicas": { + "type": "integer" + }, + "pollingInterval": { + "type": "integer" + }, + "restoreToOriginalReplicaCount": { + "type": "boolean" + }, + "scaledObject": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + } + } + }, + "triggers": { + "type": "array" + } + } + }, + "kind": { + "type": "string", + "enum": ["Deployment", "DaemonSet"] + }, + "labels": { + "type": "object" + }, + "lifecycle": { + "type": "object", + "properties": { + "preStop": { + "type": "object", + "properties": { + "exec": { + "type": "object", + "properties": { + "command": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "livenessProbe": { + "type": "object" + }, + "maxUnavailable": { + "type": ["integer", "string"] + }, + "maxmindLicenseKey": { + "type": "string" + }, + "metrics": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "port": { + "type": "integer" + }, + "portName": { + "type": "string" + }, + "prometheusRule": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "rules": { + "type": "array" + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "clusterIP": { + "type": "string" + }, + "externalIPs": { + "type": "array" + }, + "externalTrafficPolicy": { + "type": "string", + "enum": ["Cluster", "Local"] + }, + "labels": { + "type": "object" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "type": "array" + }, + "nodePort": { + "type": "string" + }, + "servicePort": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + }, + "serviceMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "annotations": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "honorLabels": { + "type": "boolean" + }, + "metricRelabelings": { + "type": "array", + "items": { + "type": "object" + } + }, + "namespace": { + "type": "string" + }, + "namespaceSelector": { + "type": "object" + }, + "relabelings": { + "type": "array" + }, + "scrapeInterval": { + "type": "string" + }, + "targetLabels": { + "type": "array" + } + } + } + } + }, + "minAvailable": { + "type": ["integer", "string"] + }, + "minReadySeconds": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "networkPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "nodeSelector": { + "type": "object" + }, + "opentelemetry": { + "type": "object", + "properties": { + "containerSecurityContext": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object" + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object" + } + } + }, + "enabled": { + "type": "boolean" + }, + "image": { + "type": "object", + "properties": { + "digest": { + "type": "string" + }, + "distroless": { + "type": "boolean" + }, + "image": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "name": { + "type": "string" + }, + "resources": { + "type": "object" + } + } + }, + "podAnnotations": { + "type": "object" + }, + "podLabels": { + "type": "object" + }, + "podSecurityContext": { + "type": "object" + }, + "priorityClassName": { + "type": "string" + }, + "proxySetHeaders": { + "type": "object" + }, + "publishService": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "pathOverride": { + "type": "string" + } + } + }, + "readinessProbe": { + "type": "object" + }, + "replicaCount": { + "type": "integer" + }, + "reportNodeInternalIp": { + "type": "boolean" + }, + "resources": { + "type": "object", + "properties": { + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": ["string", "integer"] + }, + "memory": { + "type": "string" + } + } + } + } + }, + "scope": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "namespaceSelector": { + "type": "string" + } + } + }, + "service": { + "type": "object", + "properties": { + "allocateLoadBalancerNodePorts": { + "type": "boolean" + }, + "annotations": { + "type": "object" + }, + "appProtocol": { + "type": "boolean" + }, + "clusterIP": { + "type": "string" + }, + "enableHttp": { + "type": "boolean" + }, + "enableHttps": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "external": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "externalDNS": { + "type": "object", + "properties": { + "annotation": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + } + }, + "externalIPs": { + "type": "array", + "items": { + "type": "string" + } + }, + "externalTrafficPolicy": { + "type": "string", + "enum": ["", "Cluster", "Local"] + }, + "healthCheckNodePort": { + "type": "integer" + }, + "internal": { + "type": "object", + "properties": { + "allocateLoadBalancerNodePorts": { + "type": "boolean" + }, + "annotations": { + "type": "object" + }, + "appProtocol": { + "type": "boolean" + }, + "clusterIP": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "externalIPs": { + "type": "array", + "items": { + "type": "string" + } + }, + "externalTrafficPolicy": { + "type": "string", + "enum": ["", "Cluster", "Local"] + }, + "ipFamilies": { + "type": "array", + "items": { + "type": "string" + } + }, + "ipFamilyPolicy": { + "type": "string", + "enum": ["SingleStack", "PreferDualStack", "RequireDualStack"] + }, + "loadBalancerClass": { + "type": "string" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "type": "array", + "items": { + "type": "string" + } + }, + "nodePorts": { + "type": "object", + "properties": { + "http": { + "type": ["string", "integer"] + }, + "https": { + "type": ["string", "integer"] + }, + "tcp": { + "type": "object" + }, + "udp": { + "type": "object" + } + } + }, + "ports": { + "type": "object" + }, + "sessionAffinity": { + "type": "string", + "enum": ["", "None", "ClientIP"] + }, + "subdomain": { + "type": "string" + }, + "targetPorts": { + "type": "object" + }, + "type": { + "type": "string" + } + } + }, + "ipFamilies": { + "type": "array", + "items": { + "type": "string" + } + }, + "ipFamilyPolicy": { + "type": "string", + "enum": ["SingleStack", "PreferDualStack", "RequireDualStack"] + }, + "labels": { + "type": "object" + }, + "loadBalancerClass": { + "type": "string" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "type": "array", + "items": { + "type": "string" + } + }, + "nodePorts": { + "type": "object", + "properties": { + "http": { + "type": ["string", "integer"] + }, + "https": { + "type": ["string", "integer"] + }, + "tcp": { + "type": "object" + }, + "udp": { + "type": "object" + } + } + }, + "ports": { + "type": "object", + "properties": { + "http": { + "type": "integer" + }, + "https": { + "type": "integer" + } + } + }, + "public": { + "type": "boolean" + }, + "sessionAffinity": { + "type": "string", + "enum": ["", "None", "ClientIP"] + }, + "subdomain": { + "type": "string" + }, + "targetPorts": { + "type": "object", + "properties": { + "http": { + "type": "string" + }, + "https": { + "type": "string" + } + } + }, + "type": { + "type": "string" + } + } + }, + "shareProcessNamespace": { + "type": "boolean" + }, + "startupProbe": { + "type": "object" + }, + "sysctls": { + "type": "object" + }, + "tcp": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "configMapNamespace": { + "type": "string" + } + } + }, + "terminationGracePeriodSeconds": { + "type": "integer" + }, + "tolerations": { + "type": "array" + }, + "topologySpreadConstraints": { + "type": "array", + "items": { + "type": "object" + } + }, + "udp": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "configMapNamespace": { + "type": "string" + } + } + }, + "updateStrategy": { + "type": "object" + }, + "watchIngressWithoutClass": { + "type": "boolean" + } + } + }, + "defaultBackend": { + "type": "object", + "properties": { + "affinity": { + "type": "object" + }, + "autoscaling": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "maxReplicas": { + "type": "integer" + }, + "minReplicas": { + "type": "integer" + }, + "targetCPUUtilizationPercentage": { + "type": "integer" + }, + "targetMemoryUtilizationPercentage": { + "type": "integer" + } + } + }, + "containerSecurityContext": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "existingPsp": { + "type": "string" + }, + "extraArgs": { + "type": "object" + }, + "extraConfigMaps": { + "type": "array" + }, + "extraEnvs": { + "type": "array" + }, + "extraVolumeMounts": { + "type": "array" + }, + "extraVolumes": { + "type": "array" + }, + "image": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "image": { + "type": "string" + }, + "pullPolicy": { + "type": "string" + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object" + }, + "tag": { + "type": "string" + } + } + }, + "labels": { + "type": "object" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer" + }, + "initialDelaySeconds": { + "type": "integer" + }, + "periodSeconds": { + "type": "integer" + }, + "successThreshold": { + "type": "integer" + }, + "timeoutSeconds": { + "type": "integer" + } + } + }, + "minAvailable": { + "type": ["integer", "string"] + }, + "minReadySeconds": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "networkPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "nodeSelector": { + "type": "object", + "properties": { + "kubernetes.io/os": { + "type": "string" + } + } + }, + "podAnnotations": { + "type": "object" + }, + "podLabels": { + "type": "object" + }, + "podSecurityContext": { + "type": "object" + }, + "port": { + "type": "integer" + }, + "priorityClassName": { + "type": "string" + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer" + }, + "initialDelaySeconds": { + "type": "integer" + }, + "periodSeconds": { + "type": "integer" + }, + "successThreshold": { + "type": "integer" + }, + "timeoutSeconds": { + "type": "integer" + } + } + }, + "replicaCount": { + "type": "integer" + }, + "resources": { + "type": "object" + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "externalIPs": { + "type": "array" + }, + "loadBalancerSourceRanges": { + "type": "array" + }, + "servicePort": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + }, + "serviceAccount": { + "type": "object", + "properties": { + "automountServiceAccountToken": { + "type": "boolean" + }, + "create": { + "type": "boolean" + }, + "name": { + "type": "string" + } + } + }, + "tolerations": { + "type": "array" + }, + "topologySpreadConstraints": { + "type": "array" + }, + "updateStrategy": { + "type": "object" + } + } + }, + "dhParam": { + "type": "string" + }, + "fullnameOverride": { + "type": "string" + }, + "global": { + "type": "object", + "properties": { + "podSecurityStandards": { + "type": "object", + "properties": { + "enforced": { + "type": "boolean" + } + } + } + } + }, + "image": { + "type": "object", + "properties": { + "registry": { + "type": "string" + } + } + }, + "imagePullSecrets": { + "type": "array" + }, + "nameOverride": { + "type": "string" + }, + "namespaceOverride": { + "type": "string" + }, + "podSecurityPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "portNamePrefix": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "rbac": { + "type": "object", + "properties": { + "create": { + "type": "boolean" + }, + "scope": { + "type": "boolean" + } + } + }, + "revisionHistoryLimit": { + "type": "integer" + }, + "serviceAccount": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "automountServiceAccountToken": { + "type": "boolean" + }, + "create": { + "type": "boolean" + }, + "name": { + "type": "string" + } + } + }, + "tcp": { + "type": "object" + }, + "udp": { + "type": "object" + } + } +}