{"id":49225450,"url":"https://github.com/tonicai/tonic_helm_charts","last_synced_at":"2026-04-24T07:02:03.020Z","repository":{"id":38234588,"uuid":"288906703","full_name":"TonicAI/tonic_helm_charts","owner":"TonicAI","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-13T17:17:52.000Z","size":288,"stargazers_count":9,"open_issues_count":1,"forks_count":26,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-03-14T04:56:54.664Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go Template","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TonicAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-20T04:32:53.000Z","updated_at":"2026-03-03T16:16:52.000Z","dependencies_parsed_at":"2023-01-28T06:31:15.702Z","dependency_job_id":"cbb0482e-7ca9-4f6b-bf3b-62fdb9f071dc","html_url":"https://github.com/TonicAI/tonic_helm_charts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TonicAI/tonic_helm_charts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonicAI%2Ftonic_helm_charts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonicAI%2Ftonic_helm_charts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonicAI%2Ftonic_helm_charts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonicAI%2Ftonic_helm_charts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonicAI","download_url":"https://codeload.github.com/TonicAI/tonic_helm_charts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonicAI%2Ftonic_helm_charts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32212808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-24T07:02:01.050Z","updated_at":"2026-04-24T07:02:03.000Z","avatar_url":"https://github.com/TonicAI.png","language":"Go Template","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Tonic Helm Chart\nThis repository contains a Helm chart which can be used to install Tonic via `helm install`.\n\nProject structure:\n```\n.\n├── templates\n      └── \u003cAll template files\u003e\n├── values.sample.yaml\n└── README.md\n```\n\n## Configuration\n\n### values.yaml\nBefore deploying this setup, rename [values.sample.yaml](values.sample.yaml) to `values.yaml` and configure the following values.\n\n### Tonic license\n\n- This value will be provided by Tonic and must be input upon first startup of Tonic. Subsequently, it can be updated [from within the Tonic Admin portal](https://docs.tonic.ai/app/admin/on-premise-deployment/license-key-enter-update). Note that this was previously maintained via `tonicLicense`, but this is no longer needed since version 519.\n\n### Environment name\n\n- `environmentName`: E.g. \"my-company-name\", or if deploying multiple Tonic instances, \"my-company-name-dev\" or \"my-company-name-prod to differentiate instances.\n\n### Application database\nThe connection details for the Postgres metadata/application database which holds Tonic's state (user accounts, workspaces, etc.).\n\n``` yaml\ntonicdb:\n  host:\n  port:\n  dbName:\n  user:\n  password:\n  sslMode:\n```\n\n### Consistency seed\nThis value is used to support [Consistency](https://docs.tonic.ai/app/generation/generators/consistency) functionality across data generations.\n\n- `tonicStatisticsSeed`: Any signed 32-bit integer, i.e. between \"-2147483648\" and \"2147483647\". Wrap the values in quotes to avoid [type issues](https://helm.sh/docs/chart_best_practices/values/#make-types-clear) with values larger than 6 digits.\n\n### Number of workers to deploy\n\n- `numberOfWorkers`: An integer. Increase to more than 1 to deploy additional workers. Each worker can run a single job (Data Generation or Privacy Scan) at a time. Multiple workers are needed to run jobs simultaneously. This sets the number of replicas in the Tonic Worker Deployment spec.\n\n### Authorization to access Tonic application Docker images\nTonic hosts our application images on a private [quay.io](https://quay.io) repository. Authorization is required to pull the images.\n\n- `dockerConfigAuth`: This value will be provided to you by Tonic and will allow you to authenticate against our private docker image repository.\n\n\n### Version\nYou can set this to a specific Tonic version number if you wish to ensure you always get the same version. Otherwise you will always deploy the latest version of Tonic.\n\n- `tonicVersion`: \"latest\" or a specific version tag. Tonic's tag convention is just the release number, e.g. \"123\". Release notes are available at [doc.tonic.ai](https://docs.tonic.ai/app/resources/release-notes).\n\n### Tonic administrators\nRefer to the [Tonic documentation on Administrators](https://docs.tonic.ai/app/admin/managing-admin-users) for more information. This is optional and can be configured in the following section of the values.yaml file.\n``` yaml\ntonicai:\n  web_server:\n    # Comma separated list of user emails that should be have the Admin role in Tonic.\n    administrators: example@email.com,other@email.com\n```\n\n### Ingress\nThe Helm charts include default annotations for internal-facing load balancers for AWS and Azure. You can change to your preferred ingress method by modifying [tonic-web-server-service.yaml](templates/tonic-web-server-service.yaml).\n\n### Resource requests and limits\nEach of the deployment YAML template files contains resource requests and limits. In some cases these may need to be modified for your environment.\n\n### Other miscellaneous configuration\nOther configuration items are necessary when using and to enable the following functionality. The Tonic support team will provide additional information if these apply for your use case.\n- Connecting to a Snowflake database as a source and destination\n- Connecting to a Redshift database as a source and destination\n- For Professional and Enterprise licensed users, configuring login/authentication via [Single Sign-On](https://docs.tonic.ai/app/admin/on-premise-deployment/single-sign-on)\n- For Professional and Enterprise licensed users, configuring an email server for collaboration/commenting email notifications\n\n\n\n## Deploy\nTo install Tonic, execute the following commands.\n\nCreate a namespace: `kubectl create namespace \u003cnamespace_name\u003e`\n``` shell\n$ kubectl create namespace my-tonic-namespace\nnamespace/my-tonic-namespace created\n```\n\nDeploy Tonic: `helm install \u003cname_of_release\u003e -n \u003cnamespace_name\u003e \u003cpath-to-helm-chart\u003e`\n``` shell\n$ helm install my-tonic-release -n my-tonic-namespace .\nNAME: my-tonic-release\nLAST DEPLOYED: Fri Jun 10 11:31:31 2022\nNAMESPACE: my-tonic-namespace\nSTATUS: deployed\nREVISION: 1\n```\n\n\n## Validate the deployment\n\nUse `kubectl get all -n \u003cnamespace_name\u003e` to check that the Tonic pods are running:\n\nThe deployment may take a few minutes with pods in the `ContainerCreating` status. Re-run the command to get an updated status. Once all pods have a status of `Running` and deployments show `READY` as `1/1`, Tonic should be available shortly after via browser at the URL/IP listed in the `EXTERNAL-IP` field next to the load balancer service. If you have modified the Helm chart ingress configuration, then this will vary. While not required, it's recommended to set up a more user-friendly domain routing to the Tonic web application.\n\n``` shell\n❯ kubectl get all -n my-tonic-namespace\nNAME                                       READY   STATUS              RESTARTS   AGE\npod/tonic-notifications-578d8b8568-7tktx   0/1     ContainerCreating   0          3s\npod/tonic-web-server-b4b795d8-bbr6g        0/1     Running             0          3s\npod/tonic-worker-b8f87bc5c-srd6p           0/1     ContainerCreating   0          3s\n\nNAME                          TYPE           CLUSTER-IP       EXTERNAL-IP                                                                       PORT(S)             AGE\nservice/tonic-notifications   ClusterIP      10.100.211.114   \u003cnone\u003e                                                                            7000/TCP,7001/TCP   3s\nservice/tonic-web-server      LoadBalancer   10.100.105.239   \u003cload-balancer-assigned-url\u003e                                                      443:32479/TCP       3s\nservice/tonic-worker          ClusterIP      10.100.26.158    \u003cnone\u003e                                                                            8080/TCP,4433/TCP   3s\n\nNAME                                  READY   UP-TO-DATE   AVAILABLE   AGE\ndeployment.apps/tonic-notifications   0/1     1            0           3s\ndeployment.apps/tonic-web-server      0/1     1            0           3s\ndeployment.apps/tonic-worker          0/1     1            0           3s\n\nNAME                                             DESIRED   CURRENT   READY   AGE\nreplicaset.apps/tonic-notifications-578d8b8568   1         1         0       3s\nreplicaset.apps/tonic-web-server-b4b795d8        1         1         0       3s\nreplicaset.apps/tonic-worker-b8f87bc5c           1         1         0       3s\n```\n\nYou can validate that Tonic has fully started up and is in a healthy state by running `kubectl logs deployment/tonic-web-server -n \u003cnamespace_name\u003e | grep listening` and checking for the following output.\n\n``` shell\n❯ kubectl logs deployment/tonic-web-server -n my-tonic-namespace | grep listening\n[2022-06-10T16:48:29+00:00 INF Microsoft.Hosting.Lifetime] Now listening on: http://0.0.0.0:80\n[2022-06-10T16:48:29+00:00 INF Microsoft.Hosting.Lifetime] Now listening on: https://0.0.0.0:443\n```\n\n### If the Tonic UI does not load\n1. Check that Tonic is successfully connecting to the application database.\nRun `kubectl logs deployment/tonic-web-server -n \u003cnamespace_name\u003e | grep \"Failed to connect\"`. If you see a `Failed to connect to db during startup.  Retrying in 5 seconds...` message like below, Tonic is not able to connect to your Postgres application database. Please verify the network path between Tonic and the database as well as the connection parameters.\n\n``` shell\n❯ kubectl logs deployment/tonic-web-server -n my-tonic-namespace | grep \"Failed to connect\"\n[2022-06-10T16:50:40+00:00 WRN ] Failed to connect to db during startup.  Retrying in 5 seconds...\n[2022-06-10T16:50:45+00:00 WRN ] Failed to connect to db during startup.  Retrying in 5 seconds...\n[2022-06-10T16:50:50+00:00 WRN ] Failed to connect to db during startup.  Retrying in 5 seconds...\n[2022-06-10T16:50:55+00:00 WRN ] Failed to connect to db during startup.  Retrying in 5 seconds...\n```\n\n2. If Tonic appears to be running and in a healthy state but you are unable to load the UI, verify that Tonic is reachable. Common issues may be a requirement to be on a VPN , firewall rules preventing access, or another issue with the ingress configuration used to expose your cluster to external user traffic.\n\n## Monitor\n\nThis chart can additionally configure Prometheus metrics exporting. This requires the `monitoring.coreos.com.v1.PodMonitor` CRD to be available. To enable Prometheus export monitoring set:\n\n```yaml\nmonitoring:\n  podMonitors:\n    create: true\n```\n\n## Gateway API\n\nThis chart can be used to create Gateway API resources. These options are\ncontrolled by the `httpRoutes` value. By default the chart will create\nresources using the `gateway.networking.k8s.io/v1beta1` version. This can be\nchanged by setting `httpRoutes.apiVersion`.\n\nExample: Creating an HTTPRoute for the Structural web server\n```yaml\nhttpRoutes:\n  create: true\n  apiVersion: gateway.networking.k8s.io/v1beta1\n  web:\n    labels:\n        k8s.tonic.ai/gateway-1-access: true\n    hostnames:\n        - structural.internal.example.com\n    parentRefs:\n      - group: gateway.networking.k8s.io\n        kind: Gateway\n        name: gateway-1\n        namespace: gateways\n        sectionName: https\n```\n\nAfter access via the Gateway API is confirmed, it is recommended to disable\ningress resources and explicitly use a ClusterIP for the web server via:\n\n```yaml\ntonicai:\n  use_ingress: false\n  web_server:\n    service_type: \"ClusterIP\"\n```\n\nBecause Gateway API implementations often rely on arbitrary custom resources,\nthis chart provides the `additionalResources` key that can be used to create\narbitrary resources. These resources are templated with the chart values.\n\nExample: Creating a `TargetGroupConfiguration` resource for the `AWS\nLoadBalancer Operator` for the Structural web server\n```yaml\nadditionalResources:\n  - |-\n    {{- $httpRoutes := .Values.httpRoutes }}\n    apiVersion: gateway.k8s.aws/v1beta1\n    kind: TargetGroupConfiguration\n    metadata:\n      name: tonic-web-server\n      namespace: {{ .Release.Namespace }}\n      labels:\n        {{- if ($httpRoutes.web).labels }}\n        {{- $httpRoutes.web.labels | toYaml | nindent 4 }}\n        {{- end }}\n        {{- include \"tonic.labels\" . | nindent 4 }}\n    spec:\n      targetReference:\n        name: tonic-web-server\n      defaultConfiguration:\n          protocol: \"HTTPS\"\n          healthCheckConfig:\n            healthCheckPath: /health\n            healthCheckProtocol: HTTPS\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonicai%2Ftonic_helm_charts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonicai%2Ftonic_helm_charts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonicai%2Ftonic_helm_charts/lists"}