kubectl создать используя встроенные параметры в bash-скрипте вместо файла yaml - PullRequest
0 голосов
/ 24 января 2019

Я хочу преобразовать нижнюю строку для запуска в качестве bash-скрипта, чтобы я мог вызвать его с помощью задания jenkins.

kubectl create -f tiller-sa-crb.yaml

Ниже приведен tiller-sa-crb.yaml.Как я могу конвертировать мою команду выше в сценарии Bash.так, что моя работа Дженкинса вызывает ./tiller-sa-crb.sh, и он делает все ниже.По сути, моя конечная цель - иметь чистый сценарий оболочки и вызывать его на задании jenkins.

apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: tiller
    namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
   name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: kube-system

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы также можете использовать stdin для команды kubectl create, например:

#!/usr/bin/env bash

cat <<EOF | kubectl create -f -
apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: tiller
    namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
   name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: kube-system
EOF
0 голосов
/ 24 января 2019

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

#!/bin/bash
#create SA account in one line in namespace kube-system
kubectl create serviceaccount tiller -n kube-system

#create cluster role binding in one line using above serviceaccount and in kube-system namespace
kubectl create clusterrolebinding crb-cluster-admin-test2 --
clusterrole=cluster-admin --serviceaccount=kube-system:tiller
...