Thank you for installing Kasten’s K10 Data Management Platform {{ .Chart.Version }}!
{{- if .Values.fips.enabled }}

You are operating in FIPS mode.
{{- end }}

Documentation can be found at https://docs.kasten.io/.

How to access the K10 Dashboard:

{{- if .Values.ingress.create }}

You are using the system's default ingress controller. Please ask your
administrator for instructions on how to access the cluster.

WebUI location:  https://{{ default "Your ingress endpoint" .Values.ingress.host }}/{{ default .Release.Name .Values.ingress.urlPath }}

In addition,
{{- end }}

{{- if .Values.route.enabled }}
WebUI location: https://{{ default "k10-route endpoint" .Values.route.host}}/{{ default .Release.Name .Values.route.path }}/

In addition,
{{- end }}

{{- if .Values.externalGateway.create }}
{{- if .Values.externalGateway.fqdn.name }}

The K10 Dashboard is accessible via {{ if or .Values.secrets.tlsSecret .Values.externalGateway.awsSSLCertARN }}https{{ else }}http{{ end }}://{{ .Values.externalGateway.fqdn.name }}/{{ .Release.Name }}/#/

In addition,
{{- else }}

The K10 Dashboard is accessible via a LoadBalancer. Find the service's EXTERNAL IP using:
  `kubectl get svc gateway-ext --namespace {{ .Release.Namespace }} -o wide`
And use it in following URL
 `http://SERVICE_EXTERNAL_IP/{{ .Release.Name }}/#/`

In addition,
{{- end }}
{{- end }}

To establish a connection to it use the following `kubectl` command:

`kubectl --namespace {{ .Release.Namespace }} port-forward service/gateway 8080:{{ .Values.gateway.service.externalPort }}`

The Kasten dashboard will be available at: `http{{ if or .Values.secrets.tlsSecret .Values.externalGateway.awsSSLCertARN }}s{{ end }}://127.0.0.1:8080/{{ .Release.Name }}/#/`
{{ if and ( .Values.metering.awsManagedLicense )  ( not .Values.metering.licenseConfigSecretName ) }}

IAM Role created during installation need to have permissions that allow K10 to
perform operations on EBS and, if needed, EFS and S3. Please create a policy
with required permissions, and use the commands below to attach the policy to
the service account.

`ROLE_NAME=$(kubectl get serviceaccount {{ .Values.serviceAccount.name }} -n {{ .Release.Namespace }} -ojsonpath="{.metadata.annotations['eks\.amazonaws\.com/role-arn']}" | awk -F '/' '{ print $(NF) }')`
`aws iam attach-role-policy --role-name "${ROLE_NAME}" --policy-arn <POLICY NAME>`

Refer to `https://docs.kasten.io/latest/install/aws-containers-anywhere/aws-containers-anywhere.html#attaching-permissions-for-eks-installations`
for more information.

{{ end }}

{{- if and (.Values.vap.kastenPolicyPermissions.enabled) (lt (atoi .Capabilities.KubeVersion.Minor) 31) }}
--------------------
Warning: The ValidatingAdmissionPolicy installed for Kubernetes versions less than 1.31 is unstable and has known issues. 
It is advised to set the helm field `vap.kastenPolicyPermissions.enabled` only if the Kubernetes version is 1.31 and above.
--------------------
{{- end }}

{{- if .Values.restore }}
{{- if or (empty .Values.restore.copyImagePullSecrets) (.Values.restore.copyImagePullSecrets) }}
--------------------
Removal warning: The helm field `restore.copyImagePullSecrets` has been removed in version 6.0.12. K10 no longer copies the `imagePullSecret` to the application namespace.
--------------------
{{- end }}
{{- end }}

{{- if or (not (empty .Values.garbagecollector.importRunActions)) (not (empty .Values.garbagecollector.backupRunActions)) (not (empty .Values.garbagecollector.retireActions)) }}
Deprecation warning: The `garbagecollector.importRunActions`, `garbagecollector.backupRunActions`, `garbagecollector.retireActions`
blocks within the helm chart values have been replaced with `garbagecollector.actions`.
{{- end }}

{{- if .Values.secrets.azureADEndpoint  }}
--------------------
Deprecation warning: The helm field `secret.azureADEndpoint` is deprecated and will be removed in upcoming release, we recommend you to use correct respective field, i.e., `secrets.microsoftEntraIDEndpoint`.
--------------------
{{- end }}


{{- if .Values.secrets.azureADResourceID  }}
--------------------
Deprecation warning: The helm field `secret.azureADResourceID` is deprecated and will be removed in upcoming release, we recommend you to use correct respective field, i.e., `secrets.microsoftEntraIDResourceID`
--------------------
{{- end }}

{{- if or .Values.kanisterPodCustomLabels .Values.kanisterPodCustomAnnotations }}
--------------------
Deprecation warning: The Helm values `kanisterPodCustomLabels` and `kanisterPodCustomAnnotations` are deprecated and will be removed in an upcoming release. Please use `global.podLabels` and `global.podAnnotations` to set labels and annotations to all the Kasten pods globally.
--------------------
{{- end }}

{{- if gt (int .Values.executorReplicas) 0 }}
--------------------
Deprecation warning: The Helm value 'executorReplicas' is deprecated and will be removed in an upcoming release. Please use 'limiter.executorReplicas' instead.
--------------------
{{- end }}
{{- if .Values.injectKanisterSidecar.enabled }}
--------------------
Deprecation warning: The Helm value 'injectKanisterSidecar.enabled' is deprecated and will be removed in an upcoming release. Please use 'injectGenericVolumeBackupSidecar.enabled' instead.
--------------------
{{- end }}
{{- if .Values.kanisterPodMetricSidecar.enabled }}
--------------------
Deprecation warning: The Helm value 'kanisterPodMetricSidecar.enabled' is deprecated and will be removed in an upcoming release. Please use 'workerPodMetricSidecar.enabled' instead.
--------------------
{{- end }}
{{- if gt (int .Values.services.executor.workerCount) 0 }}
--------------------
Deprecation warning: The Helm value 'services.executor.workerCount' is deprecated and will be removed in an upcoming release. Please use 'limiter.executorThreads' instead.
--------------------
{{- end }}
{{- if gt (int .Values.services.executor.maxConcurrentRestoreCsiSnapshots) 0 }}
--------------------
Deprecation warning: The Helm value 'services.executor.maxConcurrentRestoreCsiSnapshots' is deprecated and will be removed in an upcoming release. Please use 'limiter.csiSnapshotRestoresPerAction' instead.
--------------------
{{- end }}
{{- if gt (int .Values.services.executor.maxConcurrentRestoreGenericVolumeSnapshots) 0 }}
--------------------
Deprecation warning: The Helm value 'services.executor.maxConcurrentRestoreGenericVolumeSnapshots' is deprecated and will be removed in an upcoming release. Please use 'limiter.volumeRestoresPerAction' instead.
--------------------
{{- end }}
{{- if gt (int .Values.services.executor.maxConcurrentRestoreWorkloads) 0 }}
--------------------
Deprecation warning: The Helm value 'services.executor.maxConcurrentRestoreWorkloads' is deprecated and will be removed in an upcoming release. Please use 'limiter.workloadRestoresPerAction' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.backupTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.backupTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.blueprintBackup' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.restoreTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.restoreTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.blueprintRestore' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.deleteTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.deleteTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.blueprintDelete' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.hookTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.hookTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.blueprintHooks' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.checkRepoTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.checkRepoTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.checkRepoPodReady' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.statsTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.statsTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.statsPodReady' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.efsPostRestoreTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.efsPostRestoreTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.efsRestorePodReady' instead.
--------------------
{{- end }}
{{- if gt (int .Values.kanister.podReadyWaitTimeout) 0 }}
--------------------
Deprecation warning: The Helm value 'kanister.podReadyWaitTimeout' is deprecated and will be removed in an upcoming release. Please use 'timeout.workerPodReady' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.concurrentSnapConversions) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.concurrentSnapConversions' is deprecated and will be removed in an upcoming release. Please use 'limiter.snapshotExportsPerAction' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.genericVolumeSnapshots) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.genericVolumeSnapshots' is deprecated and will be removed in an upcoming release. Please use 'limiter.genericVolumeBackupsPerCluster' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.genericVolumeCopies) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.genericVolumeCopies' is deprecated and will be removed in an upcoming release. Please use 'limiter.snapshotExportsPerCluster' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.genericVolumeRestores) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.genericVolumeRestores' is deprecated and will be removed in an upcoming release. Please use 'limiter.volumeRestoresPerCluster' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.csiSnapshots) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.csiSnapshots' is deprecated and will be removed in an upcoming release. Please use 'limiter.csiSnapshotsPerCluster' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.providerSnapshots) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.providerSnapshots' is deprecated and will be removed in an upcoming release. Please use 'limiter.directSnapshotsPerCluster' instead.
--------------------
{{- end }}
{{- if gt (int .Values.limiter.imageCopies) 0 }}
--------------------
Deprecation warning: The Helm value 'limiter.imageCopies' is deprecated and will be removed in an upcoming release. Please use 'limiter.imageCopiesPerCluster' instead.
--------------------
{{- end }}
{{- if and .Values.maxJobWaitDuration (not (empty .Values.maxJobWaitDuration)) }}
--------------------
Deprecation warning: The Helm value 'maxJobWaitDuration' is deprecated and will be removed in an upcoming release. Please use 'timeout.jobWait' instead.
--------------------
{{- end }}
{{- if .Values.forceRootInKanisterHooks }}
--------------------
Deprecation warning: The Helm value 'forceRootInKanisterHooks' is deprecated and will be removed in an upcoming release. Please use 'forceRootInBlueprintActions' instead.
--------------------
{{- end }}