You can install DevOps Plan with
Emissary-ingress load balancer when you plan to scale up hcl-devopsplan pods by running multiple instances. The
Emissary-ingress load balancer distributes network traffic to all hcl-devopsplan pods. Once you have multiple instances of
hcl-devopsplan running, you can perform rolling
updates without downtime.
Before you begin
- Prepare the cluster for installation of a helm chart.
- Check the
openssl version that is installed in your environment. It
must be version 1.1.1 or
later.$ openssl version
OpenSSL 1.1.1s 1 Nov 2022
- Make sure that port 443 is not in
use.
$ openssl version
netstat -anp | grep 443 | grep LISTEN
Procedure
-
Install Emissary-ingress into your cluster.
You can install Emissary-ingress using either Helm or Kubernetes YAML. Installing
using Helm is recommended. For more information, see the
Emissary-ingress quick start guide.
- To install Emissary-ingress into your cluster using
Helm:
# Add the Repo:
helm repo add datawire https://app.getambassador.io
helm repo update
# Create Namespace and Install:
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.4.0/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
helm install emissary-ingress --namespace emissary datawire/emissary-ingress && \
kubectl -n emissary wait --for condition=available --timeout=90s deploy -lapp.kubernetes.io/instance=emissary-ingress
- To install Emissary-ingress using Kubernetes
YAML:
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.4.0/emissary-crds.yaml && \
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.4.0/emissary-emissaryns.yaml && \
kubectl -n emissary wait --for condition=available --timeout=90s deploy -lproduct=aes
Check
the emissary resources and make sure that all resources have been deployed and that they are
running:
kubectl get all -n emissary
kubectl get all -n emissary-system
If
emissary-ingress service EXTERNAL-IP is in a
pending state, then you must use
Port Forwarding to Access Applications in a
Cluster.
kubectl port-forward deployment/emissary-ingress --address [Your_External_IP_Address] 443:8443 -n emissary
-
Generate Ingress Secrets:
- Set values: Set the Ingress Domain address and Namespace
name:
INGRESS_DOMAIN=[Your_External_IP_Address].nip.io
NAMESPACE=[namespace_name]
- Create
namespace:
kubectl create namespace $NAMESPACE
- Create ingress
secrets:
helm pull devops-plan/hcl-devopsplan --untar \
&& chmod +x hcl-devopsplan/files/*.sh \
&& bash hcl-devopsplan/files/certificate.sh -n $NAMESPACE -s ingress $INGRESS_DOMAIN
To
check that the ingress and ingress-ca secrets are created, run the
following:
kubectl get secret -n $NAMESPACE | grep ingress
-
Install DevOps Plan.
helm upgrade --install hcl-devopsplan devops-plan/hcl-devopsplan \
--namespace $NAMESPACE \
--set global.imagePullSecret=[secret-name] \
--set global.certSecretName=ingress \
--set global.domain=$INGRESS_DOMAIN \
--set ingress.enabled=true,ingress.type=mapping \
--set replicaCount=[Number_of_replica]
--set global.imageRegistry=gcr.io/blackjack-209019 \
--set global.hclImagePullSecret=[secret-name] \
Ensure that the ingress URL mapping is
created.
kubectl get mapping -n $NAMESPACE
-
Start the Keycloak home page by using
https://hcl-devopsplan-keycloak.$INGRESS_DOMAIN/ and trust
the keycloak certificate. The username is admin and the password is
admin.
-
Start the DevOps Plan home page in your
browser by using
https://hcl-devopsplan.$INGRESS_DOMAIN/. The username is admin adnd the password is
admin.