Installation of IBM Event Streams on AKS
This is a step-by-step instruction of how to install IBM Event Streams on a plain K8S cluster in AKS
Step 1 - Reserve an AKS Cluster in TechZone:
Reserve it here - https://techzone.ibm.com/collection/tech-zone-certified-base-images/journey-premium-aws-azure-roks
This one:

You will get an Instance like this:

Scroll down and download you K8S Config file:

Step 2 - Perform installation in Terminal:
Open your preffered terminal Perform the folowing:
export KUBECONFIG=config_kube_download.config
helm repo add ibm-helm https:
kubectl create namespace aks-event-streams
helm install eventstreams ibm-helm/ibm-eventstreams-operator -n aks-event-streams
Get your IBM Entitelment key from here - https://myibm.ibm.com/products-services/containerlibrary
Continue with the installation:
kubectl create secret docker-registry ibm-entitlement-key --docker-username=cp --docker-password=<YOUR-IBM-ENTITELMENT-KEY> --docker-server="cp.icr.io" -n aks-event-streams
helm install nginx-ingress ingress-nginx/ingress-nginx \
--namespace ingress \
--set controller.replicaCount=2 \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.admissionWebhooks.patch.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set "controller.extraArgs.enable-ssl-passthrough="
Step 3 - CR.yaml
Get a template from here - https://github.com/IBM/ibm-event-automation/tree/main/event-streams/cr-examples/eventstreams/kubernetes
On AKS unlike EKS DNS names for ingress endpoints are not automatically provisioned unless you are using ingress controller integrated with a DNS provider (like ExternalDNS with Azure or a managed ingress addon). Since AKS doesn't auto generate DNS, you may use nip.io as a wildcard DND svc. This is an accepted solution for dev and non prod env.
https://nip.io/
I will use develompent.yaml (this one - https://github.com/IBM/ibm-event-automation/blob/main/event-streams/cr-examples/eventstreams/kubernetes/development.yaml) You need to change class:
kubectl get svc -n ingress
In my case:

Save it to a new development-fixed.yaml file (like the one in this repository) and apply it:
kubectl apply -f development-fixed.yaml -n aks-event-streams
kubectl get eventstreams -n aks-event-streams
You will see this:

Step 4 - Create an Admin User
According to documentation, in the next step you need to install Event Streams CLI
To do that, you need to login to Event Streams as an Administrator, but you don't have Administrator user yet. You need to create it. To create an admin user, do this, apply es-admin-kafkauser.yaml from this repository and restast event streams operator to load new credentials:
kubectl apply -f es-admin-kafkauser.yaml
### TO PICKUP NEW CREDENTIALS
kubectl rollout restart deployment/eventstreams-cluster-operator -n aks-event-streams
kubectl get kafkauser -n aks-event-streams
You will see something like this:

es-admin kafkauser was created.
Now, you need to get the password. Do the following:
kubectl get secret es-admin -n aks-event-streams -o jsonpath="{.data.password}" | base64 -d
Remove % char at the end. This is your admin password Now you can login to Event Stream Admin UI:
https://adminui.eventstreams.YOUR_IP_FROM_PREVIOUS_STEP.nip.io/ username: es-admin password: from previous step (don't forget to remove % at the end)
Well Done

Now you can proceed with installation on Event Streams CLI
Full repository with files and instructions - https://github.ibm.com/Aleksandr-K/Installation-of-IBM-Event-Streams-on-AKS