{"id":19242669,"url":"https://github.com/apolloconfig/apollo-helm-chart","last_synced_at":"2025-09-10T04:43:16.664Z","repository":{"id":38308437,"uuid":"434210814","full_name":"apolloconfig/apollo-helm-chart","owner":"apolloconfig","description":"Apollo Config Kubernetes Deployment Helm Chart","archived":false,"fork":false,"pushed_at":"2025-02-10T13:20:59.000Z","size":206,"stargazers_count":22,"open_issues_count":5,"forks_count":11,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-08-20T06:37:39.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Mustache","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apolloconfig.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}},"created_at":"2021-12-02T12:23:41.000Z","updated_at":"2025-08-04T07:40:42.000Z","dependencies_parsed_at":"2023-12-17T23:31:04.965Z","dependency_job_id":"795e15f1-7313-4d6b-9b4b-b9136795e101","html_url":"https://github.com/apolloconfig/apollo-helm-chart","commit_stats":{"total_commits":17,"total_committers":6,"mean_commits":"2.8333333333333335","dds":0.4117647058823529,"last_synced_commit":"50e94c56150e078ecabf1f1bdb0efcdb3220e624"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apolloconfig/apollo-helm-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apolloconfig%2Fapollo-helm-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apolloconfig%2Fapollo-helm-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apolloconfig%2Fapollo-helm-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apolloconfig%2Fapollo-helm-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apolloconfig","download_url":"https://codeload.github.com/apolloconfig/apollo-helm-chart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apolloconfig%2Fapollo-helm-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274412862,"owners_count":25280199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-09T17:15:01.437Z","updated_at":"2025-09-10T04:43:16.640Z","avatar_url":"https://github.com/apolloconfig.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apollo Helm Chart\n\n[Apollo](https://github.com/apolloconfig/apollo) is a reliable configuration management system.\n\n## 1. Introduction\n\nThe apollo-service and apollo-portal charts create deployments for apollo-configservice, apollo-adminservice and apollo-portal, which utilize the kubernetes native service discovery.\n\n## 2. Prerequisites\n\n- Kubernetes 1.10+\n- Helm 3\n\n## 3. Add Apollo Helm Chart Repository\n\n```bash\n$ helm repo add apollo https://charts.apolloconfig.com\n$ helm search repo apollo\n```\n\n## 4. Deployments of apollo-configservice and apollo-adminservice\n\n### 4.1 Install\n\napollo-configservice and apollo-adminservice should be installed per environment, so it is suggested to indicate environment in the release name, e.g. `apollo-service-dev`\n\n```bash\n$ helm install apollo-service-dev \\\n    --set configdb.host=1.2.3.4 \\\n    --set configdb.userName=apollo \\\n    --set configdb.password=apollo \\\n    --set configdb.service.enabled=true \\\n    --set configService.replicaCount=1 \\\n    --set adminService.replicaCount=1 \\\n    -n your-namespace \\\n    apollo/apollo-service\n```\n\nOr customize it with values.yaml\n\n```bash\n$ helm install apollo-service-dev -f values.yaml -n your-namespace apollo/apollo-service\n```\n\n### 4.2 Uninstall\n\nTo uninstall/delete the `apollo-service-dev` deployment:\n\n```bash\n$ helm uninstall -n your-namespace apollo-service-dev\n```\n\n### 4.3 Configuration\n\nThe following table lists the configurable parameters of the apollo-service chart and their default values.\n\n| Parameter            | Description                                 | Default             |\n|----------------------|---------------------------------------------|---------------------|\n| `configdb.host` | The host for apollo config db | `nil` |\n| `configdb.port` | The port for apollo config db | `3306` |\n| `configdb.dbName` | The database name for apollo config db | `ApolloConfigDB` |\n| `configdb.userName` | The user name for apollo config db | `nil` |\n| `configdb.password` | The password for apollo config db | `nil` |\n| `configdb.connectionStringProperties` | The connection string properties for apollo config db | `characterEncoding=utf8` |\n| `configdb.service.enabled` | Whether to create a Kubernetes Service for `configdb.host` or not. Set it to `true` if `configdb.host` is an endpoint outside of the kubernetes cluster | `false` |\n| `configdb.service.fullNameOverride` | Override the service name for apollo config db | `nil` |\n| `configdb.service.port` | The port for the service of apollo config db | `3306` |\n| `configdb.service.type` | The service type of apollo config db: `ClusterIP` or `ExternalName`. If the host is a DNS name, please specify `ExternalName` as the service type, e.g. xxx.mysql.rds.aliyuncs.com | `ClusterIP` |\n| `configService.fullNameOverride` | Override the deployment name for apollo-configservice | `nil` |\n| `configService.replicaCount` | Replica count of apollo-configservice | `2` |\n| `configService.containerPort` | Container port of apollo-configservice | `8080` |\n| `configService.image.repository` | Image repository of apollo-configservice | `apolloconfig/apollo-configservice` |\n| `configService.image.tag` | Image tag of apollo-configservice, e.g. `1.8.0`, leave it to `nil` to use the default version | `nil` |\n| `configService.image.pullPolicy`                | Image pull policy of apollo-configservice | `IfNotPresent` |\n| `configService.imagePullSecrets`                | Image pull secrets of apollo-configservice | `[]` |\n| `configService.service.fullNameOverride` | Override the service name for apollo-configservice | `nil` |\n| `configService.service.annotations` | The annotations of the service for apollo-configservice | `{}` |\n| `configService.service.port` | The port for the service of apollo-configservice | `8080` |\n| `configService.service.targetPort` | The target port for the service of apollo-configservice | `8080` |\n| `configService.service.type` | The service type of apollo-configservice                     | `ClusterIP` |\n| `configService.ingress.enabled` | Whether to enable the ingress for config-service or not | `false` |\n| `configService.ingress.annotations` | The annotations of the ingress for config-service | `{}` |\n| `configService.ingress.hosts.host` | The host of the ingress for config-service | `nil` |\n| `configService.ingress.hosts.paths` | The paths of the ingress for config-service | `[]` |\n| `configService.ingress.tls` | The tls definition of the ingress for config-service | `[]` |\n| `configService.ingress.ingressClassName` | The ingressClassName definition of the ingress for config-service | `nil` |\n| `configService.liveness.initialDelaySeconds` | The initial delay seconds of liveness probe | `100` |\n| `configService.liveness.periodSeconds` | The period seconds of liveness probe | `10` |\n| `configService.readiness.initialDelaySeconds` | The initial delay seconds of readiness probe | `30` |\n| `configService.readiness.periodSeconds` | The period seconds of readiness probe | `5` |\n| `configService.config.profiles` | specify the spring profiles to activate | `github,kubernetes` |\n| `configService.config.configServiceUrlOverride` | Override `apollo.config-service.url`: config service url to be accessed by apollo-client | `nil` |\n| `configService.config.adminServiceUrlOverride` | Override `apollo.admin-service.url`: admin service url to be accessed by apollo-portal | `nil` |\n| `configService.config.contextPath` | specify the context path, e.g. `/apollo`, then users could access config service via `http://{config_service_address}/apollo` | `nil` |\n| `configService.env` | Environment variables passed to the container, e.g. \u003cbr /\u003e`JAVA_OPTS: -Xss256k` | `{}` |\n| `configService.strategy` | The deployment strategy of apollo-configservice | `{}` |\n| `configService.resources` | The resources definition of apollo-configservice | `{}` |\n| `configService.nodeSelector` | The node selector definition of apollo-configservice | `{}` |\n| `configService.tolerations` | The tolerations definition of apollo-configservice | `[]` |\n| `configService.affinity` | The affinity definition of apollo-configservice | `{}` |\n| `configService.annotations` | The annotations definition of apollo-configservice | `{}` |\n| `adminService.fullNameOverride` | Override the deployment name for apollo-adminservice | `nil` |\n| `adminService.replicaCount` | Replica count of apollo-adminservice | `2` |\n| `adminService.containerPort` | Container port of apollo-adminservice | `8090` |\n| `adminService.image.repository` | Image repository of apollo-adminservice | `apolloconfig/apollo-adminservice` |\n| `adminService.image.tag` | Image tag of apollo-adminservice, e.g. `1.8.0`, leave it to `nil` to use the default version | `nil` |\n| `adminService.image.pullPolicy`                | Image pull policy of apollo-adminservice | `IfNotPresent` |\n| `adminService.imagePullSecrets`                | Image pull secrets of apollo-adminservice | `[]` |\n| `adminService.service.fullNameOverride` | Override the service name for apollo-adminservice | `nil` |\n| `adminService.service.annotations` | The annotations of the service for apollo-adminservice | `{}` |\n| `adminService.service.port` | The port for the service of apollo-adminservice | `8090` |\n| `adminService.service.targetPort` | The target port for the service of apollo-adminservice | `8090` |\n| `adminService.service.type` | The service type of apollo-adminservice                     | `ClusterIP` |\n| `adminService.ingress.enabled` | Whether to enable the ingress for admin-service or not | `false` |\n| `adminService.ingress.annotations` | The annotations of the ingress for admin-service | `{}` |\n| `adminService.ingress.hosts.host` | The host of the ingress for admin-service | `nil` |\n| `adminService.ingress.hosts.paths` | The paths of the ingress for admin-service | `[]` |\n| `adminService.ingress.tls` | The tls definition of the ingress for admin-service | `[]` |\n| `adminService.ingress.ingressClassName` | The ingressClassName definition of the ingress for admin-service | `nil` |\n| `adminService.liveness.initialDelaySeconds` | The initial delay seconds of liveness probe | `100` |\n| `adminService.liveness.periodSeconds` | The period seconds of liveness probe | `10` |\n| `adminService.readiness.initialDelaySeconds` | The initial delay seconds of readiness probe | `30` |\n| `adminService.readiness.periodSeconds` | The period seconds of readiness probe | `5` |\n| `adminService.config.profiles` | specify the spring profiles to activate | `github,kubernetes` |\n| `adminService.config.contextPath` | specify the context path, e.g. `/apollo`, then users could access admin service via `http://{admin_service_address}/apollo` | `nil` |\n| `adminService.env` | Environment variables passed to the container, e.g. \u003cbr /\u003e`JAVA_OPTS: -Xss256k` | `{}` |\n| `adminService.strategy` | The deployment strategy of apollo-adminservice | `{}` |\n| `adminService.resources` | The resources definition of apollo-adminservice | `{}` |\n| `adminService.nodeSelector` | The node selector definition of apollo-adminservice | `{}` |\n| `adminService.tolerations` | The tolerations definition of apollo-adminservice | `[]` |\n| `adminService.affinity` | The affinity definition of apollo-adminservice | `{}` |\n| `adminService.annotations` | The annotations definition of apollo-adminservice | `{}` |\n\n### 4.4 Sample\n\n1. ConfigDB host is an IP outside of kubernetes cluster\n\n```yaml\nconfigdb:\n  host: 1.2.3.4\n  dbName: ApolloConfigDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n  service:\n    enabled: true\n```\n\n2. ConfigDB host is a dns name outside of kubernetes cluster\n\n```yaml\nconfigdb:\n  host: xxx.mysql.rds.aliyuncs.com\n  dbName: ApolloConfigDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n  service:\n    enabled: true\n    type: ExternalName\n```\n3. ConfigDB host is a kubernetes service\n\n```yaml\nconfigdb:\n  host: apollodb-mysql.mysql\n  dbName: ApolloConfigDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n```\n\n4. Expose config service as Ingress with custom path `/config`\n\n```yaml\n# use /config as root, should specify configService.config.contextPath as /config\nconfigService:\n  config:\n    contextPath: /config\n  ingress:\n    enabled: true\n    hosts:\n      - paths:\n          - /config\n```\n\n5. Expose admin service as Ingress with custom path `/admin`\n\n```yaml\n# use /admin as root, should specify adminService.config.contextPath as /admin\nadminService:\n  config:\n    contextPath: /admin\n  ingress:\n    enabled: true\n    hosts:\n      - paths:\n          - /admin\n```\n\n## 5. Deployments of apollo-portal\n\n### 5.1 Install\n\nTo install the apollo-portal chart with the release name `apollo-portal`:\n\n```bash\n$ helm install apollo-portal \\\n    --set portaldb.host=1.2.3.4 \\\n    --set portaldb.userName=apollo \\\n    --set portaldb.password=apollo \\\n    --set portaldb.service.enabled=true \\\n    --set config.envs=\"dev\\,pro\" \\\n    --set config.metaServers.dev=http://apollo-service-dev-apollo-configservice:8080 \\\n    --set config.metaServers.pro=http://apollo-service-pro-apollo-configservice:8080 \\\n    --set replicaCount=1 \\\n    -n your-namespace \\\n    apollo/apollo-portal\n```\n\nOr customize it with values.yaml\n\n```bash\n$ helm install apollo-portal -f values.yaml -n your-namespace apollo/apollo-portal\n```\n\n### 5.2 Uninstallation\n\nTo uninstall/delete the `apollo-portal` deployment:\n\n```bash\n$ helm uninstall -n your-namespace apollo-portal\n```\n\n### 5.3 Configuration\n\nThe following table lists the configurable parameters of the apollo-portal chart and their default values.\n\n| Parameter            | Description                                 | Default               |\n|----------------------|---------------------------------------------|-----------------------|\n| `fullNameOverride` | Override the deployment name for apollo-portal | `nil` |\n| `replicaCount` | Replica count of apollo-portal | `2` |\n| `containerPort` | Container port of apollo-portal | `8070` |\n| `image.repository` | Image repository of apollo-portal | `apolloconfig/apollo-portal` |\n| `image.tag` | Image tag of apollo-portal, e.g. `1.8.0`, leave it to `nil` to use the default version | `nil` |\n| `image.pullPolicy`                | Image pull policy of apollo-portal | `IfNotPresent` |\n| `imagePullSecrets`                | Image pull secrets of apollo-portal | `[]` |\n| `service.fullNameOverride` | Override the service name for apollo-portal | `nil` |\n| `service.annotations` | The annotations of the service for apollo-portal | `{}` |\n| `service.port` | The port for the service of apollo-portal | `8070` |\n| `service.targetPort` | The target port for the service of apollo-portal | `8070` |\n| `service.type` | The service type of apollo-portal                     | `ClusterIP` |\n| `service.sessionAffinity` | The session affinity for the service of apollo-portal | `ClientIP` |\n| `ingress.enabled` | Whether to enable the ingress or not | `false` |\n| `ingress.annotations` | The annotations of the ingress | `{}` |\n| `ingress.hosts.host` | The host of the ingress | `nil` |\n| `ingress.hosts.paths` | The paths of the ingress | `[]` |\n| `ingress.tls` | The tls definition of the ingress | `[]` |\n| `ingress.ingressClassName` | The ingressClassName definition of the ingress | `nil` |\n| `liveness.initialDelaySeconds` | The initial delay seconds of liveness probe | `100` |\n| `liveness.periodSeconds` | The period seconds of liveness probe | `10` |\n| `readiness.initialDelaySeconds` | The initial delay seconds of readiness probe | `30` |\n| `readiness.periodSeconds` | The period seconds of readiness probe | `5` |\n| `env` | Environment variables passed to the container, e.g. \u003cbr /\u003e`JAVA_OPTS: -Xss256k` | `{}` |\n| `strategy` | The deployment strategy of apollo-portal | `{}` |\n| `resources` | The resources definition of apollo-portal | `{}` |\n| `nodeSelector` | The node selector definition of apollo-portal | `{}` |\n| `tolerations` | The tolerations definition of apollo-portal | `[]` |\n| `affinity` | The affinity definition of apollo-portal | `{}` |\n| `annotations` | The annotations definition of apollo-portal | `{}` |\n| `config.profiles` | specify the spring profiles to activate | `github,auth` |\n| `config.envs` | specify the env names, e.g. dev,pro | `nil` |\n| `config.contextPath` | specify the context path, e.g. `/apollo`, then users could access portal via `http://{portal_address}/apollo` | `nil` |\n| `config.metaServers` | specify the meta servers, e.g.\u003cbr /\u003e`dev: http://apollo-configservice-dev:8080`\u003cbr /\u003e`pro: http://apollo-configservice-pro:8080` | `{}` |\n| `config.files` | specify the extra config files for apollo-portal, e.g. application-ldap.yml | `{}` |\n| `portaldb.host` | The host for apollo portal db | `nil`                              |\n| `portaldb.port` | The port for apollo portal db | `3306` |\n| `portaldb.dbName` | The database name for apollo portal db | `ApolloPortalDB`                                     |\n| `portaldb.userName` | The user name for apollo portal db | `nil` |\n| `portaldb.password` | The password for apollo portal db | `nil` |\n| `portaldb.connectionStringProperties` | The connection string properties for apollo portal db | `characterEncoding=utf8` |\n| `portaldb.service.enabled` | Whether to create a Kubernetes Service for `portaldb.host` or not. Set it to `true` if `portaldb.host` is an endpoint outside of the kubernetes cluster | `false` |\n| `portaldb.service.fullNameOverride` | Override the service name for apollo portal db | `nil` |\n| `portaldb.service.port` | The port for the service of apollo portal db | `3306` |\n| `portaldb.service.type` | The service type of apollo portal db: `ClusterIP` or `ExternalName`. If the host is a DNS name, please specify `ExternalName` as the service type, e.g. xxx.mysql.rds.aliyuncs.com | `ClusterIP` |\n\n### 5.4 Sample\n\n1. PortalDB host is an IP outside of kubernetes cluster\n\n```yaml\nportaldb:\n  host: 1.2.3.4\n  dbName: ApolloPortalDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n  service:\n    enabled: true\n```\n\n2. PortalDB host is a dns name outside of kubernetes cluster\n\n```yaml\nportaldb:\n  host: xxx.mysql.rds.aliyuncs.com\n  dbName: ApolloPortalDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n  service:\n    enabled: true\n    type: ExternalName\n```\n3. PortalDB host is a kubernetes service\n\n```yaml\nportaldb:\n  host: apollodb-mysql.mysql\n  dbName: ApolloPortalDBName\n  userName: someUserName\n  password: somePassword\n  connectionStringProperties: characterEncoding=utf8\u0026useSSL=false\n```\n\n4. Specify environments\n\n```yaml\nconfig:\n  envs: dev,pro\n  metaServers:\n    dev: http://apollo-service-dev-apollo-configservice:8080\n    pro: http://apollo-service-pro-apollo-configservice:8080\n```\n\n5. Expose service as Load Balancer\n\n```yaml\nservice:\n  type: LoadBalancer\n```\n\n6. Expose service as Ingress\n\n```yaml\ningress:\n  enabled: true\n  hosts:\n    - paths:\n        - /\n```\n\n7. Expose service as Ingress with custom path `/apollo`\n\n```yaml\n# use /apollo as root, should specify config.contextPath as /apollo\ningress:\n  enabled: true\n  hosts:\n    - paths:\n        - /apollo\n\nconfig:\n  ...\n  contextPath: /apollo\n  ...\n```\n\n8. Expose service as Ingress with session affinity\n\n```yaml\ningress:\n  enabled: true\n  annotations:\n    kubernetes.io/ingress.class: nginx\n    nginx.ingress.kubernetes.io/affinity: \"cookie\"\n    nginx.ingress.kubernetes.io/affinity-mode: \"persistent\"\n    nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none: \"true\"\n    nginx.ingress.kubernetes.io/session-cookie-expires: \"172800\"\n    nginx.ingress.kubernetes.io/session-cookie-max-age: \"172800\"\n  hosts:\n    - host: xxx.somedomain.com # host is required to make session affinity work\n      paths:\n        - /\n```\n\n9. Enable LDAP support\n\n```yaml\nconfig:\n  ...\n  profiles: github,ldap\n  ...\n  files:\n    application-ldap.yml: |\n      spring:\n        ldap:\n          base: \"dc=example,dc=org\"\n          username: \"cn=admin,dc=example,dc=org\"\n          password: \"password\"\n          searchFilter: \"(uid={0})\"\n          urls:\n          - \"ldap://xxx.somedomain.com:389\"\n\n      ldap:\n        mapping:\n          objectClass: \"inetOrgPerson\"\n          loginId: \"uid\"\n          userDisplayName: \"cn\"\n          email: \"mail\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapolloconfig%2Fapollo-helm-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapolloconfig%2Fapollo-helm-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapolloconfig%2Fapollo-helm-chart/lists"}