You can find information about the tasks that you can perform to install IBM® DevOps Loop on IBM Cloud Kubernetes
Service (IKS) by using a newly created cluster. You can use the Helm chart to perform the
installation.
You must have completed the following tasks:
-
Navigate to in your IBM Cloud account and associate the kubectl context with
your cluster.
-
Navigate to and note down the IP address of the public ingress
controller.
-
Navigate to and note down the region in the domain name of your cluster,
which is in the format,
<cluster_name-id>.<region>.containers.appdomain.com.
-
Click Create in the Domain tab
and perform the following steps:
- Provide a domain name in the format,
<custom_name>.<region>.containers.appdomain.com,
by using the region noted down in the previous step.
- Provide the IP address of the public ingress controller noted down in
step 2.
- Set the domain as the default domain.
Note: If you do not set this as the default domain, you
must delete and re-create the domain to set it as the default domain.
-
Make the certificate and key available as a Kubernetes secret in the Kubernetes
namespace that you use for DevOps Loop.
-
Perform the following steps to install Emissary-ingress in your cluster:
- Run the following commands to set the Ambassador Edge Stack Helm
chart:
helm repo add datawire https://app.getambassador.io
helm repo update
- Run the following commands to create a namespace and install the
Ambassador Edge
stack:
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
- Perform the following step to create
emissary-ports.yaml:
cat <<EOF > emissary-ports.yaml
service:
ports:
- name: https
port: 443
targetPort: 8443
#nodePort: <optional>
- name: http
port: 80
targetPort: 8080
#nodePort: <optional>
- name: deploy-wss
port: 7919
targetPort: 7919
#nodePort: <optional>
- name: build-wss
port: 7920
targetPort: 7920
#nodePort: <optional>
- name: control-ssh
port: 9022
targetPort: 9022
#nodePort: <optional>
EOF
- Install
Emissary-ingress:
helm install emissary-ingress --namespace emissary datawire/emissary-ingress -f emissary-ports.yaml && \
kubectl -n emissary wait --for condition=available --timeout=90s deploy -lapp.kubernetes.io/instance=emissary-ingress
-
Note down the domain name for your cluster, which is in the format,
<custom_name>.<region>.containers.appdomain.com.
You can navigate to in the IBM Cloud console or run the following command to list the
domains in your cluster:
ibmcloud ks ingress domain ls --cluster <CLUSTER_NAME>
-
Perform the following steps to access the IBM Entitled
Registry:
- Get a key to the IBM Entitled Registry.
- Log in to My IBM Container
Software Library
with the IBM ID and
password that are associated with the entitled software.
- Select the Copy key option to
copy the entitlement key in the Entitlement
keys section to the clipboard.
- Create a secret in the target namespace with the
secret name ibm-entitlement-key to pull images from the IBM Entitled Registry:
kubectl create secret docker-registry ibm-entitlement-key \
--namespace [namespace_name] \
--docker-username=cp \
--docker-password=<EntitlementKey> \
--docker-server=cp.icr.io
Note: Secrets are namespace-specific and they are
required to install DevOps Plan.
-
Run the following command to add the repository:
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm --force-update
-
Run the following command to view the README.md
file:
helm show readme ibm-helm/ibm-devops-loop
-
Update the following parameters and the other required parameters in the script
in the Helm README with the correct values:
- DOMAIN
- TLS_CERT_SECRET_NAME
- RWO_STORAGE_CLASS=ibmc-block-gold
- RWX_STORAGE_CLASS=ibmc-file-gold-gid
For DOMAIN and TLS_CERT_SECRET_NAME, you must provide the values noted down
in the previous steps.
-
Run the script in the Helm README for K8 installation.
-
Perform the following steps to enable non-HTTP and additional special
services:
- Run the following command to display the IP of the L4 load balancer
installed as part of DevOps Loop:
kubectl get svc --namespace emissary emissary-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
- Perform the following steps to create a new domain by using the IP of
the L4 load balancer:
- Navigate to .
- Copy the default domain name.
- Click Create.
- Enter service-<copied_domain_name> in
Name.
- Enter the IP of the L4 load balancer in IP
address.
- Click Create.
You can also run the following command from
CLI:ibmcloud ks ingress domain create --cluster CLUSTER [--crn CRN] [--is-default] [--domain DOMAIN] [--hostname HOSTNAME] [--ip IP] [--output OUTPUT] [--domain-provider PROVIDER] [-q] [--secret-namespace NAMESPACE] [--zone ZONE]
Note: You must ensure that the domain created in
this step is not the default domain.
You have installed DevOps Loop on IKS by using a newly
created cluster.