When the ACTIVATION_TOKEN
cannot be exposed in the values.yaml
file, it is possible to provide it to the Engine using a pre-created Kubernetes secret containing the relevant data. Follow these steps to create and configure the secret:
Use the following command to create a Kubernetes secret with the required data:
ENCRYPTION_SECRET_KEY
To create the ENCRYPTION_SECRET_KEY
, run the following command:
custom_values.yaml
Indicate that you are using an existing secret by adding the following lines to your custom_values.yaml
file:
After configuring the secret, your overall configuration should look like this:
Deployment Process:
For easiness create custom_values.yaml
file and edit relevant values, an example can be found here:
Official values.file
with all abilities can be found here.
Push these values.yaml
files to your ArgoCD repository.
Follow the examples below to deploy the application YAML files. Pay close attention to the comments provided for each:
Once your values YAML files are pushed and the applications YAML are deployed, navigate to your ArgoCD dashboard.
Find the application you just deployed and click the 'Sync' button to initiate the deployment process.
Monitor the deployment status to ensure all components are successfully deployed and running.
By following these steps, you should be able to deploy and upgrade the Superstream Engine using ArgoCD successfully. If you have any questions or need further assistance, refer to the documentation or reach out to the support team.
How to deploy a Superstream Engine in a fully air-gapped environment with a private container registry.
This guide focuses on three critical applications managed by Superstream Helm Chart: NATS, Telegraf, and Superstream. We will cover each application's specific Docker images that are managed by the helm chart, ensuring you have the information to deploy Superstream in your environment.
Please store the following images in your container registry:
NATS: An open-source messaging system renowned for its high performance and scalability.
Helm version: 1.2.4
Containers:
natsio/prometheus-nats-exporter:0.15.0
natsio/nats-server-config-reloader:0.15.1
Nats:2.10.20-alpine
Telegraf: As a versatile agent for collecting, processing, and writing metrics, Telegraf is pivotal in monitoring and observability.
Helm version: 1.8.48
Container:
Superstream: The engine itself.
Helm version: Releases
Helm Chart URL: https://k8s.superstream.ai/
Containers:
superstreamlabs/superstream-data-plane-be:latest
curlimages/curl:8.6.0
linuxserver/syslog-ng:4.5.0
To ensure that your private repositories use the correct Docker images, follow these steps to pull images from public repositories and tag them for your private repository. Below are command examples for the related Docker images you might use:
Prometheus NATS Exporter (natsio/prometheus-nats-exporter:0.15.0):
NATS Server Config Reloader (natsio/nats-server-config-reloader:0.14.2):
NATS Server (nats:2.10.14-alpine):
Telegraf (docker.io/library/telegraf:1.30-alpine):
Curl (curlimages/curl:8.6.0):
Superstream Engine (superstreamlabs/superstream-data-plane-be:latest):
Syslog (linuxserver/syslog-ng:4.5.0):
Download the Superstream Helm chart from the official source as described above.
Once downloaded, publish the chart to your private Helm chart repositories. This step ensures that you maintain control over the versions and configurations of the chart used in your deployments.
Docker Image Names: You must change the Docker image names within the Helmfile to reflect those stored in your private Docker registries. This customization is crucial for ensuring that your deployments reference the correct resources within your secure environment:
For easiness create/use custom_values.yaml
file and add global.image
section values, an example can be found here:
To apply the Helmfile configurations and deploy your Kubernetes resources:
Apply Helmfile: Run the following command to apply the Helmfile configuration. This will sync your Helm releases to match the state declared in your helmfile.yaml
:
Superstream Engine is deployed with default resource limits designed to ensure high performance. In some cases, these configured limits may not be sufficient. To address potential performance bottlenecks, you can adjust the resource limits using the procedure outlined below.
custom_values.yaml
.To adjust the resource limits for the Superstream Engine Data Plane, add the following configuration:
To modify the resource limits for NATS, add the following configuration:
Below is an example of a complete configuration file (custom_values.yaml
) after setting custom resource limits:
Once you have updated the custom_values.yaml
file with your desired resource limits, deploy the Superstream Engine using Helm:
This guide provides instructions for deploying the Superstream Platform for air-gapped environments.
To create a secret for the Superstream with randomly generated passwords, run the following command:
Important: The secret name superstream-creds-control-plane
cannot be changed in the current release. This will be fixed in an upcoming release.
encryption-secret-key
jwt-secret-key
jwt-api-secret-key
control-plane-token
For a more straightforward configuration, create a custom_values.yaml
file and edit the following values:
If your environment requires a proxy server to connect to external services, set the global.proxy.enabled
variable to true
and provide the global.proxy.proxyUrl
in the custom_values.yaml
file. This configuration ensures that all critical services route traffic through the specified proxy. Additionally, make sure your proxy server permits connectivity to the following endpoints:
Prometheus: https://prometheus.mgmt.superstream.ai
Loki: https://loki.mgmt.superstream.ai
Stigg: https://api.stigg.io
To deploy the Superstream, run the following command:
To use the Superstream User Interface, the following two FQDN records should be exposed under the same domain
.
Expose the Superstream Control Plane service. Using superstream-api
at the beginning of the configured FQDN is a hard requirement.
Example: "superstream-api.example.com"
Expose the Superstream Control Plane UI service. Example: superstream-app.example.com
Log in to the Superstream UI and connect your first Kafka cluster.
Follow these steps to successfully configure and deploy your Superstream Control Plane environment.