Create a new VPC Create public subnet.
install eksctl and kubectl. Install AWS CLI and configure it with your credentials.
eksctl create cluster --name karavan-kubernetes-cluster --region your-region-code --version 1.23 --vpc-public-subnets your-first--vpc-subnet, your-second--vpc-subnet --without-nodegroup
eksctl create nodegroup --cluster karavan-kubernetes-cluster --region region-code --name karavan-kubernetes-nodegroup --node-type m5.large --nodes 1 --nodes-min 1 --nodes-max 1 --ssh-public-key your-sshkey
Configure kubectl so that you can connect to an Amazon EKS cluster.
aws eks update-kubeconfig --name karavan-kubernetes-cluster
Create a Karavan Namespace
kubectl create namespace karavan
Set the current Namespace to Karavan
kubectl config set-context --current --namespace=karavan
Create a Storage Class. To learn more about storage class in AWS you can read
Modify AWS/karavan-sc.yaml. Update fileSystemId with the fileSystemId created in above step.
kubectl apply -f AWS/karavan-sc.yaml
Install Tekton
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Install Tekton Dashboard (optional)
kubectl apply --filename https://storage.googleapis.com/tekton-releases/dashboard/latest/tekton-dashboard-release.yaml
Set disable-affinity-assistant
equals true
kubectl edit configmap feature-flags -n tekton-pipelines
Modify the karavan-secret.yaml file and apply Karavan Secret.
kubectl apply -f AWS/karavan-secret.yaml
If you like to use managed infispan service, update karavan-app-deployment-public.yaml
with below details. Username / password for the infispan service should be admin/password
- env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: quarkus.infinispan-client.server-list value: InfispanIp:11222 - name: quarkus.infinispan-client.devservices.enabled value: No
Create Karavan Instance and apply
kubectl apply -k AWS --namespace karavan
Open Karavan Page in browser. Karavan expose the NodePort service on node port 30365. Find out the ip addres of the cluster node and open the url
http://NodeIP:30365
If you want to delete the deployment
kubectl delete -k AWS --namespace karavan
kubectl port-forward -n tekton-pipelines service/tekton-dashboard 9097:9097