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 git
1 to clone it:
The Makefile
2 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 make
5 and docker
6 installed. With make
you can install the remaining dependencies:
-
This will download
kind
,kubectl
,kpt
, andyq
into atools
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 thekubectl
binary from thetools
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:
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.
-
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 theEXT_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 theEXT_DOMAIN_NAME
variable tolocalhost
andEXT_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
andEXT_HTTPS_PORT
on the command line, you can also provide them in aprefs.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 theprefs.mk
file:
The installation will take approximately 5 minutes to complete. Once the it is done, you can optionally verify the installation.
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:
- 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
.
-
: 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.
-
Many distributions come with
↩git
preinstalled, but if not you should install it via your package manager.
For instance withapt
-enabled systems: -
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 sameMakefile
.
The latter is covered in the Installation process section. ↩ -
This as well accounts for the playground network topology. ↩
-
Or even run it on macOS or in an existing Kubernetes cluster. ↩
-
Install with
sudo apt install -y make
or itsyum
/dnf
-based equivalent. ↩ -
https://docs.docker.com/engine/install/
You can try running the quickstart withpodman
instead of docker, although bear in mind thatpodman
-based installation was not validated. ↩ -
EDA UI/API is served only over HTTPS. ↩