diff --git a/assets/kasten/k10-5.5.100.tgz b/assets/kasten/k10-5.5.100.tgz index fd11fb6b7..2d42f1861 100644 Binary files a/assets/kasten/k10-5.5.100.tgz and b/assets/kasten/k10-5.5.100.tgz differ diff --git a/assets/kasten/k10-5.5.201.tgz b/assets/kasten/k10-5.5.201.tgz index 0fa417744..c787929e9 100644 Binary files a/assets/kasten/k10-5.5.201.tgz and b/assets/kasten/k10-5.5.201.tgz differ diff --git a/assets/kasten/k10-5.5.301.tgz b/assets/kasten/k10-5.5.301.tgz index 74c48f789..af2adcac3 100644 Binary files a/assets/kasten/k10-5.5.301.tgz and b/assets/kasten/k10-5.5.301.tgz differ diff --git a/assets/kasten/k10-5.5.401.tgz b/assets/kasten/k10-5.5.401.tgz index 5d32af855..384e03fca 100644 Binary files a/assets/kasten/k10-5.5.401.tgz and b/assets/kasten/k10-5.5.401.tgz differ diff --git a/charts/kasten/k10/Chart.lock b/charts/kasten/k10/Chart.lock new file mode 100644 index 000000000..ec9ffbfae --- /dev/null +++ b/charts/kasten/k10/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: grafana + repository: "" + version: 6.32.9 +- name: prometheus + repository: "" + version: 15.8.5 +digest: sha256:4399c78f4e445e4fbb26151707c9b481fece2002ac02ae20612d9f26e6b66643 +generated: "2023-01-30T15:49:57.609147621Z" diff --git a/charts/kasten/k10/Chart.yaml b/charts/kasten/k10/Chart.yaml index 1ca314922..c4dbcf4cd 100644 --- a/charts/kasten/k10/Chart.yaml +++ b/charts/kasten/k10/Chart.yaml @@ -5,7 +5,14 @@ annotations: catalog.cattle.io/kube-version: '>= 1.17.0-0' catalog.cattle.io/release-name: k10 apiVersion: v2 -appVersion: 5.5.2 +appVersion: 5.5.4 +dependencies: +- name: grafana + repository: file://./charts/grafana + version: 6.32.9 +- name: prometheus + repository: file://./charts/prometheus + version: 15.8.5 description: Kasten’s K10 Data Management Platform home: https://kasten.io/ icon: https://docs.kasten.io/_static/logo-kasten-k10-blue-white.png @@ -13,4 +20,4 @@ maintainers: - email: contact@kasten.io name: kastenIO name: k10 -version: 5.5.201 +version: 5.5.401 diff --git a/charts/kasten/k10/README.md b/charts/kasten/k10/README.md index 04bccf3dd..31a0ad352 100644 --- a/charts/kasten/k10/README.md +++ b/charts/kasten/k10/README.md @@ -176,14 +176,39 @@ Parameter | Description | Default `injectKanisterSidecar.webhookServer.port` | Port number on which the mutating webhook server accepts request | `8080` `gateway.insecureDisableSSLVerify` | Specifies whether to disable SSL verification for gateway pods | `false` `gateway.exposeAdminPort` | Specifies whether to expose Admin port for gateway service | `true` +`gateway.resources.[requests\|limits].[cpu\|memory]` | Resource requests and limits for gateway pod | `{}` `genericVolumeSnapshot.resources.[requests\|limits].[cpu\|memory]` | Resource requests and limits for Generic Volume Snapshot restore pods | `{}` -`prometheus.server.enabled` | If false, K10's Prometheus server will not be created, reducing the dashboard's functionality. | `true` -`prometheus.server.persistentVolume.enabled` | If true, K10 Prometheus server will create a Persistent Volume Claim | `true` -`prometheus.server.persistentVolume.size` | K10 Prometheus server data Persistent Volume size | `30Gi` -`prometheus.server.persistentVolume.storageClass` | StorageClassName used to create Prometheus PVC. Setting this option overwrites global StorageClass value | `""` +`prometheus.k10image.registry` | (optional) Set Prometheus image registry. | `gcr.io` +`prometheus.k10image.repository` | (optional) Set Prometheus image repository. | `kasten-images` +`prometheus.initChownData.enabled` | (optional) Prometheus init container configuration. Enable `initChownData` init container | `false` +`prometheus.rbac.create` | (optional) Whether to create Prometheus RBAC configuration. Warning - this action will allow prometheus to scrape pods in all k8s namespaces | `false` +`prometheus.alertmanager.enabled` | (optional) Enable Prometheus `alertmanager` service | `false` +`prometheus.kubeStateMetrics.enabled` | (optional) Enable Prometheus `kubeStateMetrics` service | `false` +`prometheus.networkPolicy.enabled` | (optional) Enable Prometheus `networkPolicy` | `false` +`prometheus.nodeExporter.enabled` | (optional) Enable Prometheus `nodeExporter` | `false` +`prometheus.pushgateway.enabled` | (optional) Enable Prometheus `pushgateway` | `false` +`prometheus.scrapeCAdvisor` | (optional) Enable Prometheus ScrapeCAdvisor | `false` +`prometheus.server.enabled` | (optional) If false, K10's Prometheus server will not be created, reducing the dashboard's functionality. | `true` +`prometheus.server.securityContext.runAsUser` | (optional) Set security context `runAsUser` ID for Prometheus server pod | `65534` +`prometheus.server.securityContext.runAsNonRoot` | (optional) Enable security context `runAsNonRoot` for Prometheus server pod | `true` +`prometheus.server.securityContext.runAsGroup` | (optional) Set security context `runAsGroup` ID for Prometheus server pod | `65534` +`prometheus.server.securityContext.fsGroup` | (optional) Set security context `fsGroup` ID for Prometheus server pod | `65534` `prometheus.server.retention` | (optional) K10 Prometheus data retention | `"30d"` +`prometheus.server.strategy.rollingUpdate.maxSurge` | (optional) The number of Prometheus server pods that can be created above the desired amount of pods during an update | `"100%"` +`prometheus.server.strategy.rollingUpdate.maxUnavailable` | (optional) The number of Prometheus server pods that can be unavailable during the upgrade process | `"100%"` +`prometheus.server.strategy.type` | (optional) Change default deployment strategy for Prometheus server | `"RollingUpdate"` +`prometheus.server.persistentVolume.enabled` | (optional) If true, K10 Prometheus server will create a Persistent Volume Claim | `true` +`prometheus.server.persistentVolume.size` | (optional) K10 Prometheus server data Persistent Volume size | `30Gi` +`prometheus.server.persistentVolume.storageClass` | (optional) StorageClassName used to create Prometheus PVC. Setting this option overwrites global StorageClass value | `""` +`prometheus.server.configMapOverrideName` | (optional) Prometheus configmap name to override default generated name| `k10-prometheus-config` +`prometheus.server.fullnameOverride` | (optional) Prometheus deployment name to override default generated name| `prometheus-server` `prometheus.server.baseURL` | (optional) K10 Prometheus external url path at which the server can be accessed | `/k10/prometheus/` `prometheus.server.prefixURL` | (optional) K10 Prometheus prefix slug at which the server can be accessed | `/k10/prometheus/` +`prometheus.server.serviceAccounts.alertmanager.create` | (optional) Set true to create ServiceAccount for Prometheus `Alertmanager` service | `false` +`prometheus.server.serviceAccounts.kubeStateMetrics.create` | (optional) Set true to create ServiceAccount for Prometheus `kubeStateMetrics` service | `false` +`prometheus.server.serviceAccounts.nodeExporter.create` | (optional) Set true to create ServiceAccount for Prometheus `nodeExporter` service | `false` +`prometheus.server.serviceAccounts.pushgateway.create` | (optional) Set true to create ServiceAccount for Prometheus `pushgateway` service | `false` +`prometheus.server.serviceAccounts.server.create` | (optional) Set true to create ServiceAccount for Prometheus server service | `true` `grafana.enabled` | (optional) If false Grafana will not be available | `true` `grafana.prometheusPrefixURL` | (optional) URL for Prometheus datasource in Grafana (must match `prometheus.server.prefixURL`) | `/k10/prometheus/` `resources...[requests\|limits].[cpu\|memory]` | Overwrite default K10 [container resource requests and limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) | varies by container diff --git a/charts/kasten/k10/charts/grafana/templates/_definitions.tpl b/charts/kasten/k10/charts/grafana/templates/_definitions.tpl index c5461d088..e2dffc5bb 100644 --- a/charts/kasten/k10/charts/grafana/templates/_definitions.tpl +++ b/charts/kasten/k10/charts/grafana/templates/_definitions.tpl @@ -1,3 +1,4 @@ {{/* Autogenerated, do NOT modify */}} {{- define "k10.grafanaImageTag" -}}9.1.5{{- end -}} -{{- define "k10.grafanaInitContainerImageTag" -}}8.7-923.1669829893{{- end -}} +{{- define "k10.grafanaInitContainerImageRepo" -}}registry.access.redhat.com/ubi9/ubi-minimal{{- end -}} +{{- define "k10.grafanaInitContainerImageTag" -}}9.1.0-1656.1669627757{{- end -}} diff --git a/charts/kasten/k10/charts/grafana/templates/_helpers.tpl b/charts/kasten/k10/charts/grafana/templates/_helpers.tpl index d8ee8b1a2..6f6985452 100644 --- a/charts/kasten/k10/charts/grafana/templates/_helpers.tpl +++ b/charts/kasten/k10/charts/grafana/templates/_helpers.tpl @@ -253,10 +253,17 @@ based on the value of global.airgapped.repository {{- if .Values.global.upstreamCertifiedImages }} {{- printf "%s/%s/ubi-minimal" .Values.k10image.registry .Values.k10image.repository }} {{- else }} -{{- print .Values.ubi.image.repository }} +{{- include "k10.grafanaInitContainerImageRepo" . }} {{- end }} {{- end }} +{{/* +Figure out the Grafana init image +*/}} +{{- define "get.grafanaInitImage" }} +{{- .Values.global.images.init | default (include "get.grafanaInitContainerImage" .) }} +{{- end }} + {{/* Figure out the config based on the value of airgapped.repository diff --git a/charts/kasten/k10/charts/grafana/templates/_pod.tpl b/charts/kasten/k10/charts/grafana/templates/_pod.tpl index 6d6973114..09c8b27b2 100644 --- a/charts/kasten/k10/charts/grafana/templates/_pod.tpl +++ b/charts/kasten/k10/charts/grafana/templates/_pod.tpl @@ -21,8 +21,8 @@ initContainers: {{- end }} {{- if ( and .Values.global.persistence.enabled .Values.initChownData.enabled ) }} - name: init-chown-data - image: "{{ include "get.grafanaInitContainerImage" . }}" - imagePullPolicy: {{ .Values.ubi.image.pullPolicy }} + image: "{{ include "get.grafanaInitImage" . }}" + imagePullPolicy: {{ .Values.initChownData.image.pullPolicy }} securityContext: runAsNonRoot: false runAsUser: 0 @@ -41,7 +41,7 @@ initContainers: {{- if .Values.downloadDashboardsImage.sha }} image: "{{ .Values.downloadDashboardsImage.repository }}:{{ .Values.downloadDashboardsImage.tag }}@sha256:{{ .Values.downloadDashboardsImage.sha }}" {{- else }} - image: "{{ include "get.grafanaInitContainerImage" . }}" + image: "{{ include "get.grafanaInitImage" . }}" {{- end }} imagePullPolicy: {{ .Values.downloadDashboardsImage.pullPolicy }} command: ["/bin/sh"] diff --git a/charts/kasten/k10/charts/grafana/values.yaml b/charts/kasten/k10/charts/grafana/values.yaml index 70d99df85..20599946c 100644 --- a/charts/kasten/k10/charts/grafana/values.yaml +++ b/charts/kasten/k10/charts/grafana/values.yaml @@ -5,13 +5,6 @@ enabled: true prometheusName: prometheus-server prometheusPrefixURL: /k10/prometheus -#general purpose image for init container -ubi: - image: - repository: registry.access.redhat.com/ubi8/ubi-minimal - tag: 8.7-923.1669829893 - pullPolicy: IfNotPresent - k10image: registry: gcr.io repository: kasten-images @@ -336,11 +329,11 @@ initChownData: ## initChownData container image ## -# image: -# repository: busybox -# tag: "1.31.1" -# sha: "" -# pullPolicy: IfNotPresent + image: + pullPolicy: IfNotPresent +# repository: busybox +# tag: "1.31.1" +# sha: "" ## initChownData resource requests and limits ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/ diff --git a/charts/kasten/k10/charts/prometheus/Chart.yaml b/charts/kasten/k10/charts/prometheus/Chart.yaml index 315edf4d4..bbf372867 100644 --- a/charts/kasten/k10/charts/prometheus/Chart.yaml +++ b/charts/kasten/k10/charts/prometheus/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 2.34.0 +appVersion: 5.5.4 dependencies: - condition: kubeStateMetrics.enabled name: kube-state-metrics diff --git a/charts/kasten/k10/charts/prometheus/templates/_definitions.tpl b/charts/kasten/k10/charts/prometheus/templates/_definitions.tpl index 67f989898..c72568d1a 100644 --- a/charts/kasten/k10/charts/prometheus/templates/_definitions.tpl +++ b/charts/kasten/k10/charts/prometheus/templates/_definitions.tpl @@ -1,3 +1 @@ {{/* Autogenerated, do NOT modify */}} -{{- define "k10.prometheusImageTag" -}}v2.34.0{{- end -}} -{{- define "k10.prometheusConfigMapReloaderImageTag" -}}v0.5.0{{- end -}} diff --git a/charts/kasten/k10/charts/prometheus/templates/_helpers.tpl b/charts/kasten/k10/charts/prometheus/templates/_helpers.tpl index 287ed192a..c7630e6ac 100644 --- a/charts/kasten/k10/charts/prometheus/templates/_helpers.tpl +++ b/charts/kasten/k10/charts/prometheus/templates/_helpers.tpl @@ -84,101 +84,59 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- end -}} {{/* -Figure out the config based on -the value of airgapped.repository + Get the ConfigMap Reload image */}} {{- define "get.cmreloadimage" }} -{{- if not .Values.global.rhMarketPlace }} -{{- if .Values.global.airgapped.repository }} -{{- printf "%s/configmap-reload:%s" .Values.global.airgapped.repository (include "get.cmReloadImageTag" .) }} -{{- else }} -{{- printf "%s:%s" (include "get.cmReloadImageRepo" .) (include "get.cmReloadImageTag" .) }} -{{- end }} -{{- else }} -{{- printf "%s" (get .Values.global.images "configmap-reload") }} -{{- end -}} + {{- (get .Values.global.images (include "prometheus.cmreloadImageName" .)) | default (include "prometheus.cmreloadImage" .) }} {{- end }} +{{- define "prometheus.cmreloadImage" }} + {{- printf "%s:%s" (include "prometheus.cmreloadImageRepo" .) (include "prometheus.cmreloadImageTag" .) }} +{{- end -}} + +{{- define "prometheus.cmreloadImageRepo" -}} + {{- if .Values.global.airgapped.repository }} + {{- printf "%s/%s" .Values.global.airgapped.repository (include "prometheus.cmreloadImageName" .) }} + {{- else }} + {{- printf "%s/%s" .Values.global.image.registry (include "prometheus.cmreloadImageName" .) }} + {{- end }} +{{- end -}} + +{{- define "prometheus.cmreloadImageName" -}} + {{- printf "configmap-reload" }} +{{- end -}} + +{{- define "prometheus.cmreloadImageTag" -}} + {{- .Values.global.image.tag | default .Chart.AppVersion }} +{{- end -}} + {{/* -Figure out the config based on -the value of airgapped.repository + Get the Prometheus image */}} + {{- define "get.serverimage" }} -{{- if not .Values.global.rhMarketPlace }} -{{- if .Values.global.airgapped.repository }} -{{- printf "%s/prometheus:%s" .Values.global.airgapped.repository (include "get.promImageTag" .) }} -{{- else }} -{{- printf "%s:%s" (include "get.promImageRepo" .) (include "get.promImageTag" .) }} -{{- end }} -{{- else }} -{{- printf "%s" (get .Values.global.images "prometheus") }} + {{- (get .Values.global.images (include "prometheus.prometheusImageName" .)) | default (include "prometheus.prometheusImage" .) }} {{- end -}} -{{- end }} +{{- define "prometheus.prometheusImage" }} + {{- printf "%s:%s" (include "prometheus.prometheusImageRepo" .) (include "prometheus.prometheusImageTag" .) }} +{{- end -}} -{{/* -Figure out the configmap-reload image tag -based on the value of global.upstreamCertifiedImages -*/}} -{{- define "get.cmReloadImageTag"}} -{{- if .Values.global.upstreamCertifiedImages }} -{{- if .Values.global.airgapped.repository }} -{{- printf "k10-%s-rh-ubi" (include "k10.prometheusConfigMapReloaderImageTag" .) }} -{{- else }} -{{- printf "%s-rh-ubi" (include "k10.prometheusConfigMapReloaderImageTag" .) }} -{{- end }} -{{- else }} -{{- if .Values.global.airgapped.repository }} -{{- printf "k10-%s" (include "k10.prometheusConfigMapReloaderImageTag" .) }} -{{- else }} -{{- printf "%s" (include "k10.prometheusConfigMapReloaderImageTag" .) }} -{{- end }} -{{- end }} -{{- end }} +{{- define "prometheus.prometheusImageRepo" -}} + {{- if .Values.global.airgapped.repository }} + {{- printf "%s/%s" .Values.global.airgapped.repository (include "prometheus.prometheusImageName" .) }} + {{- else }} + {{- printf "%s/%s" .Values.global.image.registry (include "prometheus.prometheusImageName" .) }} + {{- end }} +{{- end -}} -{{/* -Figure out the prometheus image tag -based on the value of global.upstreamCertifiedImages -*/}} -{{- define "get.promImageTag"}} -{{- if .Values.global.upstreamCertifiedImages }} -{{- if .Values.global.airgapped.repository }} -{{- printf "k10-%s-rh-ubi" (include "k10.prometheusImageTag" .) }} -{{- else }} -{{- printf "%s-rh-ubi" (include "k10.prometheusImageTag" .) }} -{{- end }} -{{- else }} -{{- if .Values.global.airgapped.repository }} -{{- printf "k10-%s" (include "k10.prometheusImageTag" .) }} -{{- else }} -{{- printf "%s" (include "k10.prometheusImageTag" .) }} -{{- end }} -{{- end }} -{{- end }} +{{- define "prometheus.prometheusImageName" -}} + {{- printf "prometheus" }} +{{- end -}} -{{/* -Figure out the configmap-reload image repo -based on the value of global.upstreamCertifiedImages -*/}} -{{- define "get.cmReloadImageRepo" }} -{{- if .Values.global.upstreamCertifiedImages }} -{{- printf "%s/%s/configmap-reload" .Values.k10image.registry .Values.k10image.repository }} -{{- else }} -{{- print .Values.configmapReload.prometheus.image.repository }} -{{- end }} -{{- end }} - -{{/* -Figure out the prom image repo -based on the value of global.upstreamCertifiedImages -*/}} -{{- define "get.promImageRepo" }} -{{- if .Values.global.upstreamCertifiedImages }} -{{- printf "%s/%s/prometheus" .Values.k10image.registry .Values.k10image.repository }} -{{- else }} -{{- print .Values.server.image.repository }} -{{- end }} -{{- end }} +{{- define "prometheus.prometheusImageTag" -}} + {{- .Values.global.image.tag | default .Chart.AppVersion }} +{{- end -}} {{/* Create a fully qualified alertmanager name. diff --git a/charts/kasten/k10/charts/prometheus/values.yaml b/charts/kasten/k10/charts/prometheus/values.yaml index a43960373..64324eb55 100644 --- a/charts/kasten/k10/charts/prometheus/values.yaml +++ b/charts/kasten/k10/charts/prometheus/values.yaml @@ -1,7 +1,3 @@ -k10image: - registry: gcr.io - repository: kasten-images - rbac: create: true diff --git a/charts/kasten/k10/templates/_definitions.tpl b/charts/kasten/k10/templates/_definitions.tpl index 652b1e6d6..3bc85858c 100644 --- a/charts/kasten/k10/templates/_definitions.tpl +++ b/charts/kasten/k10/templates/_definitions.tpl @@ -26,9 +26,9 @@ vbrintegrationapi: primary: dashboardbff {{- end -}} {{- define "k10.colocatedServiceLookup" -}}crypto: +- garbagecollector - bloblifecyclemanager - events -- garbagecollector dashboardbff: - vbrintegrationapi state: @@ -46,7 +46,6 @@ state: {{- define "k10.backupActionsDetails" -}}backupactions/details{{- end -}} {{- define "k10.reportActions" -}}reportactions{{- end -}} {{- define "k10.reportActionsDetails" -}}reportactions/details{{- end -}} -{{- define "k10.restorePointRepositories" -}}restorepointrepositories{{- end -}} {{- define "k10.storageRepositories" -}}storagerepositories{{- end -}} {{- define "k10.restoreActions" -}}restoreactions{{- end -}} {{- define "k10.restoreActionsDetails" -}}restoreactions/details{{- end -}} @@ -100,7 +99,6 @@ state: {{- define "k10.defaultKanisterCheckRepoTimeout" -}}20{{- end -}} {{- define "k10.defaultKanisterStatsTimeout" -}}20{{- end -}} {{- define "k10.defaultKanisterEFSPostRestoreTimeout" -}}45{{- end -}} -{{- define "k10.defaultK10RootlessContainers" -}}false{{- end -}} {{- define "k10.cloudProviders" -}} aws google azure {{- end -}} {{- define "k10.serviceResources" -}} admin-svc: @@ -203,5 +201,5 @@ state-svc: {{- define "k10.multiClusterVersion" -}}2{{- end -}} {{- define "k10.mcExternalPort" -}}18000{{- end -}} {{- define "k10.defaultKubeVirtVMsUnfreezeTimeout" -}}5m{{- end -}} -{{- define "k10.kanisterToolsImageTag" -}}0.85.0{{- end -}} +{{- define "k10.kanisterToolsImageTag" -}}0.88.0{{- end -}} {{- define "k10.dexImageTag" -}}v2.35.3{{- end -}} diff --git a/charts/kasten/k10/templates/_helpers.tpl b/charts/kasten/k10/templates/_helpers.tpl index 38fa716e1..013965eb6 100644 --- a/charts/kasten/k10/templates/_helpers.tpl +++ b/charts/kasten/k10/templates/_helpers.tpl @@ -267,7 +267,7 @@ required {{- if .Values.global.airgapped.repository }} {{- printf "%s/dex" .Values.global.airgapped.repository }} {{- else }} -{{- printf "%s/%s/dex" .Values.image.registry .Values.image.repository }} +{{- printf "%s/dex" .Values.global.image.registry }} {{- end}} {{- else }} {{- if .Values.global.airgapped.repository }} @@ -325,20 +325,16 @@ Get the emissary image. {{- if .Values.global.airgapped.repository }} {{- printf "%s/%s" .Values.global.airgapped.repository (include "k10.emissaryImageName" .) }} {{- else }} - {{- if hasPrefix .Values.image.registry .Values.image.repository }} - {{- printf "%s/%s" .Values.image.repository (include "k10.emissaryImageName" .) }} - {{- else }} - {{- printf "%s/%s/%s" .Values.image.registry .Values.image.repository (include "k10.emissaryImageName" .) }} - {{- end }} + {{- printf "%s/%s" .Values.global.image.registry (include "k10.emissaryImageName" .) }} {{- end }} {{- end -}} {{- define "k10.emissaryImageName" -}} -{{- printf "emissary" }} + {{- printf "emissary" }} {{- end -}} {{- define "k10.emissaryImageTag" -}} -{{- default .Chart.AppVersion .Values.image.tag }} + {{- .Values.global.image.tag | default .Chart.AppVersion }} {{- end -}} {{/* @@ -751,3 +747,56 @@ running in the same cluster. {{- define "k10.ambassadorId" -}} "kasten.io/k10" {{- end -}} + +{{/* + Indicates the multi-cluster mode +*/}} +{{- define "k10.multicluster" -}} + {{ (default .Values.features dict).multicluster }} +{{- end -}} + +{{/* + Indicates whether K10 is configured as a multi-cluster primary +*/}} +{{- define "k10.isMulticlusterPrimary" -}} + {{ if eq (include "k10.multicluster" .) "primary" }}true{{ end }} +{{- end -}} + +{{/* Check that image.values are not set. */}} +{{- define "image.values.check" -}} + {{- if not (empty .main.Values.image) }} + + {{- $registry := .main.Values.image.registry }} + {{- $repository := .main.Values.image.repository }} + {{- if or $registry $repository }} + {{- $registry = coalesce $registry "gcr.io" }} + {{- $repository = coalesce $repository "kasten-images" }} + + {{- $oldCombinedRegistry := "" }} + {{- if hasPrefix $registry $repository }} + {{- $oldCombinedRegistry = $repository }} + {{- else }} + {{- $oldCombinedRegistry = printf "%s/%s" $registry $repository }} + {{- end }} + + {{- if ne $oldCombinedRegistry .main.Values.global.image.registry }} + {{- fail "Setting image.registry and image.repository is no longer supported use global.image.registry instead" }} + {{- end }} + {{- end }} + + {{- $tag := .main.Values.image.tag }} + {{- if $tag }} + {{- if ne $tag .main.Values.global.image.tag }} + {{- fail "Setting image.tag is no longer supported use global.image.tag instead" }} + {{- end }} + {{- end }} + + {{- $pullPolicy := .main.Values.image.pullPolicy }} + {{- if $pullPolicy }} + {{- if ne $pullPolicy .main.Values.global.image.pullPolicy }} + {{- fail "Setting image.pullPolicy is no longer supported use global.image.pullPolicy instead" }} + {{- end }} + {{- end }} + + {{- end }} +{{- end -}} diff --git a/charts/kasten/k10/templates/_k10_container.tpl b/charts/kasten/k10/templates/_k10_container.tpl index 832bb4646..b7c4e2a44 100644 --- a/charts/kasten/k10/templates/_k10_container.tpl +++ b/charts/kasten/k10/templates/_k10_container.tpl @@ -20,7 +20,7 @@ {{- with .main }} - name: {{ $service }}-svc {{- dict "main" . "k10_service" $service | include "serviceImage" | indent 8 }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + imagePullPolicy: {{ .Values.global.image.pullPolicy }} {{- if eq $service "aggregatedapis" }} args: - "--secure-port={{ .Values.service.aggregatedApiPort }}" @@ -248,11 +248,9 @@ stating that types are not same for the equality check {{- if or (eq $service "kanister") (eq $service "executor")}} - name: DATA_MOVER_IMAGE {{- if .Values.global.airgapped.repository }} - value: {{ default .Chart.AppVersion .Values.image.tag | print .Values.global.airgapped.repository "/datamover:" }} - {{- else if contains .Values.image.registry .Values.image.repository }} - value: {{ default .Chart.AppVersion .Values.image.tag | print .Values.image.repository "/datamover:" }} + value: {{ default .Chart.AppVersion .Values.global.image.tag | print .Values.global.airgapped.repository "/datamover:" }} {{- else }} - value: {{ default .Chart.AppVersion .Values.image.tag | print .Values.image.registry "/" .Values.image.repository "/datamover:" }} + value: {{ default .Chart.AppVersion .Values.global.image.tag | print .Values.global.image.registry "/datamover:" }} {{- end }}{{/* if .Values.global.airgapped.repository */}} - name: KANISTER_POD_READY_WAIT_TIMEOUT @@ -427,11 +425,6 @@ stating that types are not same for the equality check configMapKeyRef: name: k10-config key: KanisterEFSPostRestoreTimeout - - name: K10_ROOTLESS_CONTAINERS - valueFrom: - configMapKeyRef: - name: k10-config - key: K10RootlessContainers {{- end }} {{- if and (eq $service "executor") (.Values.awsConfig.efsBackupVaultName) }} - name: EFS_BACKUP_VAULT_NAME @@ -465,13 +458,6 @@ stating that types are not same for the equality check name: k10-token-auth key: auth {{- end }} -{{- if eq $service "kanister" }} - - name: K10_ROOTLESS_CONTAINERS - valueFrom: - configMapKeyRef: - name: k10-config - key: K10RootlessContainers -{{- end }} {{- if eq "true" (include "overwite.kanisterToolsImage" .) }} - name: KANISTER_TOOLS valueFrom: @@ -711,19 +697,14 @@ stating that types are not same for the equality check {{- else if $serviceStateful }} - name: upgrade-init securityContext: - {{- if $main_context.Values.global.rootlessContainers }} capabilities: add: - FOWNER - CHOWN runAsUser: 1000 allowPrivilegeEscalation: false - {{- else }} - runAsUser: 0 - allowPrivilegeEscalation: true - {{- end }} {{- dict "main" $main_context "k10_service" "upgrade" | include "serviceImage" | indent 8 }} - imagePullPolicy: {{ $main_context.Values.image.pullPolicy }} + imagePullPolicy: {{ $main_context.Values.global.image.pullPolicy }} env: - name: MODEL_STORE_DIR valueFrom: @@ -736,7 +717,7 @@ stating that types are not same for the equality check {{- if eq $service "catalog" }} - name: schema-upgrade-check {{- dict "main" $main_context "k10_service" $service | include "serviceImage" | indent 8 }} - imagePullPolicy: {{ $main_context.Values.image.pullPolicy }} + imagePullPolicy: {{ $main_context.Values.global.image.pullPolicy }} env: {{- if $main_context.Values.clusterName }} - name: CLUSTER_NAME diff --git a/charts/kasten/k10/templates/_k10_metering.tpl b/charts/kasten/k10/templates/_k10_metering.tpl index 644440e67..6a63503ea 100644 --- a/charts/kasten/k10/templates/_k10_metering.tpl +++ b/charts/kasten/k10/templates/_k10_metering.tpl @@ -34,7 +34,7 @@ spec: --- {{- end }}{{/* if $.stateful */}} {{ $service_list := include "k10.restServices" . | splitList " " }} -{{- if not (default .Values.features dict).multicluster -}} +{{- if not (include "k10.isMulticlusterPrimary" .) -}} {{- $service_list = without $service_list "mccontrollermanager" -}} {{- end -}} kind: ConfigMap @@ -135,19 +135,14 @@ spec: initContainers: - name: upgrade-init securityContext: - {{- if .Values.global.rootlessContainers }} capabilities: add: - FOWNER - CHOWN runAsUser: 1000 allowPrivilegeEscalation: false - {{- else }} - runAsUser: 0 - allowPrivilegeEscalation: true - {{- end }} {{- dict "main" . "k10_service" "upgrade" | include "serviceImage" | indent 8 }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + imagePullPolicy: {{ .Values.global.image.pullPolicy }} env: - name: MODEL_STORE_DIR value: /var/reports/ @@ -158,7 +153,7 @@ spec: containers: - name: {{ $service }}-svc {{- dict "main" . "k10_service" $service | include "serviceImage" | indent 8 }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + imagePullPolicy: {{ .Values.global.image.pullPolicy }} {{- if eq .Release.Namespace "default" }} {{- $podName := (printf "%s-svc" $service) }} {{- $containerName := (printf "%s-svc" $service) }} diff --git a/charts/kasten/k10/templates/_k10_serviceimage.tpl b/charts/kasten/k10/templates/_k10_serviceimage.tpl index d9e69a8a4..1a7c32055 100644 --- a/charts/kasten/k10/templates/_k10_serviceimage.tpl +++ b/charts/kasten/k10/templates/_k10_serviceimage.tpl @@ -7,20 +7,19 @@ Using substr to remove repo from ambassadorImage */}} {{- define "serviceImage" -}} {{/* -we are maintaining the field .Values.images to override it when +we are maintaining the field .Values.global.images to override it when we install the chart for red hat marketplace. If we dont have the value specified use earlier flow, if it is, use the value that is specified. */}} +{{- include "image.values.check" . -}} {{- if not .main.Values.global.rhMarketPlace }} {{- $serviceImage := "" -}} {{- $tagFromDefs := "" -}} {{- if .main.Values.global.airgapped.repository }} -{{- $serviceImage = default .main.Chart.AppVersion .main.Values.image.tag | print .main.Values.global.airgapped.repository "/" .k10_service ":" }} -{{- else if contains .main.Values.image.registry .main.Values.image.repository }} -{{- $serviceImage = default .main.Chart.AppVersion .main.Values.image.tag | print .main.Values.image.repository "/" .k10_service ":" }} +{{- $serviceImage = default .main.Chart.AppVersion .main.Values.global.image.tag | print .main.Values.global.airgapped.repository "/" .k10_service ":" }} {{- else }} -{{- $serviceImage = default .main.Chart.AppVersion .main.Values.image.tag | print .main.Values.image.registry "/" .main.Values.image.repository "/" .k10_service ":" }} +{{- $serviceImage = default .main.Chart.AppVersion .main.Values.global.image.tag | print .main.Values.global.image.registry "/" .k10_service ":" }} {{- end }}{{/* if .main.Values.global.airgapped.repository */}} {{- $serviceImageKey := print (replace "-" "" .k10_service) "Image" }} {{- if eq $serviceImageKey "ambassadorImage" }} diff --git a/charts/kasten/k10/templates/apiservice.yaml b/charts/kasten/k10/templates/apiservice.yaml index 3d0bc8b39..1811df48a 100644 --- a/charts/kasten/k10/templates/apiservice.yaml +++ b/charts/kasten/k10/templates/apiservice.yaml @@ -4,9 +4,6 @@ {{- $container_port := .Values.service.internalPort -}} {{- $namespace := .Release.Namespace -}} {{- range include "k10.aggregatedAPIs" . | splitList " " -}} -{{- $isNotReposAPI := (ne . "repositories") }} -{{- $reposAPIEnabled := (default $main.Values.features dict).repositoriesAPI }} -{{- if or $isNotReposAPI $reposAPIEnabled }} --- apiVersion: apiregistration.k8s.io/v1 kind: APIService @@ -25,5 +22,4 @@ spec: versionPriority: 10 insecureSkipTLSVerify: true {{ end }} -{{ end }} {{- end -}} diff --git a/charts/kasten/k10/templates/deployments.yaml b/charts/kasten/k10/templates/deployments.yaml index 2db14f667..e8329789e 100644 --- a/charts/kasten/k10/templates/deployments.yaml +++ b/charts/kasten/k10/templates/deployments.yaml @@ -7,7 +7,7 @@ Generates deployment specs for K10 services and other services such as {{- $stateless_services := include "k10.statelessServices" . | splitList " " -}} {{- $colocated_services := include "k10.colocatedServices" . | fromYaml -}} {{ $service_list := include "k10.restServices" . | splitList " " }} -{{- if not (default .Values.features dict).multicluster -}} +{{- if not (include "k10.isMulticlusterPrimary" .) -}} {{- $service_list = without $service_list "mccontrollermanager" -}} {{- end -}} {{- range $skip, $k10_service := $service_list }} diff --git a/charts/kasten/k10/templates/gateway.yaml b/charts/kasten/k10/templates/gateway.yaml index df02b5eb9..4c6e89dfb 100644 --- a/charts/kasten/k10/templates/gateway.yaml +++ b/charts/kasten/k10/templates/gateway.yaml @@ -126,11 +126,11 @@ spec: image: {{ include "k10.emissaryImage" . }} resources: limits: - cpu: 1000m - memory: 1Gi + cpu: {{ .Values.gateway.resources.limits.cpu | quote }} + memory: {{ .Values.gateway.resources.limits.memory | quote }} requests: - cpu: 200m - memory: 300Mi + cpu: {{ .Values.gateway.resources.requests.cpu | quote }} + memory: {{ .Values.gateway.resources.requests.memory | quote }} env: - name: AMBASSADOR_NAMESPACE valueFrom: diff --git a/charts/kasten/k10/templates/grafana-scc.yaml b/charts/kasten/k10/templates/grafana-scc.yaml index f634498a4..c7b517e75 100644 --- a/charts/kasten/k10/templates/grafana-scc.yaml +++ b/charts/kasten/k10/templates/grafana-scc.yaml @@ -9,8 +9,6 @@ metadata: allowPrivilegedContainer: false allowHostNetwork: false allowHostDirVolumePlugin: true -priority: null -allowedCapabilities: null allowHostPorts: true allowHostPID: false allowHostIPC: false diff --git a/charts/kasten/k10/templates/k10-config.yaml b/charts/kasten/k10/templates/k10-config.yaml index b827c72e9..361cdba2c 100644 --- a/charts/kasten/k10/templates/k10-config.yaml +++ b/charts/kasten/k10/templates/k10-config.yaml @@ -50,8 +50,6 @@ data: kubeVirtVMsUnFreezeTimeout: {{ default (include "k10.defaultKubeVirtVMsUnfreezeTimeout" .) .Values.kubeVirtVMs.snapshot.unfreezeTimeout | quote }} - K10RootlessContainers: {{ default (include "k10.defaultK10RootlessContainers" .) ( not ( empty .Values.global.rootlessContainers ) ) | quote }} - {{- if .Values.awsConfig.efsBackupVaultName }} efsBackupVaultName: {{ quote .Values.awsConfig.efsBackupVaultName }} {{- end }} diff --git a/charts/kasten/k10/templates/networkpolicy.yaml b/charts/kasten/k10/templates/networkpolicy.yaml index b693f1c66..0c0b399dd 100644 --- a/charts/kasten/k10/templates/networkpolicy.yaml +++ b/charts/kasten/k10/templates/networkpolicy.yaml @@ -52,7 +52,7 @@ spec: ports: - protocol: TCP port: {{ .Values.service.externalPort }} -{{- if ( .Values.features | default dict).multicluster }} +{{- if (include "k10.isMulticlusterPrimary" .) }} --- kind: NetworkPolicy apiVersion: networking.k8s.io/v1 diff --git a/charts/kasten/k10/templates/prometheus-configmap.yaml b/charts/kasten/k10/templates/prometheus-configmap.yaml index 53cab4d86..79a8822d2 100644 --- a/charts/kasten/k10/templates/prometheus-configmap.yaml +++ b/charts/kasten/k10/templates/prometheus-configmap.yaml @@ -3,7 +3,7 @@ {{- if .Values.gateway.exposeAdminPort -}} {{- $scrape_services = append (include "k10.restServices" . | splitList " " ) "gateway" -}} {{- end -}} -{{- if not (default .Values.features dict).multicluster -}} +{{- if not (include "k10.isMulticlusterPrimary" .) -}} {{- $scrape_services = without $scrape_services "mccontrollermanager" -}} {{- end -}} {{- include "check.validateMonitoringProperties" .}} diff --git a/charts/kasten/k10/templates/scc.yaml b/charts/kasten/k10/templates/scc.yaml index df12af4e3..4d039ef00 100644 --- a/charts/kasten/k10/templates/scc.yaml +++ b/charts/kasten/k10/templates/scc.yaml @@ -8,8 +8,6 @@ metadata: allowPrivilegedContainer: false allowHostNetwork: false allowHostDirVolumePlugin: true -priority: null -allowedCapabilities: null allowHostPorts: true allowHostPID: false allowHostIPC: false diff --git a/charts/kasten/k10/templates/v0services.yaml b/charts/kasten/k10/templates/v0services.yaml index b318d7f14..06eafb222 100644 --- a/charts/kasten/k10/templates/v0services.yaml +++ b/charts/kasten/k10/templates/v0services.yaml @@ -8,12 +8,12 @@ {{- $os_postfix := default .Release.Name .Values.route.path -}} {{- $main_context := . -}} {{ $service_list := append (include "k10.restServices" . | splitList " ") "frontend" }} -{{- if not (default .Values.features dict).multicluster -}} +{{- if not (include "k10.isMulticlusterPrimary" .) -}} {{- $service_list = without $service_list "mccontrollermanager" -}} {{- end -}} {{- range $service_list }} {{- $exposed_service := (has . $exposed_services) }} - {{- $mc_exposed_service := (and (eq . "mccontrollermanager") (default $.Values.features dict).multicluster) }} + {{- $mc_exposed_service := (and (eq . "mccontrollermanager") (include "k10.isMulticlusterPrimary" $)) }} {{ if not (hasKey $colocated_services . ) }} apiVersion: v1 kind: Service diff --git a/charts/kasten/k10/values.schema.json b/charts/kasten/k10/values.schema.json index 58fe3b9f7..3121c98ee 100644 --- a/charts/kasten/k10/values.schema.json +++ b/charts/kasten/k10/values.schema.json @@ -2,42 +2,6 @@ "$schema": "https://json-schema.org/draft/2019-09/schema", "type": "object", "properties": { - "image": { - "type": "object", - "title": "Container images config", - "description": "Configure docker images for all the containers", - "properties": { - "registry": { - "type": "string", - "default": "gcr.io", - "title": "Container images registry address", - "description": "Change default registry for all the images" - }, - "repository": { - "type": "string", - "default": "kasten-images", - "title": "Container images repository name", - "description": "Change default repository for all the images" - }, - "tag": { - "type": "string", - "default": "", - "title": "Container images tag", - "description": "Change default tag for all the images" - }, - "pullPolicy": { - "type": "string", - "default": "Always", - "title": "Container images pullPolicy", - "description": "Change default pullPolicy for all the images", - "enum": [ - "IfNotPresent", - "Always", - "Never" - ] - } - } - }, "rbac": { "type": "object", "title": "RBAC configuration", @@ -100,6 +64,36 @@ "type": "object", "title": "Global settings", "properties": { + "image": { + "type": "object", + "title": "K10 image configurations", + "description": "Change K10 image settings", + "properties": { + "registry": { + "type": "string", + "default": "gcr.io/kasten-images", + "title": "K10 image registry", + "description": "Change default K10 image registry" + }, + "tag": { + "type": "string", + "default": "", + "title": "K10 image tag", + "description": "Change default K10 tag" + }, + "pullPolicy": { + "type": "string", + "default": "Always", + "title": "Container images pullPolicy", + "description": "Change default pullPolicy for all the images", + "enum": [ + "IfNotPresent", + "Always", + "Never" + ] + } + } + }, "airgapped": { "type": "object", "title": "Airgapped offline installation", @@ -240,13 +234,13 @@ "type": "string", "default": "", "title": "Admin service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "aggregatedapis": { "type": "string", "default": "", "title": "Aggregatedapis service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "ambassador": { "type": "string", @@ -258,25 +252,25 @@ "type": "string", "default": "", "title": "Auth service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "bloblifecyclemanager": { "type": "string", "default": "", "title": "Bloblifecyclemanager service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "catalog": { "type": "string", "default": "", "title": "Catalog service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "cephtool": { "type": "string", "default": "", "title": "Cephtool service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "configmap-reload": { "type": "string", @@ -288,19 +282,19 @@ "type": "string", "default": "", "title": "Controllermanager service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "crypto": { "type": "string", "default": "", "title": "Crypto service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "dashboardbff": { "type": "string", "default": "", "title": "Dashboardbff service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "datamover": { "type": "string", @@ -318,25 +312,25 @@ "type": "string", "default": "", "title": "Emissary service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "events": { "type": "string", "default": "", "title": "Events service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "executor": { "type": "string", "default": "", "title": "Executor service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "frontend": { "type": "string", "default": "", "title": "Frontend service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "grafana": { "type": "string", @@ -348,30 +342,31 @@ "type": "string", "default": "", "title": "Jobs service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "kanister-tools": { "type": "string", "default": "", - "title": "Kanister-tools service container image" + "title": "Kanister-tools service container image", + "description": "Kanister-tools service container image contains set of tools, required for all kanister related operations. It is used for debug, troubleshooting, primer purposes as well" }, "kanister": { "type": "string", "default": "", "title": "Kanister service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "logging": { "type": "string", "default": "", "title": "Logging service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "metering": { "type": "string", "default": "", "title": "Metering service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "paygo_daemonset": { "type": "string", @@ -389,13 +384,13 @@ "type": "string", "default": "", "title": "State service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "upgrade": { "type": "string", "default": "", "title": "Upgrade service container image", - "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(image.registry/image.repository)/:(Chart.AppVersion)|(image.tag)'" + "description": "Used for packaging RedHat Operator. Setting this flag along with global.rhMarketPlace=true overrides the default image name. This flag is only for internal purposes. If not set, the image name is formed with '(global.airgapped.repository)|(global.image.registry)/:(Chart.AppVersion)|(image.tag)'" }, "vbrintegrationapi": { "type": "string", @@ -473,7 +468,7 @@ "type": "string", "default": "", "title": "External prometheus port number", - "descrption": "Set prometheus port number" + "description": "Set prometheus port number" }, "baseURL": { "type": "string", @@ -494,7 +489,7 @@ "type": "boolean", "default": false, "title": "Enable ipv6", - "Description": "Set true to enable ipv6" + "description": "Set true to enable ipv6" } } } @@ -738,7 +733,8 @@ "accept": { "type": "boolean", "default": false, - "title": " enable accept EULA before installation" + "title": "Enable accept EULA before installation", + "description": "An End-user license agreement (EULA) is a legal agreement granting a user a license to use an application or software. It must be consented to before a user buys, installs, or downloads an application or software owned by the service provider." } } }, @@ -766,25 +762,6 @@ "title": "Internal Prometheus configuration", "description": "Configure internal Prometheus", "properties": { - "k10image": { - "type": "object", - "title": "Prometheus image configurations", - "description": "Change Prometheus image settings", - "properties": { - "registry": { - "type": "string", - "default": "gcr.io", - "title": "Prometheus image registry", - "description": "Change default Prometheus image registry" - }, - "repository": { - "type": "string", - "default": "kasten-images", - "title": "Prometheus image repository", - "description": "Change default Prometheus image repository" - } - } - }, "initChownData": { "type": "object", "title": "Prometheus init container", @@ -806,8 +783,8 @@ "create": { "type": "boolean", "default": false, - "title": "Enable Prometheus rbac", - "description": "Whether to create Prometheus rbac configuration" + "title": "Enable Prometheus rbac. Warning - cluster wide permissions", + "description": "Whether to create Prometheus rbac configuration. Warning - this action will allow prometheus to scrape pods in all k8s namespaces." } } }, @@ -1837,12 +1814,14 @@ "userAttr": { "type": "string", "default": "", - "title": "Attribute in the user's entry that must match with the groupAttr while searching for groups" + "title": "Attribute in the user's entry", + "description": "Attribute in the user's entry that must match with the groupAttr while searching for groups" }, "groupAttr": { "type": "string", "default": "", - "title": "Attribute in the group's entry that must match with the userAttr while searching for groups" + "title": "Attribute in the group's entry", + "description": "Attribute in the group's entry that must match with the userAttr while searching for groups" } } }, @@ -1924,7 +1903,7 @@ "title": "Enable VBRIntegratipnAPI service", "description": "Set true to enable VBRIntegratipnAPI service", "type": "boolean", - "default": false + "default": true } } } @@ -2292,6 +2271,63 @@ "default": true, "title": "Expose Admin port", "description": "Whether to expose Admin port for gateway service" + }, + "resources": { + "type": "object", + "title": "Gateway pod resource config", + "description": "Configure resource request and limits by Gateway pod", + "properties": { + "requests": { + "type": "object", + "title": "Gateway resource requests", + "description": "Gateway resource requests configuration", + "properties": { + "memory": { + "type": "string", + "default": "300Mi", + "title": "Gateway pod memory request", + "description": "Gateway pod memory request", + "examples": [ + "1Gi" + ] + }, + "cpu": { + "type": "string", + "default": "200m", + "title": "Gateway pod cpu request", + "description": "Gateway pod cpu request", + "examples": [ + "1" + ] + } + } + }, + "limits": { + "type": "object", + "title": "Gateway resource limits", + "description": "Gateway resource limits configuration", + "properties": { + "memory": { + "type": "string", + "default": "1Gi", + "title": "Gateway pod memory limit", + "description": "Gateway pod memory limit", + "examples": [ + "1Gi" + ] + }, + "cpu": { + "type": "string", + "default": "1000m", + "title": "Gateway pod cpu limit", + "description": "Gateway pod cpu limit", + "examples": [ + "1" + ] + } + } + } + } } } }, diff --git a/charts/kasten/k10/values.yaml b/charts/kasten/k10/values.yaml index a2b6e7ec4..dcb3611bb 100644 --- a/charts/kasten/k10/values.yaml +++ b/charts/kasten/k10/values.yaml @@ -1,11 +1,6 @@ # Default values for k10. # This is a YAML-formatted file. # Declare variables to be passed into your templates. -image: - registry: gcr.io - repository: kasten-images - tag: '' - pullPolicy: Always rbac: create: true @@ -22,10 +17,13 @@ scc: networkPolicy: create: true -# Empty value of airgapped.repository specifies that the installation is -# going to be online and if we provide this value using --set flag that -# means that the installation is going to be offline global: + # These are the default values for picking k10 images. They can be overridden + # to specify a particular registy and tag. + image: + registry: gcr.io/kasten-images + tag: '' + pullPolicy: Always airgapped: repository: '' persistence: @@ -166,10 +164,6 @@ cluster: domainName: "cluster.local" #default value is cluster.local prometheus: - k10image: - # take this value from image.repository - registry: gcr.io - repository: kasten-images # Disabling init container # which uses root cmds initChownData: @@ -367,7 +361,7 @@ auth: optionalColocatedServices: vbrintegrationapi: - enabled: false + enabled: true cacertconfigmap: name: "" #Name of the configmap @@ -436,6 +430,13 @@ limiter: gateway: insecureDisableSSLVerify: false exposeAdminPort: true + resources: + requests: + memory: 300Mi + cpu: 200m + limits: + memory: 1Gi + cpu: 1000m kanister: backupTimeout: 45 diff --git a/index.yaml b/index.yaml index f78abd473..f1057d89c 100644 --- a/index.yaml +++ b/index.yaml @@ -11316,11 +11316,12 @@ entries: - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: K10 + catalog.cattle.io/featured: "1" catalog.cattle.io/kube-version: '>= 1.17.0-0' catalog.cattle.io/release-name: k10 apiVersion: v2 appVersion: 5.5.4 - created: "2023-02-03T12:59:29.683008617+05:30" + created: "2023-02-03T13:07:51.681650973+05:30" dependencies: - name: grafana repository: file://./charts/grafana @@ -11329,7 +11330,7 @@ entries: repository: file://./charts/prometheus version: 15.8.5 description: Kasten’s K10 Data Management Platform - digest: e541d010ceab6c3506352799d7dfa38bfec7190be335e308349a14d5c0900b3c + digest: 0cd5de4ce9cff4cb21f74e76019aeb339bc025d5b3c47b6607552af0fce6277b home: https://kasten.io/ icon: https://docs.kasten.io/_static/logo-kasten-k10-blue-white.png maintainers: @@ -11342,12 +11343,11 @@ entries: - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: K10 - catalog.cattle.io/featured: "1" catalog.cattle.io/kube-version: '>= 1.17.0-0' catalog.cattle.io/release-name: k10 apiVersion: v2 appVersion: 5.5.3 - created: "2023-02-03T12:59:29.671285008+05:30" + created: "2023-02-03T13:06:27.239073035+05:30" dependencies: - name: grafana repository: file://./charts/grafana @@ -11356,7 +11356,7 @@ entries: repository: file://./charts/prometheus version: 15.8.5 description: Kasten’s K10 Data Management Platform - digest: 353d1b9c22e57769c638c8b1fb1e5863de79e2f85fd0fc7b9d6a5959503e514e + digest: 4f202085e8d74f9e8c588c9f8e52033962b7248e4e36e6882875924a35b77d32 home: https://kasten.io/ icon: https://docs.kasten.io/_static/logo-kasten-k10-blue-white.png maintainers: @@ -11369,14 +11369,13 @@ entries: - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: K10 - catalog.cattle.io/featured: "1" catalog.cattle.io/kube-version: '>= 1.17.0-0' catalog.cattle.io/release-name: k10 apiVersion: v2 appVersion: 5.5.2 - created: "2023-02-03T12:59:33.87787867+05:30" + created: "2023-02-03T13:06:27.227488128+05:30" description: Kasten’s K10 Data Management Platform - digest: 367d3aff52703e2b36395b6e03aa77b6b95c93b2f6ea42a9b58c39ab12806c79 + digest: af49c6f27803fcc389533d9129aa59f03e9c34fe63fc4ac42b3c49e29df22d79 home: https://kasten.io/ icon: https://docs.kasten.io/_static/logo-kasten-k10-blue-white.png maintainers: @@ -11389,13 +11388,12 @@ entries: - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: K10 - catalog.cattle.io/featured: "1" catalog.cattle.io/release-name: k10 apiVersion: v2 appVersion: 5.5.1 - created: "2023-02-03T12:59:29.647074033+05:30" + created: "2023-02-03T13:06:27.215326217+05:30" description: Kasten’s K10 Data Management Platform - digest: 894fcbfbf4e895e353b240591124e7a6ba03391cc1d2834e0c2c275f6760ec63 + digest: 46bd8ade716098eae02d0500591750c406d5fbeb228e11ea67e7f6cbff199b83 home: https://kasten.io/ icon: https://docs.kasten.io/_static/logo-kasten-k10-blue-white.png kubeVersion: '>= 1.17.0-0'