---
updatedAt: 2025-11-06T05:20:14.000Z
agentTools:
  projectIndex: https://developer.vyasa.com/llms.txt
---

# CentOS 7 Helm Chart

In this guide we will go from a basic CentOS 7 operating system to a fully functioning Layar installation. This guide is intended as an example installation only and makes configuration decisions that may not be best suited for your environment.

## Prerequisites

### Hardware

* 256 GB RAM
* 16+ CPUs
* 1TB SSD available to `/data`
* 1x A10 Series GPU (consult with Certara on your use case for proper GPU sizing)

### Additional Requirements

* The system must have an external DNS entry (not relying on `/etc/hosts`) with the corresponding IP assigned to the host.
* Internet access from the installation system is a requirement.
* Swap must be disabled.
* SELinux must be disabled or set to `Permissive`.

### LLM Requirements

Certara AI allows you to utilize various LLMs for your GPT needs. The models available are determined by the version of Layar you are planning to install. Please review the [available models](https://developer.vyasa.com/docs/setting-generative-system-model) and the minimum GPU requirements needs to run those models

## Installation

Commands should be run as `root` or prefixed with `sudo`.

### Ensure you have current Docker installed

Both Client and Server output should show version 24.0.5. If not please follow the instructions for installing docker on CentOS [here](https://docs.docker.com/engine/install/centos/) before proceeding.

```shell
docker version
```

### Increase operating system `vm.max_map_count`

```shell
echo "vm.max_map_count=262144" > /etc/sysctl.d/99-vyasa.conf 
sysctl -p /etc/sysctl.d/99-vyasa.conf
```

### Configure NetworkManager to ignore Calico interfaces

If using NetworkManager, edit the file `/etc/NetworkManager/conf.d/calico.conf` and set the following:

```text
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:wireguard.cali
```

### Restart NetworkManager

```shell
systemctl restart NetworkManager
```

### Install kernel development packages

```shell
yum -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
```

### Install and enable the EPEL repository

```shell
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum-config-manager --enable epel
```

### Install CUDA 12

Install CUDA per the instructions at NVIDIA.  Ensure DKMS is also installed.\
<https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html>

### Install NVIDIA Docker toolkit

```shell
yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl --now enable docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | tee /etc/yum.repos.d/nvidia-docker.repo

yum clean expire-cache
yum install -y nvidia-docker2
```

### Set docker default runtime

Edit the file `/etc/docker/daemon.json` and replace its contents with:

```json
{
"default-runtime": "nvidia",
"runtimes": {
   "nvidia": {
      "path": "/usr/bin/nvidia-container-runtime",    
      "runtimeArgs": []
    }
  }
}
```

### Restart docker

```shell
systemctl restart docker
```

### Edit `/etc/yum.repos.d/kubernetes.repo` and add:

```text
[kubernetes]

name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
```

### Install Kubernetes

```shell
yum install -y kubeadm-1.23.15-0.x86_64 kubelet-1.23.15-0.x86_64 kubectl-1.23.15-0.x86_64
/usr/bin/kubeadm init --kubernetes-version=1.23.15 --token-ttl 0 --pod-network-cidr=10.17.0.0/16 -v 5
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
```

### Install NGINX Ingress controller

```shell
kubectl apply -f https://vyasa-static-assets.s3.amazonaws.com/layar/nginx-ingress.yaml
```

### Install Calico CNI

```shell
kubectl create -f https://vyasa-static-assets.s3.amazonaws.com/layar/tigera-operator.yaml
kubectl create -f https://vyasa-static-assets.s3.amazonaws.com/layar/custom-resources.yaml
```

### Let head node run pods

```shell
/usr/bin/kubectl taint nodes --all node-role.kubernetes.io/master:NoSchedule-
```

### Install local volume provisioner

```shell
/usr/bin/kubectl apply -f https://vyasa-static-assets.s3.amazonaws.com/layar/local-storage-provisioner.yml
```

### Set default storage class

```shell
kubectl patch storageclass 'local-path' -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
```

### Install Helm

```shell
wget -P /usr/local/bin/ https://vyasa-static-assets.s3.amazonaws.com/layar/helm
chmod +x /usr/local/bin/helm
```

### Add the Layar helm repository

```shell
helm repo add vyasa https://helm.vyasa.com/charts/ --username vyasahelm --password "sail#away()"
helm repo update
```

### Install Layar

Replace `MY_URL` with the IP address or DNS name of your system.

```shell
helm install layar vyasa/layar --set APPURL=MY_URL
```