Helm chart to deploy E Corps applications on a Kubernetes cluster, with a front-end and a back-end application.
# lints the chart
helm lint .
# gets ingress controller public IP
NGINX_PUBLIC_IP=`kubectl get service -n ingress-nginx ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'`
# creates Kubernetes template file from chart
helm template ecorp-demo . -f values.yaml \
--namespace ecorp > temp.yaml
# applies the manifest (add "--debug > output.yaml" in case of issue)
helm upgrade --install -f values.yaml --create-namespace \
--set aspnetcore.environment=Development \
--set backend.host=ecorp-demo-api.${NGINX_PUBLIC_IP}.sslip.io \
--set backend.tls.secretName=ecorp-backend-tls \
--set frontend.host=ecorp-demo.${NGINX_PUBLIC_IP}.sslip.io \
--set frontend.tls.secretName=ecorp-frontend-tls \
--set nodejsApi.host=ecorp-nodejs-api.${NGINX_PUBLIC_IP}.sslip.io \
--set nodejsApi.tls.secretName=ecorp-nodejs-api-tls \
--set nodejsApi.env[1].name=RABBITMQ_URL \
--set nodejsApi.env[1].value="amqp://<username>:<password>@rabbitmq.rabbitmq.svc.cluster.local:5672" \
--set 'ingress.annotations.cert-manager\.io/cluster-issuer=letsencrypt-prod' \
--namespace ecorp ecorp-demo .
# checks everythings is ok
kubectl get all -n ecorp
kubectl get Secrets,Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges -n ecorp
# manual: open in a browser https://ecorp-demo.${NGINX_PUBLIC_IP}.sslip.io and https://ecorp-demo-api.${NGINX_PUBLIC_IP}.sslip.io/swagger
# if needed, deletes the chart
helm delete ecorp-demo -n ecorp