KubeMQ
DeployInstall

Install air-gapped

Install a KubeMQ cluster on Kubernetes with no internet access: request and apply an offline license file, then install from the KubeMQ support bundle.

This page licenses a KubeMQ cluster on Kubernetes that has no internet access. You request an offline license file, store it in the cluster, and install from a bundle that KubeMQ support provides. Time: about 60 minutes.

The work happens in two sittings: steps 1–2, then a wait for KubeMQ to send your offline license file, then step 3. Need an offline Docker server? Contact support.

These commands are for bash on macOS and Linux. On Windows, run them in WSL (Windows Subsystem for Linux), or use the kmq tab of Try KubeMQ, which runs natively on Windows.

Before you start

Do this on the administration machine inside your network.

Create a private folder, readable only by you, and work inside it:

mkdir -p -m 700 kubemq-private
cd kubemq-private
  • kubectl with a context for the target cluster.
  • An offline license file, requested in step 2 (Plans compared).
  • The software bundle. Contact support for the offline artifact bundle.

Steps

Create the namespace

kubectl --context YOUR_KUBE_CONTEXT create namespace kubemq --dry-run=client -o yaml | kubectl --context YOUR_KUBE_CONTEXT apply -f -

Replace: YOUR_KUBE_CONTEXT — the target cluster's kubectl context.

You should see:

Output
HARNESS_OUTPUT_PENDING

Request your offline license file

kubectl --context YOUR_KUBE_CONTEXT get namespace kube-system -o jsonpath='{.metadata.uid}'

You should see:

Output
HARNESS_OUTPUT_PENDING

This one line is your cluster ID. Send it and your server count through Plans compared. Put the kubemq.license you receive in kubemq-private.

Apply the offline license file

kubectl --context YOUR_KUBE_CONTEXT -n kubemq create secret generic messaging-license --from-file=licenseFile=kubemq.license --dry-run=client -o yaml | kubectl --context YOUR_KUBE_CONTEXT apply -f -

You should see:

Output
HARNESS_OUTPUT_PENDING

Install the operator and the cluster from the support bundle. Its cluster values reference this Secret with licenseFileSecretRef.

Renew before it expires

The file does not renew itself: the servers stop on the license_expires_at date kmq license shows (after a port-forward and sign-in, as in Licensing troubleshooting). Monitor it as How licensing works describes. To renew, repeat step 2, replace kubemq.license, and repeat step 3. Servers restart one at a time, keeping their data.

If something goes wrong

  • No servers start. If kubectl describe on the messaging cluster shows LicenseInvalid, the operator rejected the file (Troubleshooting).
  • A server logs #fingerprint-mismatch. The file is for another cluster (Troubleshooting).

Next steps

Was this page helpful?

On this page