Skip to content

Try EDA#

We made sure that trying EDA is as easy as running a single command. Literally.

Let's start with cloning the EDA playground repository that contains everything you need to install and provision a demo EDA instance with the virtual network on the side to have the full experience. You will need git1 to clone it:

git clone https://github.com/nokia-eda/playground && \
cd playground

The Makefile2 that comes with the playground repository has everything that is needed to enact the various installation steps. The use of this Makefile is not mandatory, but highly recommended as it substantially simplifies the quickstart installation process!

EDA is cloud-native platform deployed on top of Kubernetes (k8s); and not just because Kubernetes is a common orchestration system, but because it leverages the Kubernetes-provided declarative API, the tooling and the ecosystem built around it.
It is required that your Kubernetes cluster satisfies the following requirements3:

10 vCPUs
16GB of RAM
30GB of storage

I don't have a cluster! Am I out?

You don't have a cluster yet! We will get you a suitable k8s cluster in no time during this quickstart.

If you are installing on a production cluster, please see official documentation for infrastructure requirements, as these depend on scale.

Dependencies#

The getting started guide assumes you run a Linux/amd64 system. Check out the User Guide section for other installation options.
You are welcome to try your own distro4, but steps have been validated on Ubuntu 22.04, Debian 11 and 12.

Your host executing the install needs make5 and docker6 installed. With make you can install the remaining dependencies:

make download-tools #(1)!
  1. This will download kind, kubectl, kpt, and yq into a tools folder relative to the current working directory.

    Subsequent steps use these versions of the binaries - you may use your own binaries for your own interactions. If you don't have kubectl in your $PATH, then consider copying the kubectl binary from the tools directory to a location in your $PATH to make use of it in the following steps.

Sysctl settings

Some Linux distributions might be conservative about some settings such as max file descriptors available.

We recommend increasing the relevant sysctl values to avoid pod crashes during the installation by creating the following configuration file:

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:

sudo sysctl --system && sudo systemctl restart docker

Quick start#

The quickest way to experience EDA is by using a simple command to complete an end-to-end KinD-based deployment of EDA with a virtual 3-node networking topology.

export EXT_DOMAIN_NAME=${DNS-name-or-IP} \
make try-eda #(1)!
  1. 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 you're trying EDA on a remote machine, then you typically would set the DNS name or IP address of this machine in the EXT_DOMAIN_NAME variable.
    Another popular option is to use SSH local port forwarding to access the EDA UI, in this case you would need to set the EXT_DOMAIN_NAME variable to localhost and EXT_HTTPS_PORT to the local port you are using for the port forwarding.

    If left unset, the hostname of the machine where you executed the make command will be used.

    preferences file

    Instead of providing the configuration values such as EXT_DOMAIN_NAME and EXT_HTTPS_PORT on the command line, you can also provide them in a prefs.mk file that comes with the playground repository.

    LLM Key

    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 the prefs.mk file:

    export EXT_DOMAIN_NAME=${DNS-name-or-IP} \
    LLM_API_KEY=<key> \
    make try-eda
    

The installation will take approximately 5 minutes to complete. Once the it is done, you can optionally verify the installation.

Verify

Web UI#

EDA comes with a Web user interface that allows you to interact with the framework.

Note

EDA is an API-first framework, and the UI is just a client that interacts with its API. The usage of the UI is optional, and you can interact with EDA using the CLI tools such as edactl, e9s and/or by directly leveraging K8s API.

EDA UI is exposed in a cluster via a Service of type LoadBalancer, but since you a local kind-powered k8s cluster deployed you may not be able to reach it if you don't run kind on the same machine where your browser is!

Nothing a kubectl port-forward can't solve! In the very end of the installation log you should see a message inviting you to run the following command:

make start-ui-port-forward #(1)!
  1. 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.

Point your browser to https://<eda-domain-name>:<ext-https-port> where eda-domain-name is the EXT_DOMAIN_NAME value set during the install step and ext-https-port is the https7 port value set in the EXT_HTTPS_PORT.
This should open the EDA UI. The default username is admin, and the password is admin.


  1. Many distributions come with git preinstalled, but if not you should install it via your package manager.
    For instance with apt-enabled systems:

    sudo apt install -y git
    
     

  2. The playground repository supports both a try EDA (or playground) method using KinD, and a method for installing EDA to previously deployed Kubernetes clusters via the same Makefile.
    The latter is covered in the Installation process section

  3. This as well accounts for the playground network topology

  4. Or even run it on macOS or in an existing Kubernetes cluster

  5. Install with sudo apt install -y make or its yum/dnf-based equivalent. 

  6. https://docs.docker.com/engine/install/
    You can try running the quickstart with podman instead of docker, although bear in mind that podman-based installation was not validated. 

  7. EDA UI/API is served only over HTTPS.