Skip to main content
Version: 3.11-dev

Set Up Kubernetes

Make sure the cluster meets the following conditions:

  1. Kubernetes cluster is installed with minimum 2 worker nodes with total capacity 8 Cores and 32Gb RAM.

  2. Machine with kubectl is installed with a cluster-admin access to the Kubernetes cluster.

  3. Ingress controller is installed in a cluster, for example ingress-nginx.

  4. 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"
  5. 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.

  6. Keycloak instance is installed. To get accurate information on how to install Keycloak, please refer to the Install Keycloak instruction.

  7. Helm 3.10 or higher is installed on the installation machine with the help of the Installing Helm instruction.

  8. Storage classes are used with the Retain Reclaim Policy and Delete Reclaim Policy.

  9. We recommended using our storage class as default storage class.

info

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:

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