Installing Edera on Linode
This guide walks you through a quick setup of Edera on a Linode 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
On Your Install Machine
- Make a directory called
edera
and navigate into it. - Create a file called
install.sh
with the following:
#! /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'
- Create a file called
edera-install.sh
with the following:
#!/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.0.3-rc4"
$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/edera-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/edera-installer:${TAG}
- Run:
chmod +x *.sh
- Save your GAR key to
key.json
. - Run the install script for each node:
INSTALLER_IP={linode_node_ip} ./install.sh
Kick the Tires
Confirm Your 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
Verify it worked:
kubectl get runtimeclass
Expected output:
NAME HANDLER AGE
edera edera 1d
Test with a Pod
Here’s an example Pod
spec using Edera:
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 the pod status:
kubectl get pods -n edera-protect
Troubleshooting
If the pod isn’t coming up:
Check the pod details:
kubectl describe pod edera-protect-pod -n edera-protect
Look at the logs:
kubectl logs edera-protect-pod -n edera-protect
Verify the 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