Bicep Kubernetes 拡張機能 (プレビュー)
Kubernetes 拡張機能を使用すると、Bicep を使用して Kubernetes リソースを直接作成できます。 Bicep では、Kubernetes コマンド ライン クライアント (kubectl) と Kubernetes マニフェスト ファイルを使用してデプロイできるすべてのものをデプロイできます。
Note
Kubernetes 拡張機能は、プライベート クラスターでは現在サポートされていません。
resource AKS 'Microsoft.ContainerService/managedClusters@2024-02-01' = {
...
properties: {
apiServerAccessProfile: {
enablePrivateCluster: true
}
}
}
プレビュー機能を有効にする
このプレビュー機能は、bicepconfig.json を構成して有効にできます。
{
"experimentalFeaturesEnabled": {
"extensibility": true
}
}
Kubernetes 拡張機能のインポート
Kubernetes デプロイのためのシークレットを安全に渡すには、Bicep モジュールを使用して Kubernetes コードを呼び出し、 パラメーターをシークレットとして渡す必要があります。 Kubernetes 拡張機能をインポートするには、import ステートメントを使用します。 拡張機能をインポートした後、変数、パラメーター、出力を使用するなどして、通常どおり Bicep モジュール ファイルをリファクターできます。 契約上、YML の Kubernetes マニフェストにはプログラミングサポートは含まれていません。
次の例では、Kubernetes 拡張機能をインポートします。
@secure()
param kubeConfig string
import 'kubernetes@1.0.0' with {
namespace: 'default'
kubeConfig: kubeConfig
} as k8s
- namespace: 拡張機能の名前空間を指定します。
- KubeConfig: Kubernetes クラスター管理者資格情報の base64 でエンコードされた値を指定します。
次の例は、親の Bicep ファイルから kubeConfig
値を渡す方法を示しています。
resource aks 'Microsoft.ContainerService/managedClusters@2024-02-01' 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 に関するページをご覧ください。