Skip to content

Installing the EDA application#

After setting up EDA nodes and bootstrapping the Talos Kubernetes cluster, you can now install Nokia EDA applications using the playground repository cloned during the preparation phase.

Customizing the installation file#

Change into the playground directory and update the parameters in the prefs.mk file found at the directory's root to control the way EDA is installed.

Customizable parameters in the prefs.mk file:

Parameter

Description

Namespace settings for EDA components

EDA_CORE_NAMESPACE

Sets the kubernetes namespace where the EDA core components are installed.

Default: eda-system

EDA_USER_NAMESPACE

Sets the kubernetes and EDA namespace where the user components are installed.

Default: eda

Version selection for EDA packages

EDA_CORE_VERSION

Version of the EDA core components to install.

Defaults to the latest stable version.

EDA_APPS_VERSION

Version of the EDA applications to install.

Defaults to the latest stable version.

KinD cluster options

NO_KIND

When set to any non-zero value will skip the KinD cluster deployment used for lab/demo installations.
Must be set to yes for production installation.

NO_HOST_PORT_MAPPINGS

When set to yes will not create the extra port mappings in the KinD cluster and will not create the nodePort service to expose the EDA UI/API.

Default: variable is not set. Results in port mappings and nodePort service being created.

Cluster reachability settings

METALLB_VIP

Specifies the VIP address of your EDA deployment. Make sure to use a CIDR format, preferably as a /32 (or /128 for an IPv6 VIP).

If you use two networks, this VIP address must be the one used on the fabric management network. ​​If you use a single network, this setting must match the VIP address used for ​EXT_DOMAIN_NAME​ FQDN or IP.​

Example: 203.0.113.10/32

EXT_DOMAIN_NAME

The FQDN that resolves to the EDA VIP or the VIP itself.

This value must be the FQDN or VIP address that is used to access the UI. If you use two networks, this value must be the FQDN or IP address of the OAM network.

EXT_HTTP_PORT

The HTTP port that the EDA UI/API should use to redirect to HTTPS.
Set to 80.

EXT_HTTPS_PORT

The HTTPS port on which the EDA UI/API listens.
Set to 443.

EXT_IPV4_ADDR

The IPv4 IP address used as the VIP address.

If you use two networks, this VIP address must be the one used on the fabric management network.​ ​If you use a single network, this VIP address must be the VIP that matches your ​EXT_DOMAIN_NAME​ FQDN (or IP address).

EXT_IPV6_ADDR

The IPv6 IP address used as the VIP.

If you use two networks, this VIP address must be the one used on the fabric management network.​ ​If you use a single network, this VIP address must be the VIP that matches your ​EXT_DOMAIN_NAME​ FQDN (or IP address).

Proxy settings

HTTPS_PROXY
and https_proxy

Optional: The proxy address for the HTTPS proxy.

HTTP_PROXY
and http_proxy

Optional: The proxy address for the HTTP proxy.

NO_PROXY
and no_proxy

Optional: The list of IP addresses, IP ranges and hostnames that should not be proxied.

Asset host settings

USE_ASSET_HOST

Must be set to 1 for an Air-gapped Installation and set to 0 for an Internet based installation. 0 is the default value if not set.

ASSET_HOST

The IP address of the Assets VM for the Air-gapped installation.

ASSET_HOST_GIT_USERNAME

The username for the git server running on the Asset VM. Needs to be set to eda, in the future this will be changeable.

ASSET_HOST_GIT_PASSWORD

The password for the git server running on the Asset VM. Needs to be set to eda, in the future this will be changeable.

ASSET_HOST_ARTIFACTS_USERNAME

The username for the artifact server running on the Asset VM. Needs to be set to eda, in the future this will be changeable.

ASSET_HOST_ARTIFACTS_PASSWORD

The password for the artifact server running on the Asset VM. Needs to be set to eda, in the future this will be changeable.

KPT settings

KPT_SETTERS_FILE

Advanced configuration file for kpt.

KPT_LIVE_INIT_FORCE

Set to 1 to ignore if a kpt package was already initialized against a cluster. Results in an overwrite of the existing inventory (resource group).

Default: 0

KPT_INVENTORY_ADOPT

Set to 1 to adopt already applied and unmanaged resources that the kpt package is trying to clear, it will update/reconcile any differences.

Default: 0

Other settings

LLM_API_KEY

Optional: The OpenAI API key for the EDA Natural Language Query functionality.

SINGLESTACK_SVCS

Optional: Indicates that internal services should be single stack instead of dual stack, if Kubernetes is dual stack.
Boolean.

SIMULATE

Specifies if the EDA deployment is to manage simulated workloads (Digital Sandbox) or real hardware.

Values:

  • true - EDA installation will manage only simulated nodes (Digital Sandbox)
  • false - EDA installation will manage only real hardware nodes.

By default, this parameter is set to true if the parameter is not provided in the file.

Caution

The simulation mode can't be changed post-install.

The prefs.mk file#

