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.repository | Live Agent イメージリポジトリ | cognigy.azurecr.io/live-agent |
image.tag | Live Agent イメージタグ | e.g. 2.0.0 |
image.pullPolicy | Live Agent イメージプルポリシー | IfNotPresent |
image.pullSecretName | Live Agent イメージプルシークレット名 | cognigy-registry-token |
odata.image.repository | Live Agent OData イメージリポジトリ | cognigy.azurecr.io/live-agent-odata |
odata.image.tag | Live Agent OData イメージタグ | e.g. 1.0.0 |
odata.image.pullPolicy | Live Agent OData イメージプルポリシー | IfNotPresent |
odata.image.pullSecretName | Live 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.existingSecret | Cognigy AppプラットフォームTokenのシークレット名 | “” |
cognigyPlatformAppToken.existingSecretKey | Cognigy 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が機能していない場合)、以下を実行してください:
- Live Agentネームスペースの
live-agent-cognigy-live-agent-XXX
アプリポッドを再起動します。 - Cognigy.AI ネームスペースの以下の Cognigy.AI ポッドを再起動します:
- service-handover
- service-security
- service-api
- service-resources
- service-ui
OAuth
これらは、Live AgentでCognigy認証を有効にするために使用される値です。これにより、Cognigyユーザは同じ認証情報でLive Agentにログインすることができます。
名称 | 説明 | デフォルト値 |
configmap.COGNIGY_OAUTH_CLIENT_ID | OAuth クライアントID | “cognigy-live-agent” |
configmap.COGNIGY_OAUTH_SITE | Cognigy API サイト | “https://api-installation.cognigy.ai/v2.0” |
configmap.COGNIGY_OAUTH_AUTHORIZE_URL | Cognigy OAuth API 認証URL | “https://installation.cognigy.ai/login?cognigy-live-agent=true” |
configmap.COGNIGY_OAUTH_TOKEN_URL | OAuth Token URL | “https://api-installation.cognigy.ai/auth/oauth2/token” |
OAuthクライアントシークレットは、Live Agentネームスペースにシークレットを作成し、以下の値を設定します:
名称 | 説明 | デフォルト値 |
cognigyOAuth.existingSecret | OAuthクライアントシークレットのシークレット名 | “” |
cognigyOAuth.existingSecretKey | OAuthクライアントシークレットのシークレットキー | “” |
備考
シークレットキーの値は、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 設定に問題があります”)、以下を実行してください:
- Live Agentのネームスペースの
cognigy-live-agent-app-XXX
アプリポッドを再起動します。 - Cognigy.AI ネームスペースの以下の Cognigy.AI ポッドを再起動します:
- service-security
- service-api
- service-resources
- service-ui
Insights(インサイト)
Live AgentからInsightsにトークに関する分析を送信するには、以下のHelm値を設定する必要があります:
名称 | 説明 | デフォルト値 |
cognigyInsights.apiUrl | サービスコレクタの url で、サービス名とネームスペースで構成されます。 | http://service-collector.cognigy-ai.svc.cluster.local:8000 |
cognigyInsights.secret | APIキーのキーと値を含むシークレット名 | “” |
cognigyInsights.secretKey | APIキーの値を指すシークレットキー | “” |
シークレットキーの値は、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_PROTOCOL | Live AgentからCognigy.AI UIにアクセスするURL | “”https://installation.cognigy.ai”” |
configmap.COGNIGY_AI_API_BASE_URL_WITH_PROTOCOL | Cognigy.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_BOT | Bot のカスタマイズ | “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.verification | SSL証明書の検証を有効にする | “true” |
カスタム認証局を使った自己署名証明書
証明書ファイル名(例:cert.pem)をキーとするシークレットを作成します。これは、Live Agentアプリによって信頼されるように、ポッドファイルシステムにマウントされます。この値には、余分なタブ/スペースなしで証明書ファイルの内容を含める必要があります。次に、以下の値を入力します:
名称 | 説明 |
restClient.ssl.CASecret | CA シークレット名 |
restClient.ssl.CASecretKey | CA シークレットキー |
値の更新後にポッドが再起動されることをご確認ください。
クライアント証明書
クライアント証明書を使用するには、クライアント証明書、クライアント証明書キー、キーのパスフレーズ(キーにパスフレーズがある場合)を含むシークレットを作成します。次に、以下の値を入力します:
名称 | 説明 |
restClient.ssl.clientCertSecret | クライアント証明書のシークレット名 |
restClient.ssl.clientCertSecretKey | クライアント証明書のシークレットキー。値は X509 形式で指定必須。 |
restClient.ssl.clientKeySecretKey | クライアントキーのシークレットキー。値はRSA Keyコンテンツで指定必須。 |
restClient.ssl.clientKeySecretPassphraseKey | クライアントキーのパスフレーズ シークレットキー。キーにパスフレーズがない場合は、コメントのままにします。 |
値の更新後にポッドが再起動されることを確認します。
Odata
キー | 説明 | 種別 |
odata.enabled | ODataサービスとエンドポイントを有効にする | ブーリアン型 |
odata.configmap.ODATA_PROTOCOL | http または 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 | オブジェクト | {} |