System Requirements
Before installing AHD, check the following minimum requirements.
Not respecting these requirements might lead to malfunctioning or performance issues, so it is vital to ensure that they are properly met.
CPU Architecture and Hypervisors
AHD Appliance provides Fedora CoreOS out-of-the-box, inheriting the OS supported platforms Nevertheless, AHD internal components are compiled for x86 CPU architecture on the underlying hardware.
x86-64-v3 CPU Required
The container images used by AHD are based on RHEL 10 (UBI 10), which is compiled for the x86-64-v3 microarchitecture level (AVX2, BMI1, BMI2, FMA, LZCNT, MOVBE). On a CPU that does not support it, containers fail at startup with Fatal glibc error: CPU does not support x86-64-v3.
This means:
- physical hardware must be Intel Haswell (or newer) or AMD Excavator/Zen (or newer)
- on VMware vSphere, the EVC mode of the cluster (or of the VM) must be Intel "Haswell" or higher: "Sandy Bridge" and "Ivy Bridge" are not enough
- on other hypervisors, the virtual CPU must expose the host features (e.g.
host-passthroughon KVM)
To verify it, run the following command inside the VM:
/lib64/ld-linux-x86-64.so.2 --help | grep 'x86-64-v3'
The output must contain x86-64-v3 (supported, searched).
Changing the EVC mode requires a full power-off/on of the VM: a guest reboot is not enough.
Tested Hypervisors
We tested AHD Appliances on
- VMware
- VirtualBox
- Hyper-V
- KVM
- QEMU please refer to your hypervisor for requirements or support
Minimum Hardware Resource Requirements
The hardware requirements of AHD depend on the applications that are going to be installed. We'll provide some common usage examples of Grain, to help sizing the resources.
These requirements are the minimum amount and may need to be increased based on the load the application will handle.
Make sure to keep track of resource usage and tune the hardware of your deployment based on usage.
Unrelated to what you're going to install, it is highly recommended to create a VM with at least 2 CPU cores, 4GB RAM and 50GB disk size
Webup
If you are using only Webup, connecting to an external backend (i.e. Grain's IBMi backend):
| Component | CPU (cores) | RAM (GB) | Disk (GB) |
|---|---|---|---|
| Webup (web application) | 2 | 8 | 50 |
| AS400-Proxy (communication) | 1 | 4 | 10 |
| H53 (printing services) | 1 | 4 | 10 |
Kokos
For Kokos, the standard Grain backend, the minimum requirements depend on which non-standard MicroExecutors you deploy.
The "Base" component includes:
- Dispatcher
- ME Java RPGLE Std
- MongoDB
- PostgreSQL
- OpenVSCode
| Component | CPU (cores) | RAM (GB) | Disk (GB) |
|---|---|---|---|
| Base | 2 | 8 | 50 |
| Event queues | 1 | 2 | 20 |
| Custom MicroExecutors | See ME requirements | See ME requirements | See ME requirements |
Restapi
If you're using Grain as an integration HUB:
| Component | CPU (cores) | RAM (GB) | Disk (GB) |
|---|---|---|---|
| Restapi | 2 | 4 | 30 |
Commons
If you need Monitoring and Metrics:
| Component | CPU (cores) | RAM (GB) | Disk (GB) |
|---|---|---|---|
| Monitoring Stack (Loki + Prometheus + Grafana) | 2 | 4 | 50 |
If in the future you need to install additional components or scale up with multiple replicas, adjust the virtual machine hardware accordingly.
Networking Requirements
Network traffic must be allowed on the following ports and DNS for a correct installation of AHD.
* stands for ANY third level domain
Example:
*.smeup.cloud should allow traffic from/to:
test.smeup.cloudexample.smeup.cloudxyz.smeup.cloud- ...
Egress traffic (from AHD)
| DNS | Protocol | Usage |
|---|---|---|
| *.smeup.cloud | HTTPS | Infrastructure as Code Smeup |
| *.amazonaws.com | HTTPS | Smeup Container Images |
| *.ecr.aws | HTTPS | Smeup Container Images |
| *.docker.io | HTTPS | OSS Container Images |
| *.quay.io | HTTPS | OSS Container Images |
| *.ghcr.io | HTTPS | OSS Container Images |
| *.github.com | HTTPS | OSS Container Images |
| *.fedoraproject.org | HTTPS | OS Updates |
| *.rancher.io | HTTPS | k3s Updates |
Ingress traffic (to AHD)
| Port | Usage | When | Notes |
|---|---|---|---|
| 22 | SSH | Always | Only from trusted, private networks! |
| 443 | HTTPS | Always | |
| 6443 | API Server k3s | Only for management from a remote ArgoCD instance | Whitelist only the IP of the VM instance where ArgoCD is located |