Helmチャートを使用したエージェントオペレータのセットアップ
Helmは、Kubernetesのパッケージマネージャーで、Kubernetesアプリケーションの管理に活用できるツールです。Helmでは「チャート」を使用して、Kubernetesオペレータの設定、インストール、アップグレードなどを行います。Contrastエージェントオペレータは、Helmチャートを使用してのセットアップを推奨します。
開始する前に
開始する前に、必要なものが揃っているか事前に確認してください。
Contrastでサポートされているバージョン、フレームワーク、ツールを使用すること。
手順
以下のHelmコマンドを実行して、YAMLファイルを作成します。
helm repo add contrast https://contrastsecurity.dev/helm-charts helm repo update contrast helm show values contrast/contrast-agent-operator > contrast-agent-operator.yaml
YAMLファイルの
clusterDefaults
セクションにエージェントキーを追加します。また、enabled:
プロパティをtrue
に設定する必要があります。clusterDefaults: enabled: true url: YOUR_CONTRAST_URL apiKeyValue: YOUR_API_KEY serviceKeyValue: YOUR_AGENT_SERVICE_KEY userNameValue: YOUR_AGENT_USERNAME yaml: |- enable: true
以下のHelmコマンドを実行します。
helm upgrade --install -f contrast-agent-operator.yaml contrast-agent-operator contrast/contrast-agent-operator
Helm NOTESには、次の例に示すように、ワークロードに適用するラベルの詳細が含まれます。
Release "contrast-agent-operator" has been upgraded. Happy Helming! NAME: contrast-agent-operator LAST DEPLOYED: Tue Jul 2 12:04:40 2024 NAMESPACE: default STATUS: deployed REVISION: 4 TEST SUITE: None NOTES: contrast-agent-operator version 1.4.0 deployed! ✅ 6 injectors have been deployed to namespace: default To use with your workloads: contrast-java-injector (java): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=java contrast-dotnet-core-injector (dotnet-core): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=dotnet-core contrast-nodejs-injector (nodejs): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=nodejs contrast-nodejs-esm-injector (nodejs-esm): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=nodejs-esm contrast-php-injector (php): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=php contrast-python-injector (python): ⎈ kubectl label deployment/<your_deployment_name> contrast-agent=python ✅ Cluster agent defaults deployed 👀 To watch the operator logs: ⎈ kubectl logs -f -l app.kubernetes.io/part-of=contrast-agent-operator --namespace contrast-agent-operator 📄 More documentation: https://docs.contrastsecurity.com/en/agent-operator.html 🙋 Get support: https://support.contrastsecurity.com / support@contrastsecurity.com
一覧表の値を使用して、デプロイメントにラベルを付けます。
ヒント
kubectl get deployments
コマンドを実行して、デプロイメント名を確認することもできます。デプロイメントにラベルを付ける場合のコマンド例:
実行:
kubectl get deployments
実行結果(例):
NAME READY UP-TO-DATE AVAILABLE AGE app1-deployment 0/3 0 0 1s
そして、以下のコマンドを実行:
kubectl label deployment app1-deployment contrast-agent=java
YAMLファイルのデフォルト設定では、 AgentInjectorは defaultのネームスペースにのみデプロイされます。他のネームスペースを使う場合、YAMLファイルの
agentInjectors.namespaces
配列に追加できます。次の例は、
agentInjectors.namespaces
配列を設定する方法を示しています。agentInjectors: enabled: true # Required. All injectors will be created in each specified namespace. lookupNamespaces: # If enabled, Helm will lookup namespaces and deploy AgentInjectors to any accessible namespaces. deployToAllAccessibleNamespaces: true # List of namespace patterns to exclude deploying AgentInjectors to only when looking up namespaces. excludePatterns: - gatekeeper* - kube* # Required if lookupNamespaces.deployToAllAccessibleNamespaces is not enabled. All injectors will be created in each specified namespace. namespaces: - default injectors: ...