CX Cloud deployment chart is a Helm chart for deploying microservices easily into a Kubernetes cluster. The helm chart has support for the AWS Load Balancer Controller and works well together with Amazon EKS.
Add the repository:
helm repo add cxcloud https://cxcloud.github.io/helm-charts
Update repositories:
helm repo update
To install the chart with latest version and release name my-release
into the namespace production
:
helm upgrade -i my-release cxcloud/cxcloud-deployment-chart --namespace production
For specific chart version, add --version x.x.x
into helm command. Some release notes can be found in
https://github.com/cxcloud/helm-charts
To uninstall the my-release
deployment from namespace kube-system
:
helm uninstall my-release --namespace kube-system
The following table list the configurable parameters of the chart and their default values.
Parameter | Description | Default |
---|---|---|
name | Name for the microservice | cxcloud |
replicaCount | Amount of pods | 2 |
image.repository | Repository for docker image | 012345678901.dkr.ecr.eu-west-1.amazonaws.com/cxcloud-service |
image.tag | Docker image tag | 0.1.0 |
image.pullPolicy | Image pull policy | IfNotPresent |
restartPolicy | The restartPolicy applies to all containers in the Pod | Always |
service.type | Service Type | ClusterIP |
service.ports | Port configuration map | http default configuration |
service.ports.http | Name of the port configuration | http |
service.ports.port | Exposed Kubernetes port | 80 |
service.ports.targetPort | Application port, service send requests to this port | 8080 |
service.ports.protocol | Application protocol | TCP |
awsLbController.enabled | Enable AWS LoadBalancer Controller | true |
awsLbController.groupName | specifies the group name that this Ingress belongs to | cxcloud |
awsLbController.groupOrder | specifies the order across all Ingresses within IngressGroup | 0 |
awsLbController.host | Host name for routing rules | "" |
awsLbController.path | Application path for routing rules | /* |
awsLbController.listenPorts.http | Specifies the http port that ALB used to listen on | "80" |
awsLbController.listenPorts.https | Specifies the https port that ALB used to listen on | "" |
awsLbController.redirectToHTTPSPort | Redirect http traffic to the https port | false |
awsLbController.targetType | Specifies how to route traffic to pods. You can choose between instance and ip | ip |
awsLbController.scheme | Specifies whether your LoadBalancer will be internet facing | internal |
awsLbController.certificateArn | specifies the ARN of one or more certificate managed by AWS Certificate Manager | "" |
awsLbController.wafv2AclArn | specifies ARN for the Amazon WAFv2 web ACL | "" |
awsLbController.healthCheck.path | specifies the HTTP path when performing health check on targets | / |
awsLbController.healthCheck.port | specifies the port used when performing health check on targets | 80 |
awsLbController.healthCheck.successCodes | specifies the HTTP status code that should be expected when doing health checks against the specified health check path | 200 |
awsLbController.healthCheck.interval | specifies the interval (in seconds) between health check of an individual target | 10 |
awsLbController.healthCheck.timeout | specifies the timeout (in seconds) during which no response from a target means a failed health check | 10 |
awsLbController.healthCheck.healthyThreshold | specifies the consecutive health checks successes required before considering an unhealthy target healthy | 2 |
awsLbController.healthCheck.unhealthyThreshold | specifies the consecutive health check failures required before considering a target unhealthy | 2 |
awsLbController.annotations | Additional AWS Load Balancer Controller annotations | {} |
healthChecks | Kubernetes health check probes for pods | {} |
rollingUpdate | Default rolling update strategy | maxSurge: 25%, maxUnavailable: 25% |
env | Pod environment variables as maps | {} |
resources | CPU and memory resources object for pods | limits and requests objects |
serviceAccount.create | Create Service Account | false |
serviceAccount.roleArn | Associate an IAM role to a service account | "" |
serviceAccount.annotations | Service Account annotations | {} |
securityContext.runAsUser | Specifies that for any Containers in the Pod, all processes run with the user ID | "" |
securityContext.runAsGroup | Specifies the primary group ID for all processes within any containers of the Pod. | "" |
securityContext.fsGroup | Kubernetes recursively changes ownership and permissions for the contents of each volume to match the fsGroup | "" |
nodeSelector | Kubernetes node selection constraint | {} |
tolerations | Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints | [] |
affinity | constrain which nodes your pod is eligible to be scheduled on | {} |
MIT © CXCloud