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 edera
install.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.3.2"
$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 *.sh
Save 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.sh
Step 3: Verify installation (if you are using Kubernetes)
Confirm nodes are back online
watch kubectl get nodes
Apply the Edera RuntimeClass
kubectl apply -f runtime.yaml
runtime.yaml:
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: edera
handler: edera
Check:
kubectl get runtimeclass
Expected output:
NAME HANDLER AGE
edera edera 1d
Test with a Pod
kubectl apply -f edera-protect-pod.yaml
edera-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.3
Check pod status:
kubectl get pods -n edera-protect
Troubleshooting
-
Check pod details:
kubectl describe pod edera-protect-pod -n edera-protect
-
Look at logs:
kubectl logs edera-protect-pod -n edera-protect
-
Verify 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.
Last updated on