To enable Knowledge Graph in a self-hosted Prophecy deployment, follow these steps.
Prerequisites
To enable Knowledge Graph in your Prophecy deployment, you need:
Prophecy version 4.1.3.x or later.
Access to your Kubernetes cluster with appropriate permissions.
Images pulled for the services you are enabling:
Knowledge Graph:
knowledgegraph,prophecy-kg-servicesNeo4j:
neo4j
Additionally, we recommend the following baseline resource allocation. Your resource requirements may vary.
| Component | CPU (requests) | CPU (limits) | Memory (requests) | Memory (limits) |
|---|---|---|---|---|
| knowledgegraph | 2 | 4 | 16000 Mi | 16000 Mi |
| knowledgegraphservice | 7 | 16 | 4000 Mi | 4000 Mi |
| neo4j | 1 | 4 | 4000 Mi | 6000 Mi |
Step 1: Enable services in configuration
Add the following services to all of the following locations:
prophecyclusterathena-pod-metadata-cm
enabledApps:
- knowledgegraph, neo4jTo edit each resource, use the following commands:
kubectl edit prophecycluster -n <namespace>
kubectl edit cm athena-pod-metadata-cm -n <namespace>
Note: Every time you manually edit prophecycluster, you also need to edit athena-pod-metadata-cm to preserve these settings across Prophecy updates.
Step 2: Update cp-env-cm
Edit cp-env-cm:
kubectl edit cm cp-env-cm -n <namespace>
Add the following environment variable:
COPILOT_KINESIS_ENABLED: "true"Step 3: Update orchestrator-cm
Edit orchestrator-cm:
kubectl edit cm orchestrator-cm -n <namespace>
Add the following for the Knowledge Graph:
KNOWLEDGEGRAPH_ENABLED: "true"
KNOWLEDGEGRAPH_PORT: "50055"
CRAWLER_SANDBOXCONFIG_CPU: "2"
CRAWLER_SANDBOXCONFIG_MAXTENANT: "50"
CRAWLER_SANDBOXCONFIG_MEMORY: 4GiStep 4: Restart Orchestrator Pod
To apply configuration changes, delete the orchestrator pod:
kubectl delete pod <orchestrator-pod-name> -n <namespace>
Alternatively, restart all pods (note: incurs ~20 minutes downtime):
kubectl rollout restart deploy -n <namespace>