Bicep 扩展性 Kubernetes 提供程序(预览版)

Kubernetes 提供程序允许你直接使用 Bicep 创建 Kubernetes 资源。 Bicep 可以部署能够使用 Kubernetes 命令行客户端 (kubectl)Kubernetes 清单文件部署的任何内容。

注意

专用群集当前不支持 Kubernetes 提供程序:

resource AKS 'Microsoft.ContainerService/managedClusters@2023-01-02-preview' = {
 ...
 properties: {
  apiServerAccessProfile: {
    enablePrivateCluster: true
  }
 }
}

启用预览功能

可以通过配置 bicepconfig.json 来启用此预览功能:

{
  "experimentalFeaturesEnabled": {
    "extensibility": true
  }
}

导入 Kubernetes 提供程序

若要安全地传递 Kubernetes 部署的机密,必须使用 Bicep 模块调用 Kubernetes 代码,并将参数作为机密传递。 若要导入 Kubernetes 提供程序,请使用导入语句。 导入提供程序后,可以像往常一样重构 Bicep 模块文件,例如使用变量、参数和输出。 根据协定,YML 中的 Kubernetes 清单不包含任何可编程性支持。

以下示例导入了 Kubernetes 提供程序:

@secure()
param kubeConfig string

import 'kubernetes@1.0.0' with {
  namespace: 'default'
  kubeConfig: kubeConfig
} as k8s

以下示例演示了如何从父 Bicep 文件传递 kubeConfig 值:

resource aks 'Microsoft.ContainerService/managedClusters@2022-05-02-preview' existing = {
  name: 'demoAKSCluster'
}

module kubernetes './kubernetes.bicep' = {
  name: 'buildbicep-deploy'
  params: {
    kubeConfig: aks.listClusterAdminCredential().kubeconfigs[0].value
  }
}

AKS 群集可以是新资源,也可以是现有资源。 Visual Studio Code 中的 Import Kubernetes manifest 命令可以自动添加导入代码片段。 有关详细信息,请参阅 导入 Kubernetes 清单命令

Visual Studio Code 导入

你可以从 Visual Studio Code 导入 Kubernetes 清单文件来创建 Bicep 模块文件。 有关详细信息,请参阅 Visual Studio Code