Run the Edera installer
This guide walks you through installing Edera on a Linux instance. It’s designed for users who are comfortable working in a terminal and want to get up and running fast.
You’ll start by preparing your local system with the required tools, then use the provided scripts to install Edera.
This guide is intentionally light—just the essentials to get Edera deployed and operational.
Prerequisites
Before you get started:
- You’ll need a Google Artifact Registry (GAR) key from us. Don’t have one? Contact support@edera.dev.
- SSH access to your target node.
Step 1: Prepare Your install machine
Create a directory and two scripts:
mkdir edera && cd ederainstall.sh
#! /bin/bash
# Check that the $INSTALLER_IP is set
if [ -z "$INSTALLER_IP" ]; then
echo "INSTALLER_IP is not set"
exit 1
fi
scp ./key.json root@$INSTALLER_IP:/tmp/
scp ./edera-install.sh root@$INSTALLER_IP:~
ssh "root@$INSTALLER_IP" 'chmod +x ~/edera-install.sh && ~/edera-install.sh'edera-install.sh
#!/bin/bash
CLIENT=""
for cmd in docker nerdctl; do
if which $cmd &>/dev/null; then
CLIENT=$(which $cmd)
fi
done
if [ -z $CLIENT ]; then
echo "no client found"
exit 1
fi
echo "using $CLIENT"
TAG="v1.5.1"
$CLIENT login us-central1-docker.pkg.dev -u _json_key --password-stdin </tmp/key.json
$CLIENT pull us-central1-docker.pkg.dev/edera-protect/staging/protect-installer:${TAG}
$CLIENT run --privileged --env 'TARGET_DIR=/host' --volume '/:/host' --volume "$HOME/.docker/config.json:/root/.docker/config.json" --pid host --net host us-central1-docker.pkg.dev/edera-protect/staging/protect-installer:${TAG}Make them executable:
chmod +x *.shSave your GAR key as key.json.
Step 2: Run the installer on each node
Run the installer script against your node:
INSTALLER_IP={node_ip} ./install.shStep 3: Verify installation (if you are using Kubernetes)
Confirm nodes are back online
watch kubectl get nodesApply the Edera RuntimeClass
kubectl apply -f https://public.edera.dev/kubernetes/runtime-class.yamlCheck:
kubectl get runtimeclassExpected output:
NAME HANDLER AGE
edera edera 1dLabel nodes for Edera workloads
The Edera RuntimeClass includes a nodeSelector that requires nodes to be labeled with runtime=edera. This ensures that pods using the Edera runtime are scheduled only on nodes where Edera is installed.
Label each node where Edera is installed:
kubectl label nodes <node-name> runtime=ederaTo label all nodes at once:
kubectl label nodes --all runtime=ederaVerify the labels:
kubectl get nodes --show-labels | grep runtime=ederaTest with a Pod
kubectl apply -f edera-protect-pod.yamledera-protect-pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: edera-protect-pod
namespace: edera-protect
spec:
runtimeClassName: edera
containers:
- name: nginx
image: nginx:1.25.3Check pod status:
kubectl get pods -n edera-protectTroubleshooting
Check pod details:
kubectl describe pod edera-protect-pod -n edera-protectLook at logs:
kubectl logs edera-protect-pod -n edera-protectVerify RuntimeClass:
kubectl get pod edera-protect-pod -n edera-protect -o=jsonpath="{.spec.runtimeClassName}"You should see:
edera
Want More?
- Full documentation: docs.edera.dev
- Still stuck? Email support@edera.dev—we like solving problems.