簡體   English   中英

從 Azure DevOps 部署到 AKS 時如何傳入環境變量

[英]How to pass in environment variables when deploying to AKS from Azure DevOps

我想部署一個自定義 SQL 服務器映像,它需要使用以下管道定義將 4 個環境變量傳遞給 AKS:

  jobs:
  - deployment: Deploy
    condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
    displayName: Deploy
    pool:
      vmImage: $(vmImageName)
    environment: 'xxxx.default'
    strategy:
      runOnce:
        deploy:
          steps:
          - task: KubernetesManifest@0
            displayName: Create imagePullSecret
            inputs:
              action: createSecret
              namespace: $(k8sNamespace)
              secretName: $(imagePullSecret)
              dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
              
          - task: KubernetesManifest@0
            displayName: Deploy to Kubernetes cluster
            inputs:
              action: deploy
              namespace: $(k8sNamespace)
              manifests: |
                $(Pipeline.Workspace)/manifests/deployment.yml
                $(Pipeline.Workspace)/manifests/service.yml
              imagePullSecrets: |
                $(imagePullSecret)
              containers: |
                $(containerRegistry)/$(imageRepository):$(tag)

在這種情況下,清單文件是由 Azure DevOps 創建的,那么如果我想為這個容器注入 SA_Password / inistial 用戶配置,我該怎么做?

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/kubernetes-manifest?view=azure-devops#deploy-action

kubernetes-manifest 部署操作沒有添加額外環境變量的選項。 隨時在https://github.com/microsoft/azure-pipelines-tasks/issues打開功能請求

steps:
- task: KubernetesManifest@0
  displayName: Patch
  inputs: 
    action: patch
    kind: pod
    name: demo-5fbc4d6cd9-pgxn4
    mergeStrategy: strategic
    patch: '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"SA_Password","value":"1234"}]}]}}}}'
    kubernetesServiceConnection: someK8sSC
    namespace: default

我對 Tummala 評論的貢獻是,如果您可以控制 docker 圖像的構建方式,我建議從那里添加 env 變量。 因此,如果您有一個在開發分支上提交時觸發的 docker 構建,您可以將該環境傳遞給該 docker 映像。

如果您對以下內容感興趣,我在 Azure DevOps 中有專門的帖子討論 CI/CD: 使用 Z3A580F142203677F1F0BC30898F63 為 Kubernetes 構建 CI/CD 管道

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM