Try EDA#
We believe that EDA embodies what a network automation of the modern age should look like - declarative and programmable abstractions for both configuration and state, streaming-based engine, equipped with network-wide queries, extensible and multivendor-capable.
And we don't want you to blindly take our word for it, instead we made EDA easily accessible1 so that both network engineers and cloud practitioners could be the judge.
With no license and no registration required, you are mere couple commands away from having the full EDA experience wherever you are - with your laptop, in the cloud or logged in the VM.
To deliver the "Try EDA" experience, we have created an EDA playground - a repository that contains everything you need to install and provision a demo EDA instance with the virtual network on the side. Let us guide you through the installation process.
-
Choose where to run EDA
Since EDA uses Kubernetes as its application platform, you can deploy the EDA Playground anywhere a k8s cluster runs.
The most popular way to install the demo EDA instance is on a Linux server/VM, but you can also run it on macOS, in an existing Kubernetes cluster, or on Windows using WSL. -
Ensure minimal system requirements are met
Regardless of whether you run EDA Playground locally on a laptop, or in a VM locally or in the cloud, the underlying k8s cluster should have the following resources available to it2:
10 vCPUs
16GB of RAM
30GB of storageFor a VM-based installation, this means that the VM should be provisioned with (at the minium) this amount of resources.
-
Clone the EDA Playground repository
Proceed with cloning the EDA playground repository that contains everything you need to install and provision a demo EDA instance.
If you are using a Linux VM or a server to deploy the Playground, you should clone the repository on that VM/server.
You will need
git
3 to clone it: -
Prepare the VM/Server
If you are deploying the EDA Playground on a VM/Server, you should take care of the following:
-
Install
make
that orchestrates the installation of the EDA Playground. -
Install
docker
using our automated installer:Or install it manually, by following the official Docker installation guide for your OS. If you installed docker via the package manager of your distribution, remove it and install as per the Docker installation guide.
Ensure sudo-less docker access
After completing the docker installation, check if you can run docker commands without
sudo
by running:If you get a
permission denied
error, then you need to add your user to thedocker
group:-
Create the docker group.
-
Add your user to the docker group.
-
Log out and log back in so that your group membership is re-evaluated.
-
-
Ensure the relevant sysctl values are properly sized by pasting and running the following:
sudo mkdir -p /etc/sysctl.d && \ sudo tee /etc/sysctl.d/90-eda.conf << EOF fs.inotify.max_user_watches=1048576 fs.inotify.max_user_instances=512 EOF
And reloading the sysctl settings:
-
-
Install the EDA Playground
To start the EDA Playground installation you need to provide a single variable - the domain name or IP address of the machine where you are installing the EDA Playground cluster.
- In case of a VM, it is the IP address or a domain name of the VM.
- If you are using ssh tunnel to access the VM, then provide
localhost
as theEXT_DOMAIN_NAME
and ensure that local port is set to 94434.
With the IP/domain-name noted, run the install script defined in the
Makefile
:-
You need to provide an
EXT_DOMAIN_NAME
environment variable to indicate what domain name or IP address you are going to use when reaching EDA UI/API. This can be a domain name or an IP address of a compute where you execute the quickstart installation. If left unset, the hostname of the machine where you executed themake
command will be used.preferences file
Instead of providing the configuration values such as
EXT_DOMAIN_NAME
andEXT_HTTPS_PORT
on the command line, you can also provide them in aprefs.mk
file that comes with the playground repository.
LLM Key for the Natural Language Query
To enable the Natural Language support for the EDA Query functionality, provide the LLM key (OpenAI) with an additional environment variable or set it in theprefs.mk
file:export EXT_DOMAIN_NAME=<Insert-DNS-name-or-IP-of-the-VM/server> export LLM_API_KEY=<OpenAI-API-key> make try-eda
The installation will take approximately 10 minutes to complete. Once the it is done, you can optionally verify the installation.
EDA License
As you may have noticed, the EDA Playground installation does not require a license. We wanted to ensure that automation with EDA is accessible to everyone, anytime.
The EDA system can perfectly run without a license with the following caveats:- Only virtual, CX-nodes can be onboarded. These are SR Linux nodes that will be deployed for you by the time
make try-eda
step finishes. No hardware, nor containerlab nodes can be used in an unlicensed EDA mode. - No integration with the cloud systems such as Openstack, VMware, etc.
-
Access the UI
EDA is an API-first framework, with its UI being a client of the very same API. While EDA UI offers an easy graphical way to manage the platform and automate your infrastructure, the usage of it is optional; you can interact with EDA API directly, or by leveraging the CLI tools such as
edactl
. And you can even use the K8s API to manage EDA, for example, viakubectl
.EDA UI can be exposed externally using a simple make target:
- The port-forwarding target will run the forwarding service in the foreground, effectively blocking the terminal. If you want to enable UI access in a more permanent way, consider running the
make enable-ui-port-forward-service
target which is explained here in details.
This target will forward the https port of the
eda-api
service and display the URL to use in your browser. The default username isadmin
, and the password isadmin
.Note, that the port forwarding only lasts as long as the terminal session is active and will be closed when you disconnect from the server. To permanently expose the UI, you can setup a systemd service using this command:
Now, even if you close the terminal, the UI will still be accessible.
Running the
make start-ui-port-forward
target will output something similar to the following:[*]─[demo-vm]─[~/eda/playground] └──> make start-ui-port-forward --> Exposing the UI to the host across the kind container boundary --> The UI can be accessed using https://10.10.1.1:9443
The UI can be accessed now by typing
https://10.10.1.1:9443
in your browser. - The port-forwarding target will run the forwarding service in the foreground, effectively blocking the terminal. If you want to enable UI access in a more permanent way, consider running the
Now that you completed the installation, you can either read more on the installation details, or continue with creating your first unit of automation with EDA.
-
Creating a resource
Now, that you are logged in, you are ready for your first EDA automation experience!
-
How does install work?
If you want to understand how EDA playground installer works and what makes up the EDA installation, you can continue with the Installation process section.
-
As no other framework of comparable scale. ↩
-
This as well accounts for the playground network topology. ↩
-
Many distributions come with
↩git
preinstalled, but if not you should install it via your package manager.
For instance withapt
-enabled systems: -
This is the default value of EDA API HTTPS port, if you have changed it, please ensure that the local port matches the non-default value. If the default was unchanged, then to access the UI over
↩https://localhost:9443
you need to run the following command: