############ ## Global ## ############ globalConfig: gatewayAuth: ## Supported types: access_key, certificate, universal identity, cloud identity (aws_iam/azure_ad/gcp) ## If using access_key, certificate or universal identity, you must also add gatewayCredentialsExistingSecret which includes the key/certificate/token ## https://docs.akeyless.io/docs/gateway-chart#authentication ## gatewayAccessId: gatewayAccessType: ## Use K8s secret to set the following types: access_key, certificate, uid ## Create a K8s secret, run 'kubect apply' and add secret name (see docs for examples) ## keys: gateway-access-key, gateway-certificate, gateway-certificate-key, gateway-uid-token ## gatewayCredentialsExistingSecret: ## Add one or more Access IDs to give them access to this Gateway; add the specified permissions and sub-claims. ## Name must be unique. Empty permissions will implicitly give the admin permission. ## See docs for examples https://docs.akeyless.io/docs/gateway-chart#gateway-admins ## allowedAccessPermissions: [] ## Use a K8s existing secret for Gateway Allowed Access. Must include the following key: allowed-access-permissions ## https://docs.akeyless.io/docs/gateway-chart#access-permissions ## allowedAccessPermissionsExistingSecret: ## List Access IDs that have access (comma separated list), if left empty all Access IDs will be authorised. ## To enable only specific users to use Remote Access, make sure to add the relevant `authorizedAccessIDs` in the `Global` section. ## A comma-separated list can be used for multiple IDs. ## While this is not mandatory, it is a good security practice to limit user access. If not configured, a Warning message ## will appear. For more information: https://docs.akeyless.io/docs/remote-access-setup-k8s#configuration ## authorizedAccessIDs: ## If serviceAccount = false, please ensure the provided service account has the following permissions: ## 1. Create Kubernetes Secrets - The service account must be able to create secrets within the Kubernetes cluster. ## Read and Update the Gateway's Kubernetes Secret ## 2. The service account must have read and update access to the Kubernetes secret used by the Gateway. ## By default, this secret is named <deployment>-cache-encryption-key, unless a custom name has been specified. ## serviceAccount: create: false serviceAccountName: annotations: ## This is the actual name of the cluster as in account/access-id/clusterName ## clusterName: ## This is the vanity display name of the cluster ## initialClusterDisplayName: ## The key which is used to encrypt the Gateway configuration. ## If left empty - the account’s default key will be used. ## This key can be determined on cluster bringup only and cannot be modified afterwards ## configProtectionKeyName: ## Use k8s secret to set the CF, the k8s secret must include the key: customer-fragments ## See docs for examples https://docs.akeyless.io/docs/advanced-chart-configuration#customer-fragment ## customerFragmentsExistingSecret: ## See docs for examples https://docs.akeyless.io/docs/advanced-chart-configuration#tls-configuration ## TLSConf: enabled: false ## Specifies an existing secret for tls-certificate: tlsExistingSecret: ## Telemetry Metrics see docs for examples https://docs.akeyless.io/docs/telemetry-metrics-k8s ## metrics: enabled: false ## Existing secret for metrics must include: ## - otel-config.yaml (base64) secret ## metricsExistingSecret: ## Linux system HTTP Proxy httpProxySettings: http_proxy: "" https_proxy: "" no_proxy: "" # env: [] ## https://docs.akeyless.io/docs/advanced-chart-configuration#cache-configuration ## clusterCache: ## In case Cache is enabled in the Gateway, and the encryptionKeyExistingSecret parameter has a value ## Akeyless will use this specified encryption key and store it securely within Akeyless Gateway. ## If the encryptionKeyExistingSecret parameter is empty or not specified, ## Akeyless will automatically generate a new encryption key and a new ServiceAccount for K8s. ## for more information: https://docs.akeyless.io/docs/advanced-chart-configuration#cache-configuration ## encryptionKeyExistingSecret: # Enable/Disable TLS between the Gateway and the cluster cache service # using generated certificates and keys enableTls: false ## The resources limits for the redis cluster cache ## resources: limits: # cpu: 500m memory: 2Gi requests: cpu: 250m memory: 256Mi #################################################### ## Default values for Gateway ## #################################################### gateway: ## Default values for akeyless-gateway. deployment: annotations: {} labels: {} replicaCount: 2 image: # repository: akeyless/base ## Alternative mirror registry # repository: docker.registry-2.akeyless.io/base # tag: latest pullPolicy: IfNotPresent # Place here any pod annotations you may need pod: annotations: {} affinity: enabled: false data: # nodeAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # nodeSelectorTerms: # - matchExpressions: # - key: kubernetes.io/arch # operator: In # values: # - amd64 # ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity nodeSelector: # iam.gke.io/gke-metadata-server-enabled: "true" securityContext: enabled: false fsGroup: 0 runAsUser: 0 containerSecurityContext: {} ## Remove the {} and add any needed values to your SecurityContext ## # runAsUser: 0 # seccompProfile: # type: RuntimeDefault livenessProbe: initialDelaySeconds: 60 periodSeconds: 30 failureThreshold: 10 readinessProbe: initialDelaySeconds: 60 periodSeconds: 10 timeoutSeconds: 5 service: ## Remove the {} and add any needed annotations regarding your LoadBalancer implementation ## annotations: {} labels: {} type: LoadBalancer ## Gateway service port ## port: 8000 ## Configure the ingress resource that allows you to access the ## akeyless-api-gateway installation. Set up the URL ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/ ## ingress: ## Set to true to enable ingress record generation enabled: false ## A reference to an IngressClass resource ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#deprecated-annotation # ingressClassName: labels: {} annotations: {} ## Example for Nginx ingress ## # annotations: # kubernetes.io/ingress.class: nginx # nginx.ingress.kubernetes.io/ssl-redirect: "true" # nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600" # nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # nginx.ingress.kubernetes.io/proxy-buffer-size: "8k" # nginx.ingress.kubernetes.io/proxy-buffers-number: "4" ## Example for Istio ingress ## # labels: # istio-injection: enabled # annotations: # kubernetes.io/ingress.class: "istio" # ## You can set ingressClassName instead annotation and label ## # ingressClassName: istio # ## In addition if you are using istio ingress, you must add the following annotation to the gateway pod annotations ## # pod: # annotations: # proxy.istio.io/config: '{"holdApplicationUntilProxyStarts": true }' ## Example for AWS ELB ingress ## # annotations: # kubernetes.io/ingress.class: alb # alb.ingress.kubernetes.io/scheme: internet-facing rules: - servicePort: gateway hostname: "gateway.local" ## Path for the default host path: / ## Ingress Path type the value can be ImplementationSpecific, Exact or Prefix pathType: ImplementationSpecific ## Enable TLS configuration for the hostname defined at ingress.hostname parameter ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.gateway.ingress.hostname }} ## or a custom one if you use the tls.existingSecret parameter ## tls: false # existingSecret: name-of-existing-secret ## Set this to true in order to add the corresponding annotations for cert-manager and secret name certManager: false resources: {} ## The following resource settings represent minimum recommended requests without defined limits. ## We've set a base recommended requests of 1 vCPU and 2GB memory. ## We intentionally leave resource limits unspecified to enable customization. If you wish to set specific resource ## limits, uncomment the 'limits' section and adjust values as needed. ## If Horizontal Pod Autoscaler (HPA) usage is desired, you must set requests values. ## If you do want to specify resources, uncomment the following ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. ## # limits: # cpu: <your_cpu_limit> # memory: <your_memory_limit> # requests: # cpu: 1 # memory: 2G hpa: ## Set the below to false in case you do not want to add Horizontal Pod AutoScaling ## Note that metrics server must be installed for this to work: ## https://github.com/kubernetes-sigs/metrics-server ## enabled: false minReplicas: 1 maxReplicas: 10 cpuAvgUtil: 70 memAvgUtil: 70 annotations: {} ## HSM configuration hsm: enabled: false ## In case hsm is enabled you must add pinExistingSecret which includes the hsm pcks11 pin ## https://docs.akeyless.io/docs/k8s-hsm-integration ## pinExistingSecret: "" ## pkcs11LibPath: ## slot: ## tokenLabel: ## tokenSerial: ## useRand: false ## Persistent volume section persistence: enabled: false ## existingClaim: "" ## mountPath: "" ## accessMode: "ReadWriteMany" ## storageClass: "" ## size: 100Mi ###################################################### ## Default values for akeyless-secure-remote-access ## ###################################################### ## If you are only using Akeyless Gateway, ignore this section ## sra: ## Enable secure-remote-access. Valid values: true/false. ## For more information on a Quick Start guide for Remote Access <https://docs.akeyless.io/docs/remote-access-quick-start-guide> ## Or setup SRA on K8s <https://docs.akeyless.io/docs/remote-access-setup-k8s> enabled: false image: ## Default image repository is: akeyless/zero-trust-bastion ## pullPolicy: IfNotPresent # tag: latest env: [] ## The below section is for the Remote Access Web app ## webConfig: deployment: annotations: {} labels: {} replicaCount: 1 ## Persistence Volume is used to store RDP recordings when it is configured to save recordings locally ## Akeyless requires data persistence to be shared within all pods in the cluster ## accessMode: ReadWriteMany ## Make sure to change the below values according to your environment except for the hostPath values ## see docs for more information <https://docs.akeyless.io/docs/remote-access-setup-k8s#configuration> ## persistence: volumes: {} # volumes: # - name: akeyless-data # storageClassName: efs-zero-trust-bastion-sc # # storageClassDriver: efs.csi.aws.com # size: 100Mi # annotations: # volume.beta.kubernetes.io/storage-class: "" livenessProbe: initialDelaySeconds: 15 periodSeconds: 30 failureThreshold: 10 readinessProbe: initialDelaySeconds: 15 periodSeconds: 30 timeoutSeconds: 5 resources: ## The following resource settings represent minimum recommended requests without defined limits. ## We've set a base recommended requests of 1 vCPU and 2GB memory. ## We intentionally leave resource limits unspecified to enable customization. If you wish to set specific resource ## limits, uncomment the 'limits' section and adjust values as needed. ## For more information on system requirements <https://docs.akeyless.io/docs/remote-access-system-requirements> ## ## If Horizontal Pod Autoscaler (HPA) usage is desired, you must set requests values. ## If you do want to specify resources, uncomment the following ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. ## # limits: # cpu: <your_cpu_limit> # memory: <your_memory_limit> requests: cpu: 1 memory: 2G hpa: ## Set the below to false in case you do not want to add Horizontal Pod AutoScaling to the Deployment ## If HPA is enabled resources requests must be set ## enabled: false minReplicas: 1 maxReplicas: 10 cpuAvgUtil: 70 memAvgUtil: 70 ## The below section is for the Remote Access SSH app ## For more information: <https://docs.akeyless.io/docs/remote-access-advanced-configuration-k8s#ssh-configuration> ## sshConfig: replicaCount: 1 ## This is a required RSA Public Key for your Akeyless SSH Cert Issuer ## See docs for examples <https://docs.akeyless.io/docs/remote-access-setup-k8s#ssh--config> ## CAPublicKey: # CAPublicKey: | ## Use this parameter to store fingerprint information in a specific folder within your Akeyless account. ## This approach prevents the need to manually re-accept the SSH host key fingerprint after upgrades or other changes. ## In the example below, the fingerprints will be stored in the /MY_SSH_REMOTE_ACCESS_HOST_KEYS folder. ## Note: Ensure that your Remote Access default authentication method has the necessary permissions to create, read, and list within this folder. ## See docs for more information <https://docs.akeyless.io/docs/remote-access-advanced-configuration-k8s#ssh-configuration> ## sshHostKeysPath: annotations: {} labels: {} nodeSelector: # iam.gke.io/gke-metadata-server-enabled: "true" securityContext: enabled: false fsGroup: 0 runAsUser: 0 service: ## Remove the {} and add any needed annotations regarding your LoadBalancer implementation ## annotations: {} labels: {} type: LoadBalancer port: 22 livenessProbe: failureThreshold: 5 periodSeconds: 30 timeoutSeconds: 5 readinessProbe: initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 resources: ## The following resource settings represent minimum recommended requests without defined limits. ## We've set a base recommended requests of 1 vCPU and 2GB memory. ## We intentionally leave resource limits unspecified to enable customization. If you wish to set specific resource ## limits, uncomment the 'limits' section and adjust values as needed. ## For more information on system requirments <https://docs.akeyless.io/docs/remote-access-system-requirements> ## If Horizontal Pod Autoscaler (HPA) usage is desired, you must set requests values. ## If you do want to specify resources, uncomment the following ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. ## # limits: # cpu: <your_cpu_limit> # memory: <your_memory_limit> requests: cpu: 1 memory: 2G hpa: ## Set the below to true only when using a shared persistent storage (defined at .persistence.volumes) ## If HPA is enabled resources requests must be set ## enabled: false minReplicas: 1 maxReplicas: 10 cpuAvgUtil: 70 memAvgUtil: 70