diff --git a/charts/kubezero-istio-gateway/Chart.yaml b/charts/kubezero-istio-gateway/Chart.yaml index 507f1c10..f56de414 100644 --- a/charts/kubezero-istio-gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio-gateway description: KubeZero Umbrella Chart for Istio gateways type: application -version: 0.19.5 +version: 0.21.0 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio-gateway/README.md b/charts/kubezero-istio-gateway/README.md index 84c2a14a..669ccaaa 100644 --- a/charts/kubezero-istio-gateway/README.md +++ b/charts/kubezero-istio-gateway/README.md @@ -1,6 +1,6 @@ # kubezero-istio-gateway -![Version: 0.19.4](https://img.shields.io/badge/Version-0.19.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.21.0](https://img.shields.io/badge/Version-0.21.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio gateways @@ -21,7 +21,7 @@ Kubernetes: `>= 1.26.0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://istio-release.storage.googleapis.com/charts | gateway | 1.19.4 | +| https://istio-release.storage.googleapis.com/charts | gateway | 1.21.0 | ## Values @@ -41,6 +41,8 @@ Kubernetes: `>= 1.26.0` | gateway.service.externalTrafficPolicy | string | `"Local"` | | | gateway.service.type | string | `"NodePort"` | | | gateway.terminationGracePeriodSeconds | int | `120` | | +| hardening.rejectUnderscoresHeaders | bool | `true` | | +| hardening.unescapeSlashes | bool | `true` | | | proxyProtocol | bool | `true` | | | telemetry.enabled | bool | `false` | | diff --git a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml index a966097b..1b35b2a6 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 1.19.4 +appVersion: 1.21.0 description: Helm chart for deploying Istio gateways icon: https://istio.io/latest/favicons/android-192x192.png keywords: @@ -9,4 +9,4 @@ name: gateway sources: - https://github.com/istio/istio type: application -version: 1.19.4 +version: 1.21.0 diff --git a/charts/kubezero-istio-gateway/charts/gateway/README.md b/charts/kubezero-istio-gateway/charts/gateway/README.md index 0e58c00f..929188cb 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/README.md +++ b/charts/kubezero-istio-gateway/charts/gateway/README.md @@ -35,6 +35,28 @@ To view support configuration options and documentation, run: helm show values istio/gateway ``` +### Profiles + +Istio Helm charts have a concept of a `profile`, which is a bundled collection of value presets. +These can be set with `--set profile=`. +For example, the `demo` profile offers a preset configuration to try out Istio in a test environment, with additional features enabled and lowered resource requirements. + +For consistency, the same profiles are used across each chart, even if they do not impact a given chart. + +Explicitly set values have highest priority, then profile settings, then chart defaults. + +As an implementation detail of profiles, the default values for the chart are all nested under `defaults`. +When configuring the chart, you should not include this. +That is, `--set some.field=true` should be passed, not `--set defaults.some.field=true`. + +### OpenShift + +When deploying the gateway in an OpenShift cluster, use the `openshift` profile to override the default values, for example: + +```console +helm install istio-ingressgateway istio/gateway -- set profile=openshift +``` + ### `image: auto` Information The image used by the chart, `auto`, may be unintuitive. diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml new file mode 100644 index 00000000..59dd9114 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-ambient.yaml @@ -0,0 +1,25 @@ +# The ambient profile enables ambient mode. The Istiod, CNI, and ztunnel charts must be deployed +meshConfig: + defaultConfig: + proxyMetadata: + ISTIO_META_ENABLE_HBONE: "true" +variant: distroless +pilot: + variant: distroless + env: + # Setup more secure default that is off in 'default' only for backwards compatibility + VERIFY_CERTIFICATE_AT_CLIENT: "true" + ENABLE_AUTO_SNI: "true" + + PILOT_ENABLE_HBONE: "true" + CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel" + PILOT_ENABLE_AMBIENT_CONTROLLERS: "true" +cni: + logLevel: info + privileged: true + ambient: + enabled: true + + # Default excludes istio-system; its actually fine to redirect there since we opt-out istiod, ztunnel, and istio-cni + excludeNamespaces: + - kube-system diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml new file mode 100644 index 00000000..9f0fd563 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.20.yaml @@ -0,0 +1,6 @@ +pilot: + env: + ENABLE_EXTERNAL_NAME_ALIAS: "false" + PERSIST_OLDEST_FIRST_HEURISTIC_FOR_VIRTUAL_SERVICE_HOST_MATCHING: "true" + VERIFY_CERTIFICATE_AT_CLIENT: "false" + ENABLE_AUTO_SNI: "false" diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml new file mode 100644 index 00000000..4ed37fed --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml @@ -0,0 +1,69 @@ +# The demo profile enables a variety of things to try out Istio in non-production environments. +# * Lower resource utilization. +# * Some additional features are enabled by default; especially ones used in some tasks in istio.io. +# * More ports enabled on the ingress, which is used in some tasks. +meshConfig: + accessLogFile: /dev/stdout + extensionProviders: + - name: otel + envoyOtelAls: + service: opentelemetry-collector.istio-system.svc.cluster.local + port: 4317 + - name: skywalking + skywalking: + service: tracing.istio-system.svc.cluster.local + port: 11800 + - name: otel-tracing + opentelemetry: + port: 4317 + service: opentelemetry-collector.otel-collector.svc.cluster.local + +global: + proxy: + resources: + requests: + cpu: 10m + memory: 40Mi + +pilot: + autoscaleEnabled: false + traceSampling: 100 + resources: + requests: + cpu: 10m + memory: 100Mi + +gateways: + istio-egressgateway: + autoscaleEnabled: false + resources: + requests: + cpu: 10m + memory: 40Mi + istio-ingressgateway: + autoscaleEnabled: false + ports: + ## You can add custom gateway ports in user values overrides, but it must include those ports since helm replaces. + # Note that AWS ELB will by default perform health checks on the first port + # on this list. Setting this to the health check port will ensure that health + # checks always work. https://github.com/istio/istio/issues/12503 + - port: 15021 + targetPort: 15021 + name: status-port + - port: 80 + targetPort: 8080 + name: http2 + - port: 443 + targetPort: 8443 + name: https + - port: 31400 + targetPort: 31400 + name: tcp + # This is the port where sni routing happens + - port: 15443 + targetPort: 15443 + name: tls + resources: + requests: + cpu: 10m + memory: 40Mi \ No newline at end of file diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift.yaml new file mode 100644 index 00000000..6f32659a --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-openshift.yaml @@ -0,0 +1,18 @@ +# The OpenShift profile provides a basic set of settings to run Istio on OpenShift +# CNI must be installed. +cni: + cniBinDir: /var/lib/cni/bin + cniConfDir: /etc/cni/multus/net.d + chained: false + cniConfFileName: "istio-cni.conf" + excludeNamespaces: + - istio-system + - kube-system + logLevel: info + privileged: true + provider: "multus" +global: + platform: openshift +istio_cni: + enabled: true + chained: false \ No newline at end of file diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-preview.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-preview.yaml new file mode 100644 index 00000000..390ed749 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-preview.yaml @@ -0,0 +1,9 @@ +# The preview profile contains features that are experimental. +# This is intended to explore new features coming to Istio. +# Stability, security, and performance are not guaranteed - use at your own risk. +meshConfig: + defaultConfig: + proxyMetadata: + # Enable Istio agent to handle DNS requests for known hosts + # Unknown hosts will automatically be resolved using upstream dns servers in resolv.conf + ISTIO_META_DNS_CAPTURE: "true" diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml index a141ccde..2573653b 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml @@ -46,6 +46,10 @@ spec: - name: net.ipv4.ip_unprivileged_port_start value: "0" {{- end }} + {{- with .Values.volumes }} + volumes: + {{ toYaml . | nindent 8 }} + {{- end }} containers: - name: istio-proxy # "auto" will be populated at runtime by the mutating webhook. See https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#customizing-injection @@ -94,9 +98,9 @@ spec: name: http-envoy-prom resources: {{- toYaml .Values.resources | nindent 12 }} - {{- if .Values.volumeMounts }} + {{- with .Values.volumeMounts }} volumeMounts: - {{- toYaml .Values.volumeMounts | nindent 12 }} + {{ toYaml . | nindent 12 }} {{- end }} {{- with .Values.nodeSelector }} nodeSelector: @@ -118,7 +122,3 @@ spec: {{- with .Values.priorityClassName }} priorityClassName: {{ . }} {{- end }} - {{- with .Values.volumes }} - volumes: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/hpa.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/hpa.yaml index e287406c..d95768ac 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/hpa.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/hpa.yaml @@ -28,4 +28,15 @@ spec: averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} type: Utilization {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + type: Utilization + {{- end }} + {{- if .Values.autoscaling.autoscaleBehavior }} + behavior: {{ toYaml .Values.autoscaling.autoscaleBehavior | nindent 4 }} + {{- end }} {{- end }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml index 66c17c38..db7fc004 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml @@ -15,12 +15,19 @@ spec: {{- with .Values.service.loadBalancerIP }} loadBalancerIP: "{{ . }}" {{- end }} -{{- with .Values.service.ipFamilyPolicy }} - ipFamilyPolicy: "{{ . }}" +{{- if eq .Values.service.type "LoadBalancer" }} + {{- if hasKey .Values.service "allocateLoadBalancerNodePorts" }} + allocateLoadBalancerNodePorts: {{ .Values.service.allocateLoadBalancerNodePorts }} + {{- end }} {{- end }} -{{- with .Values.service.ipFamilies }} +{{- if .Values.service.ipFamilyPolicy }} + ipFamilyPolicy: {{ .Values.service.ipFamilyPolicy }} +{{- end }} +{{- if .Values.service.ipFamilies }} ipFamilies: -{{ toYaml . | indent 4 }} +{{- range .Values.service.ipFamilies }} + - {{ . }} +{{- end }} {{- end }} {{- with .Values.service.loadBalancerSourceRanges }} loadBalancerSourceRanges: diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml new file mode 100644 index 00000000..6588debf --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml @@ -0,0 +1,34 @@ +{{/* +Complex logic ahead... +We have three sets of values, in order of precedence (last wins): +1. The builtin values.yaml defaults +2. The profile the user selects +3. Users input (-f or --set) + +Unfortunately, Helm provides us (1) and (3) together (as .Values), making it hard to insert (2). + +However, we can workaround this by placing all of (1) under a specific key (.Values.defaults). +We can then merge the profile onto the defaults, then the user settings onto that. +Finally, we can set all of that under .Values so the chart behaves without awareness. +*/}} +{{- $defaults := $.Values.defaults }} +{{- $_ := unset $.Values "defaults" }} +{{- $profile := dict }} +{{- with .Values.profile }} +{{- with $.Files.Get (printf "files/profile-%s.yaml" .)}} +{{- $profile = (. | fromYaml) }} +{{- else }} +{{ fail (cat "unknown profile" $.Values.profile) }} +{{- end }} +{{- end }} +{{- with .Values.compatibilityVersion }} +{{- with $.Files.Get (printf "files/profile-compatibility-version-%s.yaml" .) }} +{{- $ignore := mustMergeOverwrite $profile (. | fromYaml) }} +{{- else }} +{{ fail (cat "unknown compatibility version" $.Values.compatibilityVersion) }} +{{- end }} +{{- end }} +{{- if $profile }} +{{- $a := mustMergeOverwrite $defaults $profile }} +{{- end }} +{{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/values.schema.json b/charts/kubezero-istio-gateway/charts/gateway/values.schema.json index 1b78615d..c97d84c1 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/values.schema.json +++ b/charts/kubezero-istio-gateway/charts/gateway/values.schema.json @@ -2,240 +2,300 @@ "$schema": "http://json-schema.org/schema#", "type": "object", "additionalProperties": false, - "properties": { - "global": { - "type": "object" - }, - "affinity": { - "type": "object" - }, - "securityContext": { - "type": ["object", "null"] - }, - "containerSecurityContext": { - "type": ["object", "null"] - }, - "kind":{ - "type": "string", - "enum": ["Deployment", "DaemonSet"] - }, - "annotations": { - "additionalProperties": { - "type": [ - "string", - "integer" - ] - }, - "type": "object" - }, - "autoscaling": { + "$defs": { + "values": { "type": "object", "properties": { - "enabled": { - "type": "boolean" - }, - "maxReplicas": { - "type": "integer" - }, - "minReplicas": { - "type": "integer" - }, - "targetCPUUtilizationPercentage": { - "type": "integer" - } - } - }, - "env": { - "type": "object" - }, - "labels": { - "type": "object" - }, - "volumes": { - "type": "array" - }, - "volumeMounts": { - "type": "array" - }, - "name": { - "type": "string" - }, - "nodeSelector": { - "type": "object" - }, - "podAnnotations": { - "type": "object", - "properties": { - "inject.istio.io/templates": { - "type": "string" - }, - "prometheus.io/path": { - "type": "string" - }, - "prometheus.io/port": { - "type": "string" - }, - "prometheus.io/scrape": { - "type": "string" - } - } - }, - "replicaCount": { - "type": [ "integer", "null" ] - }, - "resources": { - "type": "object", - "properties": { - "limits": { - "type": "object", - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - } - }, - "requests": { - "type": "object", - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - } - } - } - }, - "revision": { - "type": "string" - }, - "runAsRoot": { - "type": "boolean" - }, - "unprivilegedPort": { - "type": ["string", "boolean"], - "enum": [true, false, "auto"] - }, - "service": { - "type": "object", - "properties": { - "annotations": { + "global": { "type": "object" }, - "externalTrafficPolicy": { + "affinity": { + "type": "object" + }, + "securityContext": { + "type": [ + "object", + "null" + ] + }, + "containerSecurityContext": { + "type": [ + "object", + "null" + ] + }, + "kind": { + "type": "string", + "enum": [ + "Deployment", + "DaemonSet" + ] + }, + "annotations": { + "additionalProperties": { + "type": [ + "string", + "integer" + ] + }, + "type": "object" + }, + "autoscaling": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "maxReplicas": { + "type": "integer" + }, + "minReplicas": { + "type": "integer" + }, + "targetCPUUtilizationPercentage": { + "type": "integer" + } + } + }, + "env": { + "type": "object" + }, + "labels": { + "type": "object" + }, + "name": { "type": "string" }, - "loadBalancerIP": { + "nodeSelector": { + "type": "object" + }, + "podAnnotations": { + "type": "object", + "properties": { + "inject.istio.io/templates": { + "type": "string" + }, + "prometheus.io/path": { + "type": "string" + }, + "prometheus.io/port": { + "type": "string" + }, + "prometheus.io/scrape": { + "type": "string" + } + } + }, + "replicaCount": { + "type": [ + "integer", + "null" + ] + }, + "resources": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + } + } + }, + "revision": { "type": "string" }, - "loadBalancerSourceRanges": { + "compatibilityVersion": { + "type": "string" + }, + "runAsRoot": { + "type": "boolean" + }, + "unprivilegedPort": { + "type": [ + "string", + "boolean" + ], + "enum": [ + true, + false, + "auto" + ] + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "externalTrafficPolicy": { + "type": "string" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "type": "array" + }, + "ipFamilies": { + "items": { + "type": "string", + "enum": [ + "IPv4", + "IPv6" + ] + } + }, + "ipFamilyPolicy": { + "type": "string", + "enum": [ + "", + "SingleStack", + "PreferDualStack", + "RequireDualStack" + ] + }, + "ports": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "targetPort": { + "type": "integer" + } + } + } + }, + "type": { + "type": "string" + } + } + }, + "serviceAccount": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "name": { + "type": "string" + }, + "create": { + "type": "boolean" + } + } + }, + "rbac": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "tolerations": { "type": "array" }, - "ipFamilies" : { - "items": { - "type": "string", - "enum": ["IPv4", "IPv6"] - } + "topologySpreadConstraints": { + "type": "array" }, - "ipFamilyPolicy" : { + "networkGateway": { + "type": "string" + }, + "imagePullPolicy": { "type": "string", - "enum": ["", "SingleStack", "PreferDualStack", "RequireDualStack"] + "enum": [ + "", + "Always", + "IfNotPresent", + "Never" + ] }, - "ports": { + "imagePullSecrets": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" - }, - "port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "targetPort": { - "type": "integer" } } } }, - "type": { - "type": "string" - } - } - }, - "serviceAccount": { - "type": "object", - "properties": { - "annotations": { - "type": "object" - }, - "name": { - "type": "string" - }, - "create": { - "type": "boolean" - } - } - }, - "rbac": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } - }, - "tolerations": { - "type": "array" - }, - "topologySpreadConstraints": { - "type": "array" - }, - "networkGateway": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string", - "enum": ["", "Always", "IfNotPresent", "Never"] - }, - "imagePullSecrets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" + "podDisruptionBudget": { + "type": "object", + "properties": { + "minAvailable": { + "type": [ + "integer", + "string" + ] + }, + "maxUnavailable": { + "type": [ + "integer", + "string" + ] + }, + "unhealthyPodEvictionPolicy": { + "type": "string", + "enum": [ + "", + "IfHealthyBudget", + "AlwaysAllow" + ] + } } + }, + "terminationGracePeriodSeconds": { + "type": "number" + }, + "volumes": { + "type": "array", + "items": { + "type": "object" + } + }, + "volumeMounts": { + "type": "array", + "items": { + "type": "object" + } + }, + "priorityClassName": { + "type": "string" } } - }, - "podDisruptionBudget": { - "type": "object", - "properties": { - "minAvailable": { - "type": ["integer", "string"] - }, - "maxUnavailable": { - "type": ["integer", "string"] - }, - "unhealthyPodEvictionPolicy": { - "type": "string", - "enum": ["", "IfHealthyBudget", "AlwaysAllow"] - } - } - }, - "terminationGracePeriodSeconds": { - "type": "number" - }, - "priorityClassName": { - "type": "string" } - } + }, + "defaults": { + "$ref": "#/$defs/values" + }, + "$ref": "#/$defs/values" } diff --git a/charts/kubezero-istio-gateway/charts/gateway/values.yaml b/charts/kubezero-istio-gateway/charts/gateway/values.yaml index e785dcb5..a74a3ab7 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/values.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/values.yaml @@ -1,139 +1,152 @@ -# Name allows overriding the release name. Generally this should not be set -name: "" -# revision declares which revision this gateway is a part of -revision: "" - -# Controls the spec.replicas setting for the Gateway deployment if set. -# Otherwise defaults to Kubernetes Deployment default (1). -replicaCount: - -kind: Deployment - -rbac: - # If enabled, roles will be created to enable accessing certificates from Gateways. This is not needed - # when using http://gateway-api.org/. - enabled: true - -serviceAccount: - # If set, a service account will be created. Otherwise, the default is used - create: true - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set, the release name is used +defaults: + # Name allows overriding the release name. Generally this should not be set name: "" + # revision declares which revision this gateway is a part of + revision: "" -podAnnotations: - prometheus.io/port: "15020" - prometheus.io/scrape: "true" - prometheus.io/path: "/stats/prometheus" - inject.istio.io/templates: "gateway" - sidecar.istio.io/inject: "true" + # Controls the spec.replicas setting for the Gateway deployment if set. + # Otherwise defaults to Kubernetes Deployment default (1). + replicaCount: -# Define the security context for the pod. -# If unset, this will be automatically set to the minimum privileges required to bind to port 80 and 443. -# On Kubernetes 1.22+, this only requires the `net.ipv4.ip_unprivileged_port_start` sysctl. -securityContext: ~ -containerSecurityContext: ~ + kind: Deployment -service: - # Type of service. Set to "None" to disable the service entirely - type: LoadBalancer - ports: - - name: status-port - port: 15021 - protocol: TCP - targetPort: 15021 - - name: http2 - port: 80 - protocol: TCP - targetPort: 80 - - name: https - port: 443 - protocol: TCP - targetPort: 443 + rbac: + # If enabled, roles will be created to enable accessing certificates from Gateways. This is not needed + # when using http://gateway-api.org/. + enabled: true + + serviceAccount: + # If set, a service account will be created. Otherwise, the default is used + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set, the release name is used + name: "" + + podAnnotations: + prometheus.io/port: "15020" + prometheus.io/scrape: "true" + prometheus.io/path: "/stats/prometheus" + inject.istio.io/templates: "gateway" + sidecar.istio.io/inject: "true" + + # Define the security context for the pod. + # If unset, this will be automatically set to the minimum privileges required to bind to port 80 and 443. + # On Kubernetes 1.22+, this only requires the `net.ipv4.ip_unprivileged_port_start` sysctl. + securityContext: ~ + containerSecurityContext: ~ + + service: + # Type of service. Set to "None" to disable the service entirely + type: LoadBalancer + ports: + - name: status-port + port: 15021 + protocol: TCP + targetPort: 15021 + - name: http2 + port: 80 + protocol: TCP + targetPort: 80 + - name: https + port: 443 + protocol: TCP + targetPort: 443 + annotations: {} + loadBalancerIP: "" + loadBalancerSourceRanges: [] + externalTrafficPolicy: "" + externalIPs: [] + ipFamilyPolicy: "" + ipFamilies: [] + ## Whether to automatically allocate NodePorts (only for LoadBalancers). + # allocateLoadBalancerNodePorts: false + + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 2000m + memory: 1024Mi + + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: {} + autoscaleBehavior: {} + + # Pod environment variables + env: {} + + # Labels to apply to all resources + labels: {} + + # Annotations to apply to all resources annotations: {} - loadBalancerIP: "" - loadBalancerSourceRanges: [] - externalTrafficPolicy: "" - externalIPs: [] - ipFamilyPolicy: "" - ipFamilies: [] -resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: 2000m - memory: 1024Mi + nodeSelector: {} -autoscaling: - enabled: true - minReplicas: 1 - maxReplicas: 5 - targetCPUUtilizationPercentage: 80 + tolerations: [] -# Pod environment variables -env: {} + topologySpreadConstraints: [] -# Labels to apply to all resources -labels: {} + affinity: {} -# Annotations to apply to all resources -annotations: {} + # If specified, the gateway will act as a network gateway for the given network. + networkGateway: "" -nodeSelector: {} + # Specify image pull policy if default behavior isn't desired. + # Default behavior: latest images will be Always else IfNotPresent + imagePullPolicy: "" -tolerations: [] + imagePullSecrets: [] -topologySpreadConstraints: [] + # This value is used to configure a Kubernetes PodDisruptionBudget for the gateway. + # + # By default, the `podDisruptionBudget` is disabled (set to `{}`), + # which means that no PodDisruptionBudget resource will be created. + # + # To enable the PodDisruptionBudget, configure it by specifying the + # `minAvailable` or `maxUnavailable`. For example, to set the + # minimum number of available replicas to 1, you can update this value as follows: + # + # podDisruptionBudget: + # minAvailable: 1 + # + # Or, to allow a maximum of 1 unavailable replica, you can set: + # + # podDisruptionBudget: + # maxUnavailable: 1 + # + # You can also specify the `unhealthyPodEvictionPolicy` field, and the valid values are `IfHealthyBudget` and `AlwaysAllow`. + # For example, to set the `unhealthyPodEvictionPolicy` to `AlwaysAllow`, you can update this value as follows: + # + # podDisruptionBudget: + # minAvailable: 1 + # unhealthyPodEvictionPolicy: AlwaysAllow + # + # To disable the PodDisruptionBudget, you can leave it as an empty object `{}`: + # + # podDisruptionBudget: {} + # + podDisruptionBudget: {} -affinity: {} + terminationGracePeriodSeconds: 30 -# If specified, the gateway will act as a network gateway for the given network. -networkGateway: "" + # A list of `Volumes` added into the Gateway Pods. See + # https://kubernetes.io/docs/concepts/storage/volumes/. + volumes: [] -# Specify image pull policy if default behavior isn't desired. -# Default behavior: latest images will be Always else IfNotPresent -imagePullPolicy: "" + # A list of `VolumeMounts` added into the Gateway Pods. See + # https://kubernetes.io/docs/concepts/storage/volumes/. + volumeMounts: [] -imagePullSecrets: [] - -# This value is used to configure a Kubernetes PodDisruptionBudget for the gateway. -# -# By default, the `podDisruptionBudget` is disabled (set to `{}`), -# which means that no PodDisruptionBudget resource will be created. -# -# To enable the PodDisruptionBudget, configure it by specifying the -# `minAvailable` or `maxUnavailable`. For example, to set the -# minimum number of available replicas to 1, you can update this value as follows: -# -# podDisruptionBudget: -# minAvailable: 1 -# -# Or, to allow a maximum of 1 unavailable replica, you can set: -# -# podDisruptionBudget: -# maxUnavailable: 1 -# -# You can also specify the `unhealthyPodEvictionPolicy` field, and the valid values are `IfHealthyBudget` and `AlwaysAllow`. -# For example, to set the `unhealthyPodEvictionPolicy` to `AlwaysAllow`, you can update this value as follows: -# -# podDisruptionBudget: -# minAvailable: 1 -# unhealthyPodEvictionPolicy: AlwaysAllow -# -# To disable the PodDisruptionBudget, you can leave it as an empty object `{}`: -# -# podDisruptionBudget: {} -# -podDisruptionBudget: {} - -terminationGracePeriodSeconds: 30 - -# Configure this to a higher priority class in order to make sure your Istio gateway pods -# will not be killed because of low priority class. -# Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass -# for more detail. -priorityClassName: "" + # Configure this to a higher priority class in order to make sure your Istio gateway pods + # will not be killed because of low priority class. + # Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass + # for more detail. + priorityClassName: "" diff --git a/charts/kubezero-istio-gateway/gateway.patch b/charts/kubezero-istio-gateway/gateway.patch index 91a964df..bb7ea2c7 100644 --- a/charts/kubezero-istio-gateway/gateway.patch +++ b/charts/kubezero-istio-gateway/gateway.patch @@ -11,25 +11,6 @@ diff -tubr charts/gateway.orig/templates/deployment.yaml charts/gateway/template selector: matchLabels: {{- include "gateway.selectorLabels" . | nindent 6 }} -@@ -86,6 +90,10 @@ - name: http-envoy-prom - resources: - {{- toYaml .Values.resources | nindent 12 }} -+ {{- if .Values.volumeMounts }} -+ volumeMounts: -+ {{- toYaml .Values.volumeMounts | nindent 12 }} -+ {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} -@@ -102,3 +110,7 @@ - topologySpreadConstraints: - {{- toYaml . | nindent 8 }} - {{- end }} -+ {{- with .Values.volumes }} -+ volumes: -+ {{- toYaml . | nindent 8 }} -+ {{- end }} diff -tubr charts/gateway.orig/templates/service.yaml charts/gateway/templates/service.yaml --- charts/gateway.orig/templates/service.yaml 2022-12-09 14:58:33.000000000 +0000 +++ charts/gateway/templates/service.yaml 2022-12-12 22:52:27.629670669 +0000 @@ -49,19 +30,3 @@ diff -tubr charts/gateway.orig/templates/service.yaml charts/gateway/templates/s {{- end }} {{- if .Values.service.externalIPs }} externalIPs: {{- range .Values.service.externalIPs }} -diff -tubr charts/gateway.orig/values.schema.json charts/gateway/values.schema.json ---- charts/gateway.orig/values.schema.json 2022-12-09 14:58:33.000000000 +0000 -+++ charts/gateway/values.schema.json 2022-12-12 22:52:27.629670669 +0000 -@@ -51,6 +51,12 @@ - "labels": { - "type": "object" - }, -+ "volumes": { -+ "type": "array" -+ }, -+ "volumeMounts": { -+ "type": "array" -+ }, - "name": { - "type": "string" - }, diff --git a/charts/kubezero-istio/Chart.yaml b/charts/kubezero-istio/Chart.yaml index 5c91f376..896d36e4 100644 --- a/charts/kubezero-istio/Chart.yaml +++ b/charts/kubezero-istio/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio description: KubeZero Umbrella Chart for Istio type: application -version: 0.19.5 +version: 0.21.0 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio/README.md b/charts/kubezero-istio/README.md index a1f0327c..ae9ee22e 100644 --- a/charts/kubezero-istio/README.md +++ b/charts/kubezero-istio/README.md @@ -1,6 +1,6 @@ # kubezero-istio -![Version: 0.19.4](https://img.shields.io/badge/Version-0.19.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.21.0](https://img.shields.io/badge/Version-0.21.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio @@ -21,9 +21,9 @@ Kubernetes: `>= 1.26.0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://istio-release.storage.googleapis.com/charts | base | 1.19.4 | -| https://istio-release.storage.googleapis.com/charts | istiod | 1.19.4 | -| https://kiali.org/helm-charts | kiali-server | 1.76.0 | +| https://istio-release.storage.googleapis.com/charts | base | 1.21.0 | +| https://istio-release.storage.googleapis.com/charts | istiod | 1.21.0 | +| https://kiali.org/helm-charts | kiali-server | 1.82.0 | ## Values diff --git a/charts/kubezero-istio/dashboards.yaml b/charts/kubezero-istio/dashboards.yaml index fe1fda3c..8d120846 100644 --- a/charts/kubezero-istio/dashboards.yaml +++ b/charts/kubezero-istio/dashboards.yaml @@ -5,18 +5,18 @@ folder: Istio condition: '.Values.istiod.telemetry.enabled' dashboards: - name: istio-control-plane - url: https://grafana.com/api/dashboards/7645/revisions/187/download + url: https://grafana.com/api/dashboards/7645/revisions/201/download tags: - Istio - name: istio-mesh - url: https://grafana.com/api/dashboards/7639/revisions/187/download + url: https://grafana.com/api/dashboards/7639/revisions/201/download tags: - Istio - name: istio-service - url: https://grafana.com/api/dashboards/7636/revisions/187/download + url: https://grafana.com/api/dashboards/7636/revisions/201/download tags: - Istio - name: istio-workload - url: https://grafana.com/api/dashboards/7630/revisions/187/download + url: https://grafana.com/api/dashboards/7630/revisions/201/download tags: - Istio diff --git a/charts/kubezero-istio/templates/grafana-dashboards.yaml b/charts/kubezero-istio/templates/grafana-dashboards.yaml index fffc2b6e..9231bc2b 100644 --- a/charts/kubezero-istio/templates/grafana-dashboards.yaml +++ b/charts/kubezero-istio/templates/grafana-dashboards.yaml @@ -11,11 +11,11 @@ metadata: k8s-sidecar-target-directory: Istio binaryData: istio-control-plane.json.gz: - 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 istio-mesh.json.gz: - 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 istio-service.json.gz: - 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 istio-workload.json.gz: - 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 {{- end }} diff --git a/charts/kubezero/values.yaml b/charts/kubezero/values.yaml index 44205976..7d3a02a7 100644 --- a/charts/kubezero/values.yaml +++ b/charts/kubezero/values.yaml @@ -58,13 +58,13 @@ storage: istio: enabled: false namespace: istio-system - targetRevision: 0.19.4 + targetRevision: 0.21.0 istio-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.19.4 + targetRevision: 0.21.0 gateway: service: {} @@ -72,7 +72,7 @@ istio-private-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.19.4 + targetRevision: 0.21.0 gateway: service: {}