Helm値

はじめに

Helm値は、Live Agentアプリとリソースの設定に使用されるすべての変数です。これらは values.yaml というファイルに保存されます。これは、Live Agentの動作を設定するために、必要に応じて編集することができます。以下は、このファイルの例です:

# Defining Ingress host
ingress:
  enabled: false
  annotations:
    kubernetes.io/ingress.class: traefik
  hosts:
    - host: "live-agent-domain.com"
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: cognigy-live-agent-app

configmap:
  # Comment about a commented variable, it is ignored
  # REST_CLIENT_SSL_VERIFICATION=false
  FORCE_SSL: true

values.yamlファイル内の変数を変更またはコメントする以外に、パラメータは、helm install-set key=value[,key=value]引数を使用して変更することもできます。

例:

helm install my-release \
--set configmap.SSL_CA_FILE="/etc/ca.pem"\
./cognigy-live-agent

上記コマンドは、Live Agent証明書ファイルのパスを/etc/ca.pemに設定します。詳細はHelmドキュメントの[Template and Values(テンプレートと値)]をご覧ください。

values.yamlファイルを直接修正するのではなく、custom-values.yamlを作成し、オーバーライドの必要があるキー値を追加することをお勧めします。そうすることで、インストールまたはアップグレードコマンドを実行するときに、このように最後に引数を使うだけで容易になります:

helm install cognigy-live-agent oci://cognigy.azurecr.io/helm/live-agent --version X.X.X --namespace live-agent -f custom-values.yaml

次に、それぞれの値の定義を確認し、どのように変更すればよいかをご理解ください。

特定の構成

特定の数値やロジックについては、以下の専用セクションをご利用ください:

画像

名称説明
image.repositoryLive Agent イメージリポジトリcognigy.azurecr.io/live-agent
image.tagLive Agent イメージタグe.g. 2.0.0
image.pullPolicyLive Agent イメージプルポリシーIfNotPresent
image.pullSecretNameLive Agent イメージプルシークレット名cognigy-registry-token
odata.image.repositoryLive Agent OData イメージリポジトリcognigy.azurecr.io/live-agent-odata
odata.image.tagLive Agent OData イメージタグe.g. 1.0.0
odata.image.pullPolicyLive Agent OData イメージプルポリシーIfNotPresent
odata.image.pullSecretNameLive Agent OData イメージプルシークレット名cognigy-registry-token

Cognigy(コグニジー)

App Platform Token(アプリプラットフォームトークン)

Cognigy.AIは、Live Agent APIを使用して、データ(受信トレイやアカウントなど)の同期や作成などの操作を実行するためにApp Platform Tokenを使用します。このため、Live AgentとCognigy.AIには、シークレットが一致する値に設定されている必要があります。

Live Agent シークレット

Live Agentネームスペースの下に新しいシークレットを作成し、Helm値でそれを参照することをお勧めします。そうしない場合、自動的にlive-agent-cognigy-live-agent-cognigy-platform-app-tokenというシークレットがランダムな値で作成されます(このシークレットは永続化され、将来のHelmのアップグレードでも変更されません)。

名称説明デフォルト値
cognigyPlatformAppToken.existingSecretCognigy AppプラットフォームTokenのシークレット名“”
cognigyPlatformAppToken.existingSecretKeyCognigy AppプラットフォームTokenのシークレットキー“”

備考

シークレットキーの値は、V65Xyf6pphEeac64g2d92pvw のような 24 文字のランダムな英数字文字列でなければなりません。

Cognigy.AIシークレット

以下のHelm値を設定する必要があります:

cognigyLiveAgent:
  ## Existing secret with live-agent credentials. The secret must have the following key:
  ##   "cognigy-live-agent-platform-token": The token for cognigy live agent
  existingSecret: ""

トラブルシューティング

シークレットが同じ値であるにもかかわらず、統合が機能していない場合(例えば、ハンドオーバーや事前に設定されたLive Agentが機能していない場合)、以下を実行してください:

  1. Live Agentネームスペースのlive-agent-cognigy-live-agent-XXXアプリポッドを再起動します。
  2. Cognigy.AI ネームスペースの以下の Cognigy.AI ポッドを再起動します:
  3. service-handover
  4. service-security
  5. service-api
  6. service-resources
  7. service-ui

OAuth

これらは、Live AgentでCognigy認証を有効にするために使用される値です。これにより、Cognigyユーザは同じ認証情報でLive Agentにログインすることができます。

