Apollo Helm Chart

Apollo is a reliable configuration management system.

1. Introduction

The apollo-service and apollo-portal charts create deployments for apollo-configservice, apollo-adminservice and apollo-portal, which utilize the kubernetes native service discovery.

2. Prerequisites

3. Add Apollo Helm Chart Repository

4. Deployments of apollo-configservice and apollo-adminservice

4.1 Install

apollo-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

Or customize it with values.yaml

4.2 Uninstall

To uninstall/delete the apollo-service-dev deployment:

4.3 Configuration

The following table lists the configurable parameters of the apollo-service chart and their default values.

ParameterDescriptionDefault
configdb.hostThe host for apollo config dbnil
configdb.portThe port for apollo config db3306
configdb.dbNameThe database name for apollo config dbApolloConfigDB
configdb.userNameThe user name for apollo config dbnil
configdb.passwordThe password for apollo config dbnil
configdb.connectionStringPropertiesThe connection string properties for apollo config dbcharacterEncoding=utf8
configdb.service.enabledWhether to create a Kubernetes Service for configdb.host or not. Set it to true if configdb.host is an endpoint outside of the kubernetes clusterfalse
configdb.service.fullNameOverrideOverride the service name for apollo config dbnil
configdb.service.portThe port for the service of apollo config db3306
configdb.service.typeThe 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.comClusterIP
configService.fullNameOverrideOverride the deployment name for apollo-configservicenil
configService.replicaCountReplica count of apollo-configservice2
configService.containerPortContainer port of apollo-configservice8080
configService.image.repositoryImage repository of apollo-configserviceapolloconfig/apollo-configservice
configService.image.tagImage tag of apollo-configservice, e.g. 1.8.0, leave it to nil to use the default versionnil
configService.image.pullPolicyImage pull policy of apollo-configserviceIfNotPresent
configService.imagePullSecretsImage pull secrets of apollo-configservice[]
configService.service.fullNameOverrideOverride the service name for apollo-configservicenil
configService.service.portThe port for the service of apollo-configservice8080
configService.service.targetPortThe target port for the service of apollo-configservice8080
configService.service.typeThe service type of apollo-configserviceClusterIP
configService.ingress.enabledWhether to enable the ingress for config-service or notfalse
configService.ingress.annotationsThe annotations of the ingress for config-service{}
configService.ingress.hosts.hostThe host of the ingress for config-servicenil
configService.ingress.hosts.pathsThe paths of the ingress for config-service[]
configService.ingress.tlsThe tls definition of the ingress for config-service[]
configService.liveness.initialDelaySecondsThe initial delay seconds of liveness probe100
configService.liveness.periodSecondsThe period seconds of liveness probe10
configService.readiness.initialDelaySecondsThe initial delay seconds of readiness probe30
configService.readiness.periodSecondsThe period seconds of readiness probe5
configService.config.profilesspecify the spring profiles to activategithub,kubernetes
configService.config.configServiceUrlOverrideOverride apollo.config-service.url: config service url to be accessed by apollo-clientnil
configService.config.adminServiceUrlOverrideOverride apollo.admin-service.url: admin service url to be accessed by apollo-portalnil
configService.config.contextPathspecify the context path, e.g. /apollo, then users could access config service via http://{config_service_address}/apollonil
configService.envEnvironment variables passed to the container, e.g.
JAVA_OPTS: -Xss256k
{}
configService.strategyThe deployment strategy of apollo-configservice{}
configService.resourcesThe resources definition of apollo-configservice{}
configService.nodeSelectorThe node selector definition of apollo-configservice{}
configService.tolerationsThe tolerations definition of apollo-configservice[]
configService.affinityThe affinity definition of apollo-configservice{}
adminService.fullNameOverrideOverride the deployment name for apollo-adminservicenil
adminService.replicaCountReplica count of apollo-adminservice2
adminService.containerPortContainer port of apollo-adminservice8090
adminService.image.repositoryImage repository of apollo-adminserviceapolloconfig/apollo-adminservice
adminService.image.tagImage tag of apollo-adminservice, e.g. 1.8.0, leave it to nil to use the default versionnil
adminService.image.pullPolicyImage pull policy of apollo-adminserviceIfNotPresent
adminService.imagePullSecretsImage pull secrets of apollo-adminservice[]
adminService.service.fullNameOverrideOverride the service name for apollo-adminservicenil
adminService.service.portThe port for the service of apollo-adminservice8090
adminService.service.targetPortThe target port for the service of apollo-adminservice8090
adminService.service.typeThe service type of apollo-adminserviceClusterIP
adminService.ingress.enabledWhether to enable the ingress for admin-service or notfalse
adminService.ingress.annotationsThe annotations of the ingress for admin-service{}
adminService.ingress.hosts.hostThe host of the ingress for admin-servicenil
adminService.ingress.hosts.pathsThe paths of the ingress for admin-service[]
adminService.ingress.tlsThe tls definition of the ingress for admin-service[]
adminService.liveness.initialDelaySecondsThe initial delay seconds of liveness probe100
adminService.liveness.periodSecondsThe period seconds of liveness probe10
adminService.readiness.initialDelaySecondsThe initial delay seconds of readiness probe30
adminService.readiness.periodSecondsThe period seconds of readiness probe5
adminService.config.profilesspecify the spring profiles to activategithub,kubernetes
adminService.config.contextPathspecify the context path, e.g. /apollo, then users could access admin service via http://{admin_service_address}/apollonil
adminService.envEnvironment variables passed to the container, e.g.
JAVA_OPTS: -Xss256k
{}
adminService.strategyThe deployment strategy of apollo-adminservice{}
adminService.resourcesThe resources definition of apollo-adminservice{}
adminService.nodeSelectorThe node selector definition of apollo-adminservice{}
adminService.tolerationsThe tolerations definition of apollo-adminservice[]
adminService.affinityThe affinity definition of apollo-adminservice{}

