This example provides scripts for installing Edera on any Linux node. It's designed for users who want direct control over the installation process or need to install Edera on existing infrastructure.
- Installation Scripts: Automated scripts to install Edera on remote nodes
- RuntimeClass Configuration: Kubernetes RuntimeClass for Edera pods
- Test Workload: Sample nginx pod using Edera runtime
- Makefile Automation: Simple commands for deploy, test, and cleanup
# 1. Save your GAR key as key.json
cp /path/to/your/key.json .
# 2. Install Edera on your node
INSTALLER_IP=<node-ip> make deploy
# 3. Verify installation (after reboot completes)
INSTALLER_IP=<node-ip> make test-standalone# 1. Save your GAR key as key.json
cp /path/to/your/key.json .
# 2. Install Edera on your node
INSTALLER_IP=<node-ip> make deploy
# 3. Configure Kubernetes RuntimeClass
make configure
# 4. Test with a pod
make testFor cloud instances that use non-root SSH users:
INSTALLER_IP=<node-ip> SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make deploy
INSTALLER_IP=<node-ip> SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make test-standaloneBefore starting, ensure you have:
-
Edera Access: Contact support@edera.dev for:
- Google Artifact Registry (GAR) key for pulling Edera images
-
SSH Access: Root SSH access to your target node(s)
-
Container Runtime: Docker or nerdctl installed on the target node
-
kubectl (optional): For Kubernetes deployments
kubectl version --client
Save your Google Artifact Registry key as key.json in this directory:
cp /path/to/your/key.json .The target node must have:
- Linux operating system
- Root SSH access
- Docker or nerdctl installed
- Network access to
us-central1-docker.pkg.dev
# 1. Install Edera on a node
INSTALLER_IP=<node-ip> make deploy
# 2. Configure Kubernetes RuntimeClass
make configure
# 3. Label your nodes
kubectl label nodes <node-name> runtime=edera
# 4. Test the deployment
make testRun the deploy command for each node:
INSTALLER_IP=192.168.1.10 make deploy
INSTALLER_IP=192.168.1.11 make deploy
INSTALLER_IP=192.168.1.12 make deployIf you prefer not to use the Makefile:
# Copy files to target node
scp key.json root@<node-ip>:/tmp/
scp scripts/edera-install.sh root@<node-ip>:~
# SSH to node and run installer
ssh root@<node-ip> 'chmod +x ~/edera-install.sh && ~/edera-install.sh'
# Apply RuntimeClass (Kubernetes only)
kubectl apply -f https://public.edera.dev/kubernetes/runtime-class.yaml
# Label nodes
kubectl label nodes <node-name> runtime=edera
# Deploy test workload
kubectl apply -f kubernetes/test-workload.yamlmake verifyThis checks:
- Cluster nodes are online
- RuntimeClass is configured
- Test workload is running
# Check cluster status
kubectl get nodes -o wide
# Verify Edera RuntimeClass
kubectl get runtimeclass edera
# Check node labels
kubectl get nodes --show-labels | grep runtime=edera
# Verify test pod
kubectl get pods -n edera-test
kubectl get pod edera-test-pod -n edera-test -o jsonpath="{.spec.runtimeClassName}"make cleanIf you see Permission denied (publickey), specify the SSH user and key:
INSTALLER_IP=<node-ip> SSH_USER=ubuntu SSH_KEY=~/.ssh/my-key.pem make deployCommon SSH users by platform:
- EC2 Ubuntu:
ubuntu - EC2 Amazon Linux:
ec2-user - GCE: Your Google account username
- Azure: The admin username you specified
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 SSH access:
ssh -i <key> <user>@<node-ip> - Check container runtime:
ssh -i <key> <user>@<node-ip> 'docker --version || nerdctl --version' - Verify GAR key is valid and has appropriate permissions
kubectl describe pod edera-test-pod -n edera-testCheck for:
- Missing
runtime=ederalabels on nodes - RuntimeClass not installed
- Node capacity issues
- Verify
key.jsonis a valid GAR service account key - Check network access to
us-central1-docker.pkg.dev
-
Check Logs:
kubectl logs edera-test-pod -n edera-test
-
Describe Resources:
kubectl describe pod edera-test-pod -n edera-test kubectl describe node
-
Contact Support: support@edera.dev
- Deploy your own applications using
runtimeClassName: edera - Explore Edera documentation
- Check out other examples in this repository
Makefile- Automation commandsscripts/install.sh- Remote installation wrapperscripts/edera-install.sh- Node installation scriptkubernetes/test-workload.yaml- Test pod configuration