名称説明デフォルト値
configmap.COGNIGY_OAUTH_CLIENT_IDOAuth クライアントID“cognigy-live-agent”
configmap.COGNIGY_OAUTH_SITECognigy API サイト“https://api-installation.cognigy.ai/v2.0”
configmap.COGNIGY_OAUTH_AUTHORIZE_URLCognigy OAuth API 認証URL“https://installation.cognigy.ai/login?cognigy-live-agent=true”
configmap.COGNIGY_OAUTH_TOKEN_URLOAuth Token URL“https://api-installation.cognigy.ai/auth/oauth2/token”

OAuthクライアントシークレットは、Live Agentネームスペースにシークレットを作成し、以下の値を設定します:

名称説明デフォルト値
cognigyOAuth.existingSecretOAuthクライアントシークレットのシークレット名“”
cognigyOAuth.existingSecretKeyOAuthクライアントシークレットのシークレットキー“”

備考

シークレットキーの値は、DUSOBAPM2L5V3CNLBw48surpgzrpk6bji9fav65xyf6ppheeac64g292pvwouhmのような64文字のランダムな英数字文字列でなければなりません。

Cognigy.AI

以下のHelm値を設定する必要があります:

cognigyEnv:
  ...
  COGNIGY_LIVE_AGENT_API_BASE_URL_WITH_PROTOCOL: <live-agent-url>"
  CLIENT_ID_COGNIGY_LIVE_AGENT: "cognigy-live-agent"
  CLIENT_SECRET_COGNIGY_LIVE_AGENT: "<secret-value>"
  REDIRECT_URI_COGNIGY_LIVE_AGENT: "<live-agent-url>/omniauth/cognigy/callback"
  COGNIGY_LIVE_AGENT_UI_BASE_URL_WITH_PROTOCOL: "<live-agent-url>"
  FEATURE_USE_COGNIGY_LIVE_AGENT: "true"

トラブルシューティング

secretsとconfigmapsが同じ値であるにもかかわらず、統合が機能しない場合(例えば、OAuthの設定エラー “OAuth 設定に問題があります”)、以下を実行してください:

  1. Live Agentのネームスペースのcognigy-live-agent-app-XXX アプリポッドを再起動します。
  2. Cognigy.AI ネームスペースの以下の Cognigy.AI ポッドを再起動します:
  3. service-security
  4. service-api
  5. service-resources
  6. service-ui

Insights(インサイト)

Live AgentからInsightsにトークに関する分析を送信するには、以下のHelm値を設定する必要があります:

名称説明デフォルト値
cognigyInsights.apiUrlサービスコレクタの url で、サービス名とネームスペースで構成されます。http://service-collector.cognigy-ai.svc.cluster.local:8000
cognigyInsights.secretAPIキーのキーと値を含むシークレット名“”
cognigyInsights.secretKeyAPIキーの値を指すシークレットキー“”

シークレットキーの値は、Cognigy.AIネームスペースの「cognigy-insights-collector-api-key」という名前と「Secret」というキーに含まれるシークレットから取得されます。URLは、Insightsサービスコレクターのローカルアドレスを指す必要があります。

トラブルシューティング

これらの値が設定されていない場合、トーク分析データはInsightsに送信されず、Live Agent podの起動時に警告ログが表示されます。

Data will not be sent to Cognigy Insights, as neither of the following environment variables were set: COGNIGY_INSIGHTS_API_KEY and COGNIGY_INSIGHTS_API_BASE_URL_WITH_PROTOCOL

URLs

名称説明デフォルト値
configmap.COGNIGY_AI_UI_BASE_URL_WITH_PROTOCOLLive AgentからCognigy.AI UIにアクセスするURL“”https://installation.cognigy.ai””
configmap.COGNIGY_AI_API_BASE_URL_WITH_PROTOCOLCognigy.AI APIへのリクエストを実行するURL“”https://api-installation.cognigy.ai””

ウイルス対策ファイルのアップロード

ウイルス対策ファイルのアップロードスキャンを有効にするには、次の値を有効にする必要があります:

名称説明デフォルト値
antivirusScan.enabledウィルス対策ファイルスキャンを有効にするブール値false
antivirusScan.resources推奨値はポッドリソースに設定済み

アップロードされたファイルをウイルススキャンし、ウイルスが検出された場合はアップロードをブロックします。これは、Live Agent UIやCognigy.AI Webchatからのものを含む、添付ファイルとしてメッセージに含まれてアップロードされたすべてのファイルをスキャンします。

App(アプリ)

名称説明デフォルト値
configmap.FORCE_SSLアプリへのすべてのアクセスをSSL経由で行います。デフォルトはfalseに設定されています。“false”
configmap.GOOGLE_MAPS_API_TOKENこの値は、ユーザーによって共有された場所でGoogleマップの地図をロードするために使用されます。.“”
configmap.USE_INBOX_AVATAR_FOR_BOTBot のカスタマイズ“true”
configmap.FRONTEND_EXTERNAL_URL外部システムがLive Agentにアクセスするために異なるFrontend URLを設定します。(例: ファイルのアップロードをリクエスト)“”
configmap.SENTRY_DSNエラー追跡用のSentry DSN“”