4.4 Sample

  1. ConfigDB host is an IP outside of kubernetes cluster
  1. ConfigDB host is a dns name outside of kubernetes cluster
  1. ConfigDB host is a kubernetes service
  1. Expose config service as Ingress with custom path /config
  1. Expose admin service as Ingress with custom path /admin

5. Deployments of apollo-portal

5.1 Install

To install the apollo-portal chart with the release name apollo-portal:

Or customize it with values.yaml

5.2 Uninstallation

To uninstall/delete the apollo-portal deployment:

5.3 Configuration

The following table lists the configurable parameters of the apollo-portal chart and their default values.

ParameterDescriptionDefault
fullNameOverrideOverride the deployment name for apollo-portalnil
replicaCountReplica count of apollo-portal2
containerPortContainer port of apollo-portal8070
image.repositoryImage repository of apollo-portalapolloconfig/apollo-portal
image.tagImage tag of apollo-portal, e.g. 1.8.0, leave it to nil to use the default versionnil
image.pullPolicyImage pull policy of apollo-portalIfNotPresent
imagePullSecretsImage pull secrets of apollo-portal[]
service.fullNameOverrideOverride the service name for apollo-portalnil
service.portThe port for the service of apollo-portal8070
service.targetPortThe target port for the service of apollo-portal8070
service.typeThe service type of apollo-portalClusterIP
service.sessionAffinityThe session affinity for the service of apollo-portalClientIP
ingress.enabledWhether to enable the ingress or notfalse
ingress.annotationsThe annotations of the ingress{}
ingress.hosts.hostThe host of the ingressnil
ingress.hosts.pathsThe paths of the ingress[]
ingress.tlsThe tls definition of the ingress[]
liveness.initialDelaySecondsThe initial delay seconds of liveness probe100
liveness.periodSecondsThe period seconds of liveness probe10
readiness.initialDelaySecondsThe initial delay seconds of readiness probe30
readiness.periodSecondsThe period seconds of readiness probe5
envEnvironment variables passed to the container, e.g.
JAVA_OPTS: -Xss256k
{}
strategyThe deployment strategy of apollo-portal{}
resourcesThe resources definition of apollo-portal{}
nodeSelectorThe node selector definition of apollo-portal{}
tolerationsThe tolerations definition of apollo-portal[]
affinityThe affinity definition of apollo-portal{}
config.profilesspecify the spring profiles to activategithub,auth
config.envsspecify the env names, e.g. dev,pronil
config.contextPathspecify the context path, e.g. /apollo, then users could access portal via http://{portal_address}/apollonil
config.metaServersspecify the meta servers, e.g.
dev: http://apollo-configservice-dev:8080
pro: http://apollo-configservice-pro:8080
{}
config.filesspecify the extra config files for apollo-portal, e.g. application-ldap.yml{}
portaldb.hostThe host for apollo portal dbnil
portaldb.portThe port for apollo portal db3306
portaldb.dbNameThe database name for apollo portal dbApolloPortalDB
portaldb.userNameThe user name for apollo portal dbnil
portaldb.passwordThe password for apollo portal dbnil
portaldb.connectionStringPropertiesThe connection string properties for apollo portal dbcharacterEncoding=utf8
portaldb.service.enabledWhether to create a Kubernetes Service for portaldb.host or not. Set it to true if portaldb.host is an endpoint outside of the kubernetes clusterfalse
portaldb.service.fullNameOverrideOverride the service name for apollo portal dbnil
portaldb.service.portThe port for the service of apollo portal db3306
portaldb.service.typeThe 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.comClusterIP

5.4 Sample

  1. PortalDB host is an IP outside of kubernetes cluster
  1. PortalDB host is a dns name outside of kubernetes cluster
  1. PortalDB host is a kubernetes service
  1. Specify environments
  1. Expose service as Load Balancer
  1. Expose service as Ingress
  1. Expose service as Ingress with custom path /apollo
  1. Expose service as Ingress with session affinity
  1. Enable LDAP support