В конвейере Azure DevOps возникает сбой при появлении запроса на вход в устройство во время развертывания Helm в AKS

Я пытаюсь развернуть приложение Helm в кластере AKS с помощью конвейера Azure DevOps. Однако конвейер завершается сбоем из-за запроса на вход в систему устройства. Вот соответствующий раздел моего YAML-файла конвейера:

pool:
  name: '*'  

variables:
  AKS_RESOURCE_GROUP: '*' 
  AKS_CLUSTER_NAME: '*' 
  KUBECONFIG: $(Build.SourcesDirectory)/kubeconfig
  HELM_RELEASE_NAME: '*'  
  HELM_CHART_PATH: '*'  
  HELM_NAMESPACE: '*' 

stages:
- stage: Deploy
  jobs:
  - job: DeployToAKS
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: '*'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: |
          # Get AKS credentials and configure kubectl context
          az aks get-credentials --resource-group $(AKS_RESOURCE_GROUP) --name $(AKS_CLUSTER_NAME) --file $(KUBECONFIG)

          # Set KUBECONFIG environment variable
          export KUBECONFIG=$(KUBECONFIG)

          # Upgrade the existing Helm release or install if it doesn't exist
          helm upgrade --install $(HELM_RELEASE_NAME) $(HELM_CHART_PATH) --namespace $(HELM_NAMESPACE) --kubeconfig $(KUBECONFIG) --values $(HELM_CHART_PATH)/values.yaml

          # (Optional) Verify the deployment by checking the Helm release status
          helm status $(HELM_RELEASE_NAME) --namespace $(HELM_NAMESPACE) --kubeconfig $(KUBECONFIG)
      displayName: 'Deploy Helm Application to AKS'

Однако когда я запускаю этот конвейер, он терпит неудачу со следующей ошибкой:

[Error] The operation was canceled.
WARNING: Merged "my cluster name" as current context in /home/myazureuser/myagent/_work/8/s/kubeconfig
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code C5D7UEJAFF to authenticate.

Я проверил, что субъект-служба подключения к службе имеет необходимые разрешения для доступа к кластеру AKS.

Как я могу изменить свой конвейер Azure DevOps или конфигурацию субъекта-службы, чтобы избежать запроса на вход в систему устройства и разрешить конвейеру работать в неинтерактивном режиме? Любая помощь или предложения будут очень признательны!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете использовать задачу Kubernetes@1 с командой login для аутентификации в AKS.

Пример кода yaml:

pool:
 name: wadepool

variables:
  ServiceConnection: ARMConn1
  AKSCluster: wadeAKS1
  ResourceGroup: YourResourceGroup
  HELM_RELEASE_NAME: 'clamav'  
  HELM_CHART_PATH: './charts/clamav/'
  HELM_NAMESPACE: 'nmsw-dev' 

steps:
- task: Kubernetes@1
  inputs:
    connectionType: 'Azure Resource Manager'
    azureSubscriptionEndpoint: '$(ServiceConnection)'
    azureResourceGroup: '$(ResourceGroup)'
    kubernetesCluster: '$(AKSCluster)'
    useClusterAdmin: true
    command: 'login'

- task: HelmInstaller@1
  inputs:
    helmVersionToInstall: 'latest'

- task: AzureCLI@2
  inputs:
    azureSubscription: $(ServiceConnection)
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      echo "Setting up AKS credentials"
      az aks get-credentials --resource-group $(ResourceGroup) --name $(AKSCluster) --overwrite-existing
      kubectl config use-context $(AKSCluster)

      # Upgrade the existing Helm release or install if it doesn't exist
      helm upgrade --install $(HELM_RELEASE_NAME) $(HELM_CHART_PATH) --namespace $(HELM_NAMESPACE) --values $(HELM_CHART_PATH)/values.yaml

      # (Optional) Verify the deployment by checking the Helm release status
      helm status $(HELM_RELEASE_NAME) --namespace $(HELM_NAMESPACE)
  displayName: 'Set up AKS Credentials and Test Connection'

Конвейер работает, я не указал $(KUBECONFIG) со своей стороны:

добавление задачи k8s решило мою проблему, спасибо

My ADO Obsession 29.08.2024 09:41

Рад знать, что это помогает! Приятного кодирования!

wade zhou - MSFT 29.08.2024 11:44

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

K8s aks реагирует на проблему маршрутизации: маршрутизация не осуществляется с IP-адреса svc, но отлично работает с IP-адреса локального хоста
Ожидается модуль службы Azure Kubernetes — 4 Недостаточно процессора
Аутентификация ManagedIdentityCredential недоступна. Запрошенный идентификатор не был назначен этому ресурсу
Запрос Kusto на время между записями по группам в одном списке результатов
Переопределить среду функций Azure в службе Azure Kubernetes
Контейнерное приложение .NET обновлено с версии 6 до 8, и проба запуска начинает давать сбой в службах Azure Kubernetes
Как подключить модуль в AKS к Центру событий Azure с помощью интерфейса Kafka?
Отправка содержимого файла (журнала) контейнера Kubernets (AKS) в пространство журнала Azure
Невозможно передать аннотации в Helm
Azure AKS: как я могу получить эмитента OpenID Connect (oidc-issuer) и удостоверение рабочей нагрузки из ПОРТАЛА (а не из интерфейса Azure)?