Запуск скрипта, содержащего команды kubectl в установке helm - PullRequest
0 голосов
/ 25 июня 2018

У меня есть сценарий оболочки, который имеет несколько команд kubectl, мне нужно выполнить его как часть установки helm.

#!/bin/bash kubectl create secret generic mysecret --from-literal=username=$USER_NAME --from-literal=password=$passwrd

Я написал задание, которое выполняет этот скрипт.

apiVersion: batch/v1
kind: Job
metadata:
  name: "sagdfghd"

spec:
  template:        
    spec:
      containers:
        - name: sagdfghd
          image: {{ .Values.jobs.dockerRegistry }}
          command: ["sh", "-c", {{ .Files.Get "scripts/myscript.sh" | quote }} ]

Но поскольку скрипт выполняется внутри контейнера, он не может найти команду kubectl.

Есть идеи, как мне запустить этот скрипт?

ТИА

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

@ ericstaples предоставил ссылку на документацию по установке и это поможет решить проблему:

Какое изображение разрешает {{.Values.jobs.dockerRegistry}} и делает на нем установлен инструмент kubectl?

Скорее всего, на нем не установлено kubectl, поэтому вам придется добавить инструкции по установке kubectl в ваш Dockerfile. Эти инструкции будут зависеть от вашего базового образа Docker.

Поскольку к Pod, созданному заданием, будет прикреплен ServiceAccount, инструмент kubectl, запущенный в контейнере, будет выполнять вызовы кластера, в котором он работает, с помощью токена ServiceAccount и фактически создаст Secret в кластере. , а не контейнер (при условии, что он имеет правильные разрешения RBAC).

Попробуйте. Звонки в kube-apiserver (например, через kubectl) из контейнеров не редкость.

Примечание: создание объекта Secret в контейнере не имеет абсолютно никакого смысла.

0 голосов
/ 25 июня 2018

К какому образу {{ .Values.jobs.dockerRegistry }} разрешается изображение и установлен ли на нем инструмент kubectl? Скорее всего, на нем не установлено kubectl, поэтому вам придется добавить инструкции по установке kubectl в ваш Dockerfile. Эти инструкции будут зависеть от вашего базового образа Docker. Смотрите следующую ссылку:

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl

...