Installation on DigitalOcean Cloud#
This article explains how to install the AMD enterprise AI reference stack in the DigitalOcean cloud environment. The article complements the full installation article by describing the DigitalOcean specific installation configuration. For more details about the installation steps, refer to the full installation article.
Prerequisites#
Suggested minimum configuration for DigitalOcean droplet:
AMD MI300X
1 GPU - 192 GB VRAM - 20 vCPU - 240 GB RAM
Boot disk: 720 GB NVMe- Scratch disk: 5 TB NVMe
Software requirements:
Choose an image pre-installed with ROCm™ Software (not ROCm enabled GPT_OSS), e.g. ROCm version >= 7.1.
Installation steps#
In order to install on a DigitalOcean droplet, create a bloom.yaml file and copy the following text into the file, replacing <your-ip-address> with the ip address of the node.
DOMAIN: <your-ip-address>.nip.io
CERT_OPTION: generate
FIRST_NODE: true
GPU_NODE: true
CLUSTER_DISKS: /dev/vdc1
During installation, a large number of container images may be pulled from Docker Hub in a short period; unauthenticated pulls can hit rate limits and cause ImagePullBackOff on some pods. Add DOCKERHUB_USER and DOCKERHUB_TOKEN to bloom.yaml before running bloom (see Container Registry Configuration).
Hardware family configuration (optional)#
An empty AIM_HARDWARE_FAMILY leaves the catalog chart on its default unfiltered list. An empty GPU_STACK_FAMILY selects the Instinct GPU Operator profile (amd-gpu-operator/v1.4.1, DeviceConfig driver train 7.0). To limit the AIM catalog, or to select the Radeon GPU Operator profile, add these values to bloom.yaml:
# Limit AIM model sources. Written to
# apps.aim-cluster-model-source.valuesObject.hardwareFamilies
# only when set. Omit to keep the chart default [] (unfiltered catalog).
AIM_HARDWARE_FAMILY: epyc,instinct
# GPU Operator chart, DeviceConfig driver train, and Helm gpuStackFamily.
# Empty resolves to instinct. Also sets apps.amd-gpu-operator.path,
# apps.amd-gpu-operator-config.path, and
# apps.amd-gpu-operator-config.valuesObject.driverVersion.
GPU_STACK_FAMILY: instinct
See Installation configuration values for full details.
Important
AIM_HARDWARE_FAMILY filters the AIM catalog (hardwareFamilies on the Cluster Forge aim-cluster-model-source chart). An empty hardwareFamilies list ([]) selects the unfiltered catalog. GPU_STACK_FAMILY selects the GPU Operator chart paths, DeviceConfig driverVersion, and Helm gpuStackFamily on amd-gpu-operator-config (instinct or radeon). An empty gpuStackFamily resolves to instinct. For a Radeon GPU node, set both to radeon.
Example: Radeon installation. For a Radeon GPU node, set both GPU_STACK_FAMILY and AIM_HARDWARE_FAMILY to radeon:
DOMAIN: <your-ip-address>.nip.io
CERT_OPTION: generate
FIRST_NODE: true
GPU_NODE: true
CLUSTER_DISKS: /dev/vdc1
# Radeon GPU stack
GPU_STACK_FAMILY: radeon
# Radeon AIM model catalog only
AIM_HARDWARE_FAMILY: radeon
Replace <your-ip-address> and CLUSTER_DISKS with values for your environment.
Download the installation tool (“bloom”):
wget https://github.com/silogen/cluster-bloom/releases/latest/download/bloom
Make the file executable:
chmod +x bloom
Then start the installation:
sudo ./bloom cli bloom.yaml
Exit and re-login to source the .bashrc, or run
source ~/.bashrc
Installation without AI Resource Manager#
This explains how to install the reference stack without AI Resource Manager.
Create the bloom.yaml file and copy the following text into the file, replacing <your-ip-address> with the ip address of the node.
DOMAIN: <your-ip-address>.nip.io
CERT_OPTION: generate
FIRST_NODE: true
GPU_NODE: true
CLUSTER_DISKS: /dev/vdc1
AIWB_ONLY: true
Run cluster-bloom installation#
Download and run the cluster-bloom installation tool:
wget https://github.com/silogen/cluster-bloom/releases/latest/download/bloom
chmod +x bloom
sudo ./bloom cli bloom.yaml
source ~/.bashrc
Docker Hub credentials#
Add DOCKERHUB_USER and DOCKERHUB_TOKEN to bloom.yaml before running cluster-bloom to avoid Docker Hub rate limits during installation and ClusterForge setup. See Container Registry Configuration for details.
Add appDomain to values.yaml in Gitea (for installation without AI Resource Manager)#
Note
When installing the reference stack without AI Resource Manager, certain configuration values must be set manually, as described in this section. This step will be automated in an upcoming release.
Navigate to https://gitea.<your-domain> and sign in with the Gitea admin credentials. Retrieve the credentials by running the following command:
echo "username:silogen-admin" && kubectl get secret gitea-admin-credentials -n cf-gitea -o jsonpath='{.data.password}' | base64 -d && echo
After signing in, open the values.yaml file in the cluster-values repository:
https://gitea.<your-domain>/cluster-org/cluster-values/src/branch/main/values.yaml
Select Edit. Under the existing apps.aiwb.helmParameters, add the following entry for appDomain:
aiwb:
helmParameters:
# STANDALONE-MODE
- name: standAloneMode
value: "true"
- name: appDomain
value: <your-domain>
To limit the AIM model catalog, set hardwareFamilies under apps.aim-cluster-model-source.valuesObject in the same file. That chart only takes hardwareFamilies. The GPU Operator profile is a separate set of keys. cluster-bloom writes all four on install, and a later family change in Gitea has to update the same four together. A set driverVersion overrides the per-family profile selected by gpuStackFamily:
aim-cluster-model-source:
valuesObject:
hardwareFamilies:
- instinct
amd-gpu-operator:
path: amd-gpu-operator/v1.4.1
amd-gpu-operator-config:
path: amd-gpu-operator-config/v1.4.1
valuesObject:
gpuStackFamily: instinct
driverVersion: "7.0"
Instinct, the default, uses the paths and driverVersion above. Radeon uses amd-gpu-operator/v1.5.1-beta.0, amd-gpu-operator-config/v1.5.1-beta.0, gpuStackFamily: radeon, and driverVersion: "7.13".
Important
The Cluster Forge aim-cluster-model-source Helm chart (sources/aim-cluster-model-source) only takes hardwareFamilies. An empty hardwareFamilies list ([]) selects the unfiltered catalog. An empty gpuStackFamily on amd-gpu-operator-config resolves to instinct (instinct or radeon). Setting only hardwareFamilies leaves the GPU Operator chart and DeviceConfig driver train unchanged. See Hardware family configuration (optional), Installation configuration values, and AIM model catalog management.
Note
A non-empty hardwareFamilies list installs the per-family profile templates (cpu, epyc, instinct, radeon; cpu currently renders no sources). An empty list ([]) selects templates/unfiltered.yaml: Instinct 0.11.1, 0.12.0, and 0.13.0 plus mixed base images. cluster-bloom writes hardwareFamilies only when AIM_HARDWARE_FAMILY is set. Omit it to keep the chart default [].
Select Commit Changes at the bottom of the page. The change will be synchronized to the cluster within a few minutes.