Frontend Installation
Information and Requirements
-
Frontend is responsible for: communication with Orchestrator(s), Accept deltas, Prepare Model, Control switches on LAN, Get all configuration from all DTNs/Agents. Minimum one Frontend is required for a single domain.
- Installation type supported: Docker, Podman, Kubernetes
- Certificates: Frontend requires cert, key certificates for its services. (Make sure you have tls.crt and tls.key files in PEM format)
- Networking: Frontend requires some ports open (Can be limited to a specific list of nodes. See list here
Choose the installation type, based on your Site’s functionalities. In case you are not using Docker/Podman/Kubernetes at your site, easiest “path forward” is to use either Docker or Podman.
SiteRM-FE Installation First time (Docker/Podman)
- Prerequisites:
- Make sure you have docker/podman installed and service is up and running.
- Configuration files are present in the SiteRM Configuration repo for your Site (Take a note of SiteName and MD5 Hash for Frontend Service). MD5 is optional - and if not specified, SiteRM will compute md5(hostname -f) by default. See Configuration Layout for details.
- You have Certificate, Key ready.
- Clone the following repo on the machine, where Frontend will be installed: https://github.com/sdn-sense/siterm-startup
git clone https://github.com/sdn-sense/siterm-startup
- It is recomended to use stable tag version. master branch is used for developement. Stable version is shown at the sidebar on the left Use
git fetch --all --tagsandgit checkout <tag> - Modify FE Contig File in cloned repo, path:
fe/conf/etc/siterm.yamland specify the SiteName and MD5 parameters for Frontend (based on yourmapping.yamlfile). - Modify Environment file in cloned repo, path:
fe/conf/environmentand changeMARIA_DB_PASSWORD. This can be anything secure and should not change between redeployments. - Prepare ansible configuration file at
fe/conf/etc/ansible-conf.yaml. For more details, see Supported network devices page -
Obtain TLS certificates. SiteRM requires a valid TLS certificate and private key. If you do not already have them, use Let’s Encrypt:
# Install certbot if not already present sudo apt install certbot # Debian/Ubuntu # or: sudo yum install certbot # Obtain a certificate (port 443 must be free; stop any existing webserver first) sudo certbot certonly --standalone -d <your-frontend-fqdn>The certificate files will be placed under
/etc/letsencrypt/live/<your-frontend-fqdn>/:File Use for SiteRM fullchain.pemUse as tls.crt— always use this, notcert.pemprivkey.pemUse as tls.key⚠️ Do not use
cert.pemas yourtls.crt. It contains only the server certificate and omits the intermediate CA chain, which causes “unable to get local issuer certificate” validation errors.fullchain.pemincludes both the server certificate and the full chain.Let’s Encrypt now issues ECDSA P-256 certificates by default. This is fully supported by SiteRM; you do not need to request an RSA certificate.
Verify the certificate and key match before copying:
# Both commands must produce the same SHA-256 hash openssl x509 -in /etc/letsencrypt/live/<fqdn>/fullchain.pem -noout -pubkey | openssl sha256 openssl pkey -in /etc/letsencrypt/live/<fqdn>/privkey.pem -pubout | openssl sha256 - Copy Certificates to correct location:
- Certificate - copy
fullchain.pemtofe/conf/etc/secret-mount/tls.crt - Key - copy
privkey.pemtofe/conf/etc/secret-mount/tls.key
cp /etc/letsencrypt/live/<your-frontend-fqdn>/fullchain.pem fe/conf/etc/secret-mount/tls.crt cp /etc/letsencrypt/live/<your-frontend-fqdn>/privkey.pem fe/conf/etc/secret-mount/tls.key - Certificate - copy
- Start the service:
cd fe/docker/ && ./run.sh -i latest - NOTE -i (image) is
latest(most stable image). - NOTE If your network device use only IPv6 for access, add
-n hostparameter to Start the service command. Full command will be:cd fe/docker/ && ./run.sh -i latest -n host
SiteRM-FE Installation First time (Kubernetes cluster with Helm)
- Prerequisites:
- Make sure you have Kubernetes cluster installed. You will need to have Kubernetes config and know namespace you want to use for deployment.
- Configuration files are present in Git Repo for your Site (Take a note of SiteName and MD5 Hash). MD5 is optional - and if not specified, SiteRM will compute md5(hostname) by default
- You have Certificate, Key available and valid (or you can use HELM Chart Certificate section if have cert-manager available).
- Get the following override values file: values.yaml
- Modify the downloaded file and specify the SiteName and MD5 parameters for that Specific Frontend and or any other parameters needed, e.g. Certificate Issuer details.
- If done first time, install helm repo:
helm repo add siterm https://sdn-sense.github.io/helm-charts - Update to latest helm repo charts:
helm repo update - Install the helm chart on your Kubernetes cluster:
helm install siterm siterm/siterm-fe -f values.yaml
Check if services are running correctly
Docker/Podman: Run these commands from inside the SiteRM Frontend container:
# Enter the Frontend container
docker exec -it siterm-fe bash
# Run the readiness check — confirms all internal services are ready
siterm-readiness
# Run the liveness check — confirms the service is alive
siterm-liveness
# If running on Kubernetes, you can trigger checks manually:
kubectl exec -n sense <siterm-fe-pod> -- siterm-readiness
kubectl exec -n sense <siterm-fe-pod> -- siterm-liveness
Web UI: Once the Frontend is running, open https://<your-frontend-fqdn>:<port> in your browser. You should see the SiteRM topology dashboard. If the page loads correctly, the service is operational.
Verify Ansible connectivity to switches:
# From inside the Frontend container, test Ansible can reach a configured switch
siterm-ansible-runner --printports
# For full debug output
siterm-ansible-runner --fulldebug
Monitoring: All SiteRM deployments are monitored by the Autogole Grafana dashboard. If your site is not yet registered, contact the SENSE team at sense-info@es.net. See SiteRM Operations for full details.