Skip to content

Instantly share code, notes, and snippets.

@dmizverev
Created November 16, 2022 06:05
Show Gist options
  • Save dmizverev/8fae6b95b2c1419b1bc63937adfa43fe to your computer and use it in GitHub Desktop.
Save dmizverev/8fae6b95b2c1419b1bc63937adfa43fe to your computer and use it in GitHub Desktop.
Ошибка настройки securityContext.capabilities в Helm Chart "Yandex Application Load Balancer Ingress Controller" v0.1.0.

Ошибка настройки securityContext.capabilities в Helm Chart "Yandex Application Load Balancer Ingress Controller" v0.1.0.

При настройке securityContext.capabilities возникает ошибка:

Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.securityContext): unknown field "capabilities" in io.k8s.api.core.v1.PodSecurityContext

Шаги воспроизведения.

  1. Раскомментировать настройку securityContext.capabilities в файле yc-alb-ingress-controller-chart/values.yaml в Helm Chart yc-alb-ingress-controller-chart-v0.1.0.tgz
  2. Установить Helm Chart
    $ helm install \
    --namespace <пространство имен> \
    --set folderId=<идентификатор каталога> \
    --set clusterId=<идентификатор кластера> \
    --set-file saKeySecretKey=sa-key.json \
    yc-alb-ingress-controller ./yc-alb-ingress-controller-chart/
  3. Ошибка установки
     Failure when executing Helm command. Exited 1.
     stdout: Pulled: cr.yandex/yc/yc-alb-ingress-controller-chart:v0.1.0
     Digest: sha256:567daf4668ba4bb7f3216c13869652ff87f5db0928ca0c133d8d878565b0ef87
    
     stderr: WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /opt/kurs/output/kubeconfig
     WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /opt/kurs/output/kubeconfig
     Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.securityContext): unknown field "capabilities" in io.k8s.api.core.v1.PodSecurityContext
    

Причина ошибки.

Есть путаница между securityContext и PodSecurityContext. Параметр .Values.securityContext указан в deployment.yaml там, где необходимо указывать PodSecurityContext. В свою очередь, securityContext.capabilities выставляются только для Containers, а не для Pod. Подробнее см. описание API:

Предлагаемое решение.

В values.yaml добавить настройку podSecurityContext. В Deployment .Values.securityContext и .Values.podsecurityContext выставить для ContainerSpec и PodSpec соответственно.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment