Installation
Introduction¶
Installing and configuring the Controller using Helm involves a series of steps to ensure proper deployment within a Kubernetes environment. This procedure includes updating the values.yaml file with crucial parameters such as domain names, high availability settings, and API configurations.
This procedure helps users deploy the Controller efficiently on any environment running Kubernetes, including EKS, GKE, or Kubernetes clusters running on virtual machines (VMs) or bare metal. It provides detailed instructions for customizing deployment settings, managing Helm charts, and ensuring that the Controller is correctly configured for the user's infrastructure. Users can simplify the deployment, setup, upgrade, or uninstallation process of the Controller as needed.
- Supported platforms include EKS, GKE, and any Kubernetes clusters running in VMs or on bare metal.
Important
Currently, the Helm-based method to deploy the Rafay controller only supports deploying PostgreSQL locally on the cluster and does not support external databases like RDS. Additionally, it does not support custom registries (ECR/JFrog) that have authentication enabled.
Prerequisites¶
- Ensure that
kubectlandHelm 3are installed - Access to the
kubeconfigfile of the target Kubernetes cluster, with the ability to interact with the cluster using kubectl commands - Ensure the tar extraction utility is installed on the system
- A Kubernetes cluster with nodes having 32 vCPUs, 64 GB memory, and 500 GB root storage
- Wildcard DNS records created in the respective domain, including various wildcard entries: Refer to DNS Record Creation for more information
- Availability of a default labeled StorageClass is required. If no StorageClass is available in the cluster, one can be installed using any storage engine (e.g., OpenEBS)
- Run the following commands on the node where the Rafay Controller will be installed:
sudo iptables -Fsudo sysctl fs.inotify.max_user_instances=8192
Installation¶
These instructions are distribution-agnostic. Modify as needed based on your infrastructure provider and Kubernetes distribution. Contact support if you require assistance.
-
Contact the support team to obtain the latest version of the Rafay Controller helm package, along with the cluster images and assets required for cluster lifecycle management (LCM) using the Rafay Controller.
-
Extract the package using the following command:
tar -xvf rafay-helm-controller-<version>.tar.gzThe extracted package contains the following artifacts:
Artifact Purpose rafaycore-<version>.tgzApplication charts rafay-dep-<version>.tgzDependency charts namespaces.yamlPre-created namespaces values.yamlGlobal install configuration eks-values.yamlGlobal install configuration for AWS EKS gke-values.yamlGlobal install configuration for GCP GKE -
Once extracted, update the Configuration Required and modify the
values.yamlfile. -
Apply the pre-created namespaces:
kubectl apply -f namespaces.yaml -
Install the Controller dependencies:
Important
Make sure to configure the values file with the necessary parameters before moving to further installation steps.
helm install rafay-dep -n rafay-core -f values.yaml ./rafay-dep-<version>.tgz --timeout 15m --server-side=falseImportant
Wait for all dependency pods — especially
postgres-admin— to reach theRunningstate:kubectl get pod -AOnce all pods are running, wait an additional 5 minutes for the pods to settle and for operators to finish their tasks, then proceed to Step 6.
-
To install the Controller, run:
helm install rafay-core -n rafay-core -f values.yaml ./rafaycore-<version>.tgz --timeout 15m --server-side=falseImportant
Wait for all pods to be in the
Runningstate:kubectl get pod -AOnce all pods are running, proceed to Step 7.
Optional: Load Balancer (LB) External IP
Run the following command to retrieve the Load Balancer (LB) External IP associated with the cluster:
kubectl get svc -n istio-system istio-ingressgatewayMap the Load Balancer IP to your wildcard domain's A record (e.g., in Route 53 or Cloud DNS). For detailed instructions on creating and updating DNS records, refer to the DNS Record Reference.
-
Access the Console in the web browser:
https://console.<default_partner_console_domain>
Uninstall¶
Follow the steps below for a successful uninstallation. Wait for all pods in the "Terminating" state to exit before running the next command:
helm uninstall rafay-core -n rafay-core
helm uninstall rafay-dep
Note: Ensure that Elastic CRDs are deleted if present.
Upgrade¶
Use the following commands to upgrade the respective Helm charts:
helm upgrade rafay-dep -f values.yaml ./rafay-dep-<version>.tgz
helm upgrade rafay-core -n rafay-core -f values.yaml ./rafaycore-<version>.tgz