You can find examples of the prefs.mk file contents for Internet based and Air-gapped installations:

NO_KIND=1
SIMULATE=false
METALLB_VIP=203.0.113.10/32
EXT_DOMAIN_NAME=eda.domain.tld 
EXT_HTTP_PORT=80 
EXT_HTTPS_PORT=443 
EXT_IPV4_ADDR=203.0.113.10
EXT_IPV6_ADDR=""
HTTPS_PROXY=http://192.0.2.254:8080 
HTTP_PROXY=http://192.0.2.254:8080 
NO_PROXY=192.0.2.0/24,203.0.113.0/24,.domain.tld,172.22.0.0/16,localhost,127.0.0.1,10.0.1.0/24,0.0.0.0,169.254.116.108 
https_proxy=http://192.0.2.254:8080 
http_proxy=http://192.0.2.254:8080 
no_proxy=192.0.2.0/24,203.0.113.0/24,.domain.tld,172.22.0.0/16,localhost,127.0.0.1,10.0.1.0/24,0.0.0.0,169.254.116.108 
LLM_API_KEY=...
NO_KIND=1
SIMULATE=false
METALLB_VIP=203.0.113.10/32
EXT_DOMAIN_NAME=eda.domain.tld 
EXT_HTTP_PORT=80 
EXT_HTTPS_PORT=443 
EXT_IPV4_ADDR=203.0.113.10
EXT_IPV6_ADDR=""
HTTPS_PROXY=http://192.0.2.254:8080 
HTTP_PROXY=http://192.0.2.254:8080 
NO_PROXY=192.0.2.0/24,203.0.113.0/24,.domain.tld,172.22.0.0/16,localhost,127.0.0.1,10.0.1.0/24,0.0.0.0,169.254.116.108 
https_proxy=http://192.0.2.254:8080 
http_proxy=http://192.0.2.254:8080 
no_proxy=192.0.2.0/24,203.0.113.0/24,.domain.tld,172.22.0.0/16,localhost,127.0.0.1,10.0.1.0/24,0.0.0.0,169.254.116.108 
LLM_API_KEY=...
USE_ASSET_HOST=1
ASSET_HOST=192.0.2.228
ASSET_HOST_GIT_USERNAME="eda"
ASSET_HOST_GIT_PASSWORD="eda"
ASSET_HOST_ARTIFACTS_USERNAME="eda"
ASSET_HOST_ARTIFACTS_PASSWORD="eda"

Installing Nokia EDA#

When the necessary parameters are set, follow these steps to install EDA.

Note

Steps 1 and 2 can be skipped if these have already been executed during the preparation phase of the installation procedure.

  1. Download the latest tools.

    make download-tools
    
  2. Download the latest packages, including the eda-kpt package.

    make download-pkgs
    
  3. Set up the MetalLB environment for VIP management.

    make metallb
    
  4. Install the necessary external packages.

    make install-external-packages
    

    Note

    If this command exits with an error, wait 30 seconds and try again. Sometimes Kubernetes is a bit slower in reconciling the change than the command waits for.

  5. Change the eda-git Kubernetes service to a ClusterIP service instead of a LoadBalancer type.

    kubectl -n eda-system patch service eda-git -p '{"spec": {"type": "ClusterIP"}}'
    
  6. Generate the EDA core configuration.

    make eda-configure-core
    
  7. Install EDA core components.

    make eda-install-core
    

    Note

    If the command hangs for a long time (>5 minutes) on "reconcile pending" for a workflow definition, cancel the command and try again; KPT is designed to handle these cases. This can happen occasionally depending on the Kubernetes cluster.

  8. Verify that the EDA Config Engine is up and running.

    make eda-is-core-ready
    
  9. Install all the standard EDA apps.

    This step can take approximate 5 to 15 minutes, depending on your connectivity.

    make eda-install-apps
    
  10. Bootstrap EDA.

    Bootstrapping will create base resources into the EDA cluster, such as IP pools.

    make eda-bootstrap
    
  11. Configure two-networks deployment.

    If your deployment uses two networks, create a second VIP pool for the OAM VIP address.

    make metallb-configure-pools METALLB_VIP=<OAM VIP> LB_POOL_NAME=pool-nb
    

    And create the OAM UI/API service using the new VIP pool.

    make eda-create-api-lb-svc API_LB_POOL_NAME=pool-nb
    
  12. Optional: Deploy an example topology.

    If you configured EDA to manage the simulated network (Digital Sandbox), you can load an example topology that will be instantiated as virtual simulators in the same EDA cluster by running:

    make topology-load
    

Accessing the EDA deployment#

You can now access the new EDA deployment using the following methods:

  • use https://OAM-VIP if Virtual IP (VIP) was provided as EXT_DOMAIN_NAME in the preferences file used during the installation.
  • if an FQDN is configured for the EXT_DOMAIN_NAME field, use https://FQDN

Both examples assume that EXT_HTTPS_PORT was set to 443 in the preferences file.