Skip to content

Latest commit

 

History

History
91 lines (74 loc) · 5.31 KB

README.md

File metadata and controls

91 lines (74 loc) · 5.31 KB

CX Cloud deployment chart

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.

Getting started

Installing the chart

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

Uninstalling the Chart

To uninstall the my-release deployment from namespace kube-system:

helm uninstall my-release --namespace kube-system

Configuration

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 {}

License

MIT © CXCloud