Run the Edera installer

3 min read · Intermediate


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.
  • Docker or nerdctl installed on your target node.

Step 1: Get the installation scripts

Clone the learn repository and navigate to the edera-installer example:

git clone https://github.com/edera-dev/learn.git
cd learn/getting-started/edera-installer

Save your GAR key as key.json in this directory.

Step 2: Run the installer on each node

Run the installer script against your node:

INSTALLER_IP={node_ip} make deploy

For cloud instances that use a non-root user (like EC2’s ubuntu or ec2-user):

INSTALLER_IP={node_ip} SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make deploy

To install on multiple nodes:

INSTALLER_IP=192.168.1.10 make deploy
INSTALLER_IP=192.168.1.11 make deploy

Step 3: Verify installation

Standalone (no Kubernetes)

After the node reboots, verify Edera is running:

INSTALLER_IP={node_ip} SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make test-standalone

Expected output:

Edera version:
protect 1.5.1

Edera services:
● protect-daemon.service - Edera Protect Daemon
     Loaded: loaded (/lib/systemd/system/protect-daemon.service; enabled)
     Active: active (running)

Zone list:
No zones have been launched.

Edera is installed and running!

Kubernetes

Confirm nodes are back online

watch kubectl get nodes

Apply the Edera RuntimeClass

kubectl apply -f https://public.edera.dev/kubernetes/runtime-class.yaml

Check:

kubectl get runtimeclass

Expected output:

NAME    HANDLER   AGE
edera   edera     1d

Label 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=edera

To label all nodes at once:

kubectl label nodes --all runtime=edera

Verify the labels:

kubectl get nodes --show-labels | grep runtime=edera

Test with a Pod

From the learn repository directory, run the test:

make test

Or manually deploy a test pod:

kubectl apply -f kubernetes/test-workload.yaml
kubectl wait --for=condition=ready pod/edera-test-pod -n edera-test --timeout=300s
kubectl get pods -n edera-test

What’s next

Edera is now installed and running. Your containers are protected with hypervisor-level isolation.

Next Steps

Troubleshooting

SSH permission denied

If you see Permission denied (publickey), you need to specify the SSH user and key:

INSTALLER_IP={node_ip} SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make deploy

Common SSH users by platform:

  • EC2 Ubuntu: ubuntu
  • EC2 Amazon Linux: ec2-user
  • GCE: Your Google account username
  • Azure: The admin username you specified

Make deploy shows “Error 255”

This is expected. The installer reboots the node when complete, which closes the SSH connection. Wait 1-2 minutes for the node to come back online, then run make test-standalone to verify.

Verify Edera services

SSH into the node and check:

# Check Edera daemon status
sudo systemctl status protect-daemon

# List zones
sudo protect zone list

# View Edera version
sudo protect --version

Kubernetes troubleshooting

  • Check pod details:

    kubectl describe pod edera-test-pod -n edera-test
  • Look at logs:

    kubectl logs edera-test-pod -n edera-test
  • Verify RuntimeClass:

    kubectl get pod edera-test-pod -n edera-test -o=jsonpath="{.spec.runtimeClassName}"

    You should see:

    edera

Additional Resources

Keep Learning

Need Help?

Last updated on