После исследования, попытки и неудачи я нашел другой способ сделать это, не возиться со скриптами оболочки.
Вам просто нужно применить следующее к Kubernetes, он создаст ServiceAccount и свяжет егодля пользовательской роли эта роль будет иметь права на создание / удаление развертываний и модулей (настройте их для разрешений служб).
deploy-robot-conf.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: deploy-robot
automountServiceAccountToken: false
---
apiVersion: v1
kind: Secret
metadata:
name: deploy-robot-secret
annotations:
kubernetes.io/service-account.name: deploy-robot
type: kubernetes.io/service-account-token
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: deploy-robot-role
namespace: default
rules: # ## Customize these to meet your requirements ##
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["create", "delete"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "delete"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: global-rolebinding
namespace: default
subjects:
- kind: ServiceAccount
name: deploy-robot
namespace: default
roleRef:
kind: Role
name: deploy-robot-role
apiGroup: rbac.authorization.k8s.io
Это будет иметь минимальные разрешения, необходимые для развертывания Azure DevOps в кластере.
Примечание: Пожалуйста, настройте правила в ресурсе роли для удовлетворения ваших потребностей, чтобыРазрешения ресурсов для служб экземпляра.
Затем перейдите к своему выпуску и создайте соединение службы Kubernetes:
Заполните поля и следуйте инструкциямшаги, необходимые для получения секрета от учетной записи службы, помните, что это deploy-robot , если вы не изменили файл yaml.
А потомПросто используйте ваше соединение Kubernetes: