Как передать переменную среды в файлы развертывания kubernetes yaml с помощью действий github?

Привет, я развертываю файлы kubernetes yaml, используя действия github. Например, у меня есть файл развертывания yaml ниже

apiVersion: apps/v1
kind: Deployment 
metadata: #Dictionary
  name: cepgateway
  namespace: "#{KUBERNETES_NAMESPACE}#"

В действиях github у меня есть разные задания, такие как deploytodev,deploytotest и т. д.

В deploytodev я установил переменную env, как показано ниже.

Deploy-Dev: 
    runs-on: 'ubuntu-latest'
    environment: 'Dev'
    env:
      KUBERNETES_NAMESPACE: cep-dev

Я установил KUBERNETES_NAMESPACE некоторое значение и пытаюсь получить доступ к yaml моего развертывания как

пространство имен: "#{KUBERNETES_NAMESPACE}#"

не работает и выдает ошибку

from server for: "Kubernetes/ingress.yml": ingresses.networking.k8s.io "cep-ingress" is forbidden: User "system:serviceaccount:serviceaccounts:cep-ci-sa" cannot get resource "ingresses" in API group "networking.k8s.io" in the namespace "#{KUBERNETES_NAMESPACE}#"

Могу ли я узнать, правильно ли я следую этому пути? Может ли кто-нибудь помочь мне исправить это. Любая помощь будет оценена по достоинству. Спасибо

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
115
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете использовать команду envsubst в сочетании с шагом kubectl apply, например:

namespace.yaml

apiVersion: apps/v1
kind: Deployment 
metadata: #Dictionary
  name: cepgateway
  namespace: ${K8S_NAMESPACE}

затем

export K8S_NAMESPACE = "cep-dev"

так

envsubst < namespace.yaml

будет печатать:

apiVersion: apps/v1
kind: Deployment
metadata: #Dictionary
  name: cepgateway
  namespace: cep-dev

Объединение его в действие GitHub будет выглядеть примерно так:

jobs:
  Deploy-Dev:
    runs-on: 'ubuntu-latest'
    environment: 'Dev'
    env:
      KUBERNETES_NAMESPACE: cep-dev
    steps:
        run: |
          envsubst < namespace.yaml | kubectl apply -f -

Другие вопросы по теме