Set Up Kubernetes
Make sure the cluster meets the following conditions:
-
Kubernetes cluster is installed with minimum 2 worker nodes with total capacity 8 Cores and 32Gb RAM.
-
Machine with kubectl is installed with a cluster-admin access to the Kubernetes cluster.
-
Ingress controller is installed in a cluster, for example ingress-nginx.
-
Ingress controller is configured with the disabled HTTP/2 protocol and header size of 64k support.
Find below an example of the Config Map for the NGINX Ingress controller:
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
client-header-buffer-size: 64k
large-client-header-buffers: 4 64k
use-http2: "false" -
Load balancer (if any exists in front of the Ingress controller) is configured with session stickiness, disabled HTTP/2 protocol and header size of 32k support.
-
Keycloak instance is installed. To get accurate information on how to install Keycloak, please refer to the Install Keycloak instruction.
-
Helm 3.10 or higher is installed on the installation machine with the help of the Installing Helm instruction.
-
Storage classes are used with the Retain Reclaim Policy and Delete Reclaim Policy.
-
We recommended using our storage class as default storage class.
By default, KubeRocketCI uses the default Storage Class
in a cluster. We recommend using the following Storage Classes.
Storage class templates with the Retain and Delete Reclaim Policies:
- ebs-sc
- gp3
- gp3-retain
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ebs-sc
annotations:
storageclass.kubernetes.io/is-default-class: 'true'
allowedTopologies: []
mountOptions: []
provisioner: ebs.csi.aws.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gp3
annotations:
storageclass.kubernetes.io/is-default-class: 'true'
allowedTopologies: []
mountOptions: []
provisioner: ebs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gp3-retain
allowedTopologies: []
mountOptions: []
provisioner: ebs.csi.aws.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true