Quick Start
Before installing the chart, make sure your infrastructure meets the following conditions.
Requirements
Compute
Minimum requirements:
Scenario | CPU (m) | RAM (Mi) |
Without AI support services | 780 | 1950 |
With AI support services | 1030 | 2400 |
Limits:
Scenario | CPU (m) | RAM (Mi) |
Without AI support services | 1050 | 2505 |
With AI support services | 1800 | 3405 |
Platform
Component | Requirement |
Kubernetes | Version >= 1.19 |
Helm | Version >= 3.10 |
Ingress Controller | Installed and running (for example, |
DNS | Access to DNS zone management at your provider for creating A records |
Domain names | Domains prepared for services (for example: |
TLS | TLS certificates (or wildcard certificate) for HTTPS |
Add repository
helm repo add gramax https://s3.ics-it.ru/public/docreader/helm/ helm repo update
Then verify repository availability with helm search repo gramax.
Example values.yaml
curl -LO https://gram.ax/example.values.yaml
Configure Gramax Enterprise Server
Set main parameters:
CLIENT_NAME— client login for Gramax Enterprise Server. Used for authentication in Docker Registry and when substituting values into configuration variables. Issued at purchase. Required. Example:gramaxGES_URL— URL where GES will be available. Required. Example:https://enterprise.gramax.localAUTH_SERVICE_URL— URL where the auth service will be available. Example:https://ges.gram.ax/authDIAGRAM_RENDERER_SERVICE_URL— URL where the Diagram-renderer service will be available. Example:https://ges.gram.ax/diagram-rendererALLOWED_GRAMAX_URLS— URLs of Gramax instances (documentation portal, browser version, and GES), comma-separated. No trailing comma. Required. Example:https://some-instance.gram.ax,https://another-instance.gram.axLICENSE_KEY— license key for Gramax Enterprise Server. Issued at purchase. Required. Example:765d562b9092eec3…GIT_SERVER_TOKEN— access token for the Git server for reading/cloning repositories. Required. Example:glpat-...GES_ADMIN_EMAILS— workspace owner emails, comma-separated. Written to config only on first startup. Required. Example:admin1@gramax.local,admin2@gramax.localGIT_SERVER_URL— GitLab server address for external storage. Required. Example:https://gitlab.example.comENTERPRISE_STORAGE_TYPE— configuration storage type:gitlaborlocal. Required. Example:gitlabENTERPRISE_CONFIG_PATH— forENTERPRISE_STORAGE_TYPE=local: path to the GES settings folder on the virtual machine. Required. Default:/app/configGIT_PROJECT_PATH— forENTERPRISE_STORAGE_TYPE=gitlab: path to the settings repository in GitLab, asgroup/repository-name. Must be created before initialization. Required. Example:dr/gramax-yaml-managerGIT_PROJECT_BRANCH— branch of theGIT_PROJECT_PATHrepository, if it differs from master. Default:master. Example:mainENTERPRISE_SERVICE_ENCRYPTION_KEY— key for secure data transfer between services. Required. Example:5caf59ed...cddb8489COOKIE_SECRET— key for encrypting user secrets in cookies. Recommended: a 32-byte key (openssl rand -hex 32). Example:397b6f3bf51a73b9...
Also configure SSO connection, AI features, and logging.
Sensitive data (tokens, passwords, keys) is managed via Kubernetes Secret:
secrets.create- create Secret automatically by chart.secrets.name- Secret name used by pods.
Helm chart system values
Configure service resources (CPU and memory) and Ingress access settings. Details are in this article.
Create secrets
Docker config
Secret of type kubernetes.io/dockerconfigjson is used for pulling private Docker images.
Get registry credentials (token with
pullpermissions).Create secret in target namespace:
kubectl create secret docker-registry regcred \ --namespace <your-namespace> \ --docker-server=<REGISTRY_URL> \ --docker-username=<USERNAME> \ --docker-password=<PASSWORD_OR_TOKEN> \ --docker-email=<EMAIL>
Secret with variables
Two scenarios:
Chart creates Secret (
secrets.create: true).Existing Secret is used (
secrets.create: false,secrets.name: "<secret-name>").
Example:
kubectl create secret generic gramax-app-secrets \ -n <namespace> \ --from-literal=COOKIE_SECRET='<...>' \ --from-literal=GIT_SERVER_TOKEN='<...>' \ --from-literal=ENTERPRISE_SERVICE_ENCRYPTION_KEY='<...>'
Install chart
helm install gramax gramax/gramax-enterprise-server-in-k8s -n <...> --create-namespace -f values.yaml
Using existing Secret:
helm install gramax gramax/gramax-enterprise-server-in-k8s \ -n <...> \ --create-namespace \ -f values.yaml \ --set secrets.create=false \ --set secrets.name=gramax-app-secrets