Azure管道-如何执行kubectl命令

x759pob2  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(101)

我正在尝试删除所有以“dev-...”为前缀的名称空间。该命令在命令行上运行良好,但我不确定如何在Azure Pipelines中运行。

kubectl get namespaces --no-headers=true -o custom-columns=:metadata.name | grep dev- | xargs kubectl delete namespace
pwuypxnk

pwuypxnk1#

下面的管道应该与定义的服务主体一起工作。

trigger: none

pool:
  vmImage: 'ubuntu-latest'

steps:

# Delete All namespaces start with dev-
- task: AzureCLI@2
  inputs:
    azureSubscription: 'YOUR_SUBSCRIPTION_SP'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az aks get-credentials --resource-group $AKS_RG --name $AKS_NAME --admin
      kubectl get ns
      kubectl get namespaces --no-headers=true -o custom-columns=:metadata.name | grep dev- | xargs kubectl delete namespace
      kubectl get ns
  displayName: 'Delete All namespaces start with dev-'
lsmepo6l

lsmepo6l2#

我发现(至少对我来说)一个更好的方法。
1.我正在Azure DevOps中添加群集即服务连接。
1.我使用Kubernetes@1来登录,之后我只使用脚本块。这也适用于helm

- task: Kubernetes@1
  displayName: 'Kubernetes Login'
  # This is needed to run kubectl command from bash.
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: NAME OF YOUR SERVICE CONNECTION
    command: 'login'
- script: |
    kubectl get namespaces
  displayName: Execute kubectl

相关问题