Cookieの完全性

Live Agentは、クッキーのサイン用にセキュアストレージされたものを使用します。SECRET_KEY_BASE値は安全な値に設定する必要があります。デフォルト値はランダムな文字列に設定されていますが、安全な値に変更することをお勧めします。

備考

以前までは、SECRET_KEY_BASEはconfigmapセクションの直下に設定されていました。現在これは非推奨となっており、cookiesIntegrityセクション下で設定する必要があります。以前のインストールでは、既存のシークレットを作成することをお勧めします。そうでない場合、値が変更され、すべてのLive Agentユーザーセッションが失効します。

cookiesIntegrity:
  # Uncomment these lines in case there is an existing secret and don't want to create it on install
  # existingSecret: "<secret-name>"
  # existingSecretKey: "<secret-key>"

Rest Client SSL

Live AgentはCognigy.AI APIへのリクエストを実行します。Cognigy.AIのサービスを信頼するCustom Certificate Authority (CA)付きの自己署名証明書で実行している場合、またはSSLを無効にする必要がある場合は、これらの設定が必要です。

証明書の検証

名称説明デフォルト値
restClient.ssl.verificationSSL証明書の検証を有効にする“true”

カスタム認証局を使った自己署名証明書

証明書ファイル名(例:cert.pem)をキーとするシークレットを作成します。これは、Live Agentアプリによって信頼されるように、ポッドファイルシステムにマウントされます。この値には、余分なタブ/スペースなしで証明書ファイルの内容を含める必要があります。次に、以下の値を入力します:

名称説明
restClient.ssl.CASecretCA シークレット名
restClient.ssl.CASecretKeyCA シークレットキー

値の更新後にポッドが再起動されることをご確認ください。

クライアント証明書

クライアント証明書を使用するには、クライアント証明書、クライアント証明書キー、キーのパスフレーズ(キーにパスフレーズがある場合)を含むシークレットを作成します。次に、以下の値を入力します:

名称説明
restClient.ssl.clientCertSecretクライアント証明書のシークレット名
restClient.ssl.clientCertSecretKeyクライアント証明書のシークレットキー。値は X509 形式で指定必須。
restClient.ssl.clientKeySecretKeyクライアントキーのシークレットキー。値はRSA Keyコンテンツで指定必須。
restClient.ssl.clientKeySecretPassphraseKeyクライアントキーのパスフレーズ シークレットキー。キーにパスフレーズがない場合は、コメントのままにします。

値の更新後にポッドが再起動されることを確認します。

Odata

キー説明種別
odata.enabledODataサービスとエンドポイントを有効にするブーリアン型
odata.configmap.ODATA_PROTOCOLhttp または https文字列

その他

キー種別デフォルト値
affinityオブジェクト{}
frontendUrlOverrideデフォルトでは、Frontend URLはIngressホストです。必要であれば、このプロパティで上書きしてください。“https://<live-agent-domain>.com/”
fullnameOverride文字列“”
hooks.affinityオブジェクト{}
hooks.migrate.envリスト[]
hooks.migrate.hookAnnotation | string |'”post-install,post-upgrade”

hooks.migrate.resources.limits.memory文字列“1000Mi”
hooks.migrate.resources.requests.memory文字列“1000Mi”
ingress.annotationsオブジェクト{}
ingress.enabledブーリアン型false
ingress.hosts[0].host文字列“”
ingress.hosts[0].paths[0].backend.service.name文字列“cognigy-live-agent-app”
ingress.hosts[0].paths[0].backend.service.port.number整数型3000
ingress.hosts[0].paths[0].path文字列“/”
ingress.hosts[0].paths[0].pathType文字列“Prefix”
ingress.tlsリスト[]
nameOverride文字列“”
nodeSelectorオブジェクト{}
podAnnotationsオブジェクト{}
podSecurityContextオブジェクト{}
resourcesオブジェクト{}
securityContextオブジェクト{}
service.port整数型80
service.type文字列“ClusterIP”
serviceAccount.annotationsオブジェクト{}
serviceAccount.createブーリアン型false
serviceAccount.name文字列“”
services.annotationsオブジェクト{}
services.internlPort整数型3000
services.name文字列“cognigy-live-agent-app”
services.targetPort整数型3000
services.type文字列“LoadBalancer”
tolerationsリスト[]
app.replica整数型1
app.extraVolumesオブジェクト{}
app.extraVolumeMountsオブジェクト{}
worker.replica整数型1
worker.extraVolumesオブジェクト{}
worker.extraVolumeMountsオブジェクト{}