C3 AI Helm Chart Overview and Installation
As part of the C3 Agentic AI Platform installation and deployment process, C3 AI uses Helm to deploy Kubernetes resources for the platform.
The following table lists the main Helm charts that deploy Kubernetes resources for the platform:
| Chart name | Purpose |
|---|---|
c3crds | Sets up and configures C3 AI cluster-level Custom Resource Definitions (CRDs). |
c3aiops | Serves as C3 AI's operator, which manages monitoring, databases, and other operational tasks for the platform. |
c3server | Configures the cluster-level application, c3/c3 and the Nginx ingress controller. |
(Optional) istio/base and Istiod | You can use Istio as a service mesh for traffic management, security, and service-to-service communication within the platform Kubernetes infrastructure. See Install and Set Up Istio for C3 Agentic AI Platform. |
In a standard deployment, C3 AI Operations deploys the c3crds, c3aiops, and c3server Helm charts for your organization. However, if you are a cluster administrator who deploys the Helm charts for your organization or needs to modify its configurations, use this topic as guidance.
The following steps describe the requirements, how to to add the Helm charts, configure their overlays, and install the charts.
- Complete requirements
- Add the Helm charts
- Configure the C3 AI overlays
- Install the Helm charts
Requirements
The Helm charts require the following inputs:
Deployment resources: See Non-Standard Deployment Overview and Requirements.
Secrets: See Create Secrets for Installation and Deployment.
Registry credentials: If you use C3 AI's registry, obtain credentials from CoE or C3 AI Operations. If you use a custom registry, generate credentials.
Helm chart versions: Refer to the "BOM" section in C3 AI Platform Install and Upgrade Requirements for the Helm chart versions for your deployment.
Cluster name: The cluster name, or
<cluster_id>, is defined during resource setup. Refer to the C3 AI Installation Guides for rules that your cluster name must follow.(Cloud only) Cloud identity: The C3 AI Helm charts require cloud identities that the Terraform scripts output. After you download and apply the Terrafrom modules, run the following command to fetch the required identities:
Command Lineaz identity list -o table | grep -i <cluster_id>This is an example command that outputs managed identities for Azure. Adjust accordingly for your cloud provider.
From the output, note the
c3-mi-01andc3privileged-mi-01identities. You will input them in thec3aiopsandc3serverHelp charts, respectively.
(Cloud only) Prerequisite
In a cloud deployment, create the necessary Postgres objects before you add, configure, and install the Helm charts. In an on-premises deployment, you will complete this step as part of the final cluster configuration steps.
Create a sql.json file in the config store at <bucket>/config/_cluster_/<cluster_id>/JdbcStoreConfig/sql.json.
Add the following contents and replace <pg_ip> with your Postgres endpoint. Obtain the Postgres endpoint from your cloud provider:
{
"type" : "JdbcStoreConfig",
"configOverride" : "CLUSTER",
"secretOverride" : "CLUSTER",
"name" : "sql",
"connectionPool" : {
"minIdle" : 0,
"maxIdle" : -1,
"maxTotal" : -1,
"maxWaitMillis" : -1,
"minEvictableIdleTimeMillis" : 30000,
"timeBetweenEvictionRunsMillis" : 15000
},
"credentials" : {
"username" : "postgres",
"serverEndpoint" : "<pg_ip>",
"port" : 5432,
"datastore" : "postgres",
"database" : "c3",
"adminUsername" : "postgres"
},
"sharedReadThreshold" : -1,
"readConnectionPool" : {
"minIdle" : 0,
"maxIdle" : -1,
"maxTotal" : -1,
"maxWaitMillis" : -1,
"minEvictableIdleTimeMillis" : 30000,
"timeBetweenEvictionRunsMillis" : 15000
},
"writeConnectionPool" : {
"minIdle" : 0,
"maxIdle" : -1,
"maxTotal" : -1,
"maxWaitMillis" : -1,
"minEvictableIdleTimeMillis" : 30000,
"timeBetweenEvictionRunsMillis" : 15000
}
}Create a sql.json file in the vault at <bucket>/vault/_cluster_/<cluster_id>/JdbcStoreConfig/sql.json.
Add the following contents and replace <pg_password> with your Postgres password. Obtain the Postgres password from your cloud provider.
{
"type" : "JdbcStoreConfig",
"name" : "sql",
"connectionPool" : { },
"credentials" : {
"password" : "<pg_password>",
"adminPassword" : "<pg_password>"
},
"readConnectionPool" : { },
"writeConnectionPool" : { }
}Add Helm charts
C3 AI publishes all Helm charts to https://jfrog.c3.ai/artifactory/charts/.
Run the following command to add the charts to your local machine:
helm repo add c3 https://jfrog.c3.ai/artifactory/charts/ --username "<username>" --password "<password>" Replace <username> and <password> with your registry credentials.
Configure Helm charts
C3 AI provides overlays for the c3aiops and c3server Helm charts. The following documentation describes the overlay flies and which configurations you must set:
Set the required configurations in the c3aiops and c3server overlay files and note the path where you store the files before proceeding to the next steps.
To set up a Layer 7 load balancer, follow the steps at Configure a Layer 7 load balancer.
If your organization has an on-premises deployment, follow a specific configuration for backend file system storage. See Configure Storage for On-Premises Deployment.
Install Helm charts
Refer to the following sections to install the required Helm charts.
Install steps for non-air gapped environments
Run the following code to install the required Helm charts:
# Install c3crds Helm chart
helm template c3/c3crds --version <version> \| yq '. \| select(.kind == "CustomResourceDefinition")' \| kubectl apply --server-side --force-conflicts -f -
# Install c3aiops Helm chart
helm upgrade --install c3aiops c3/c3aiops --version <version> -n c3-opsadmin --values <overlay_path>
# Install c3server Helm chart
helm upgrade --install c3 c3/c3 --version <version> -n <cluster_id> --values <overlay_path>The code does the following:
- Installs the c3crds, c3aiops, and c3server Helm charts.
- Specifies a version for each Helm chart. Replace
<version>with the appropriate chart version. For thec3chart installation command, replace<cluster_id>with the cluster name defined during infrastructure setup. - Specifies a path to the C3 AI overlay for c3aiops and c3server. Replace
<overlay_path>with the path to where you saved the overlay configurations.
Install steps for air gapped environments
Set environment variables to the respective Helm chart versions:
export C3AIOPS_VERSION ="<c3aiops_version>"
export C3_SERVER_VERSION ="<c3server_version>"
export CHARTS_DIR="./helm_charts"
mkdir -p $CHARTS_DIRIf your organization operates in an air gapped environment, first download each of the Helm charts from a machine with access to https://jfrog.c3.ai/artifactory/charts/ and specify the chart version:
# Download c3aiops Helm chart
helm pull c3/c3aiops --version $C3AIOPS_VERSION -d $CHARTS_DIR
# Download c3server Helm chart
helm pull c3/c3 --version $C3_SERVER_VERSION -d $CHARTS_DIRNext, send the downloaded Helm charts to the air gapped environment and specify a path for the install location:
# Install c3crds Helm chart
helm template c3/c3crds --version <version> \| yq '. \| select(.kind == "CustomResourceDefinition")' > c3crds_<version>.yaml
# Apply c3crds Helm chart
kubectl apply -f c3crds_<version>.yaml
# Install c3aiops Helm chart
helm upgrade --install c3aiops $CHARTS_DIR/c3aiops-$C3AIOPS_VERSION.tgz --values c3aiops.yaml --namespace c3-opsadmin
# Install c3server Helm chart
helm upgrade --install c3 $CHARTS_DIR/c3-$C3_SERVER_VERSION.tgz --values c3server.yaml --namespace <cluster_id>Next step
After you deploy the C3 AI Helm charts, complete the final cluster configuration steps. See Final Cluster Configuration Steps.