Skip to main content
Version: 6.10.0

Getting Started

Who Is This For?

  • This document is for System Integrators looking to create a single-node demo instance of SmoothGlue in AWS.

What Is the Goal of This Guide?

  • To familiarize you with how to deploy SmoothGlue in a single-node demo context.

Prerequisites

Before you run SmoothGlue Enterprise, ensure you have the following:

  • Access to an AWS account with permissions to create EC2 instances.
  • A copy of the SmoothGlue Enterprise package provided by BrainGu engineers.
  • The Zarf bin for your OS.
    • For more information on Zarf and what it does, please visit our glossary.

Single-Node Demo Environment

This portion of the guide will briefly walk you through setting up a single-node demo environment for the SmoothGlue Enterprise. Following these instructions will result in a single EC2 instance, running K3s, and using the local-path storage provisioner. This demo environment is not suitable for hosting production workloads, but could be used as an "edge" deployment or for development/assessment scenarios.

Deploy an EC2 Instance:

To run a single-node deployment of the SmoothGlue Enterprise, we need an EC2 Instance with a minimum 8 CPUs, 32 GB of memory, and 50 GB of storage.

The following steps will guide you on deploying an instance via the AWS EC2 console:

  1. Log into the AWS console to create EC2 Instances.
note

Only users with permissions can access the AWS console.

  1. Navigate to the EC2 Service.

  2. Locate and click the "Launch instance" button.

  3. Provide a name for your instance, such as smoothglue-demo.

  4. Select Amazon Linux from the Quick Start AMI list. Note: You must select 64-bit (x86) for the architecture.

  5. Select t3a.2xlarge, t3.2xlarge, t2.2xlarge or any other instance with 8 vCPU and 32 GiB memory available in your Region.

  6. Click the "Create new key pair" link.

    a. Name the link, e.g., smoothglue-demo.

    b. Ensure that "Key pair type" is RSA and "Private key file format" is .pem.

    c. Click the "Create key pair" button. Store the resulting private key in a safe place.

  7. Verify you have a proper VPC and Subnet selected.

  8. Verify you have a proper security group selected, or alternatively create a new one allowing SSH and HTTPS inbound from your workstation.

  9. In the Configure Storage block, set the root volume to: 50 GiB.

  10. Click the "Launch instance" button and wait for the instance to start.

Get the Zarf Bin:

Connect to your new instance via SSH. If you need assistance, refer to the AWS documentation.

  1. Execute the following curl commands to download the correct Zarf bin and Zarf init package.

    curl -C - -LO https://github.com/zarf-dev/zarf/releases/download/v0.32.6/zarf_v0.32.6_Linux_amd64
    curl -C - -LO https://github.com/zarf-dev/zarf/releases/download/v0.32.6/zarf-init-amd64-v0.32.6.tar.zst
  2. Execute the following command to install the bin on your system.

    sudo install zarf_v0.32.6_Linux_amd64 /usr/local/bin/zarf
  3. Execute the following command to test the Zarf bin. It should output v0.32.6.

    zarf version
  4. Initialize Zarf by executing the following command. Note: This may take some time. Ensure you are running this command with sudo.

    ```bash
    sudo zarf init --no-progress --confirm --components k3s,git-server
    ```

Deploy SmoothGlue Enterprise

Obtain a copy of the SmoothGlue Enterprise deployment package. This package consists of several parts and should be copied to the deployment system. The package can be deployed by issuing the following command. For a full install reference, refer to the installation-options document.

For this single node install, we will rely on nip.io for DNS. It's a convenient way to give a DNS name to any arbitrary IP address, and will allow us to focus on getting SmoothGlue up and running quickly.

note

Although the nip.io service will give a DNS name to any IP address, it will not allow you to route to private IP addresses (such as those starting with 10. or 192.168.) over the public Internet. As such, if you are not able to access the EC2 instance from within the same VPC (using a VPN or another method), then this should be the public IPv4 address of the EC2 instance.

The following command assumes an EC2 instance with a private IP address of 10.32.39.24:

sudo zarf package deploy zarf-package-smoothglue-amd64-v5.0.0.tar.zst.part000 --no-progress --confirm --set DOMAIN=10-32-39-24.nip.io

Accessing SmoothGlue Enterprise Web Applications

When deployment is complete, the web applications (apps) should be accessible. The URLs for each app will be different for every deployment, as the DNS domain is either provided as an argument or auto-discovered by the installation process. You can list these hostnames by issuing the following command:

sudo kubectl get VirtualService -A

The output in the HOSTS column can be used to construct the URL simply by prepending https:// to the hostname. The HOSTS column will reflect the hostname of the EC2 instance that it is being run on. For example, the Grafana web app can be accessed via https://grafana.10-32-39-24.nip.io, as determined by the output shown below.

NAMESPACE    NAME                                      GATEWAYS                  HOSTS                                 AGE
monitoring monitoring-monitoring-kube-grafana ["istio-system/public"] ["grafana.10-32-39-24.nip.io"] 9m16s
monitoring monitoring-monitoring-kube-alertmanager ["istio-system/public"] ["alertmanager.10-32-39-24.nip.io"] 9m16s
monitoring monitoring-monitoring-kube-prometheus ["istio-system/public"] ["prometheus.10-32-39-24.nip.io"] 9m16s
neuvector neuvector-neuvector ["istio-system/public"] ["neuvector.10-32-39-24.nip.io"] 6m4s
argocd argocd-argocd-server ["istio-system/public"] ["argocd.10-32-39-24.nip.io"] 5m47s

The following sections will walk you through authenticating to each web app. It is highly recommended that you log into these immediately after deploying and update with a secure password that adheres to your organizational policy. Alternatively, you can set up Single Sign-On (SSO) for your deployment.

Grafana

The default username for Grafana is admin, and the default password is a randomly generated string stored inside the monitoring-grafana secret within the monitoring namespace.

Alertmanager

No credentials are required to access Alertmanager. To configure authentication for Alertmanager, please see the SSO configuration documentation.

Prometheus

No credentials are required to access Prometheus. To configure authentication for Prometheus, please see the SSO configuration documentation.

Argo CD

The default username for Argo CD is admin. The initial password can be obtained by executing the following command:

sudo kubectl get secret -n argocd argocd-initial-admin-secret -o go-template='{{ index .data "password" | base64decode }}'

NeuVector

Before logging into NeuVector, you will be required to accept the End User Agreement. The default username for NeuVector is admin. The password is a randomly generated string held within the neuvector-init secret inside of the neuvector namespace under the userinitcfg.yaml.users.password field for the admin user.

Uninstall

To uninstall the SmoothGlue Enterprise, issue the following command:

sudo zarf destroy --confirm

Please note that this will remove all SmoothGlue Enterprise managed workloads and data from your Kubernetes cluster. It will also remove any Zarf related workloads from your cluster. If you initialized K3s using Zarf, it will stop and uninstall K3s, as well.