Skip to main content

Helmチャートを使用したエージェントオペレータのセットアップ

Helmは、Kubernetesのパッケージマネージャーで、Kubernetesアプリケーションの管理に活用できるツールです。Helmでは「チャート」を使用して、Kubernetesオペレータの設定、インストール、アップグレードなどを行います。Contrastエージェントオペレータは、Helmチャートを使用してのセットアップを推奨します。

開始する前に

開始する前に、必要なものが揃っているか事前に確認してください。

手順

  1. 以下の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
  2. 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
  3. 以下の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
  4. 一覧表の値を使用して、デプロイメントにラベルを付けます。

    ヒント

    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:
        ...