Airgapped Helm Installation
Prerequisites
Set up a Kubernetes cluster that meets the minimum requirements.
Obtain a valid license that enables Airgap and Helm installations. The Helm values file from the OCI registry includes a digitally signed license and the chart. Access to the registry requires authentication using the credentials we provide.
To request a license, contact our Sales Team or your account manager.
Install Helm CLI on both online and airgapped machine. Locate the example Helm values file (
.yaml
). You can refer to Helm documentation for additional guidance.Set up a Docker registry available in the network, as specified in the Airgapped Installation Requirements.
All commands require a jumpbox with connectivity to the cluster and a
kubectl
installation.(Optional) To enable Enhanced Search, you need an existing Elasticsearch installation (version 8.x).
Download installation files
Before you proceed with the airgapped installation, contact Sales or your account manager and ask for a link to download the installation files. You will receive a link and credentials to access the download portal.
To allow the cluster to pull application images, configure a container registry accessible to the cluster. You can retrieve the images from the Replicated Registry and then transfer them to your private registry. Alternatively, you can set up a registry, like Harbor, to automatically mirror the images.
On a computer with internet access:
Log in to the download portal using the provided credentials.
docker login proxy.replicated.com -u <CUSTOMER EMAIL> -p <LICENSE_ID>
Pull the application images.
Caution
Ensure the image version matches the one provided in the auto-generated instructions in the download portal.
docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-portal-frontend:v1.20250320.4 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swagger-spec-converter:1.9.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-resolver-service:1.26.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-core:1.20250220.1 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-registry-api:3.59.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-custom-rules:2.19.0-onprem docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-configs-service:1.15.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swagger-hub-frontend:4.0.85-onprem-5 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-api-service:2.23.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-notifications:2.10.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-operator:2.12.0-926-b15f4536 docker pull proxy.replicated.com/proxy/swaggerhub/haproxy:3.0.9-alpine3.21 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-portal-api:v1.20250319.1 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-virtserver:3.25.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-accounts-api:4.22.0 docker pull proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-products-api:2.18.0 docker pull proxy.replicated.com/proxy/swaggerhub/swaggerapi/swagger-generator-v3:3.0.68
Re-tag the downloaded images to push them to your internal registry.
docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-portal-frontend:v1.20250320.4 your.registry.com/swaggerhub/swaggerhub-portal-frontend:v1.20250320.4 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swagger-spec-converter:1.9.0 your.registry.com/swaggerhub/swagger-spec-converter:1.9.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-resolver-service:1.26.0 your.registry.com/swaggerhub/swaggerhub-resolver-service:1.26.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-core:1.20250220.1 your.registry.com/swaggerhub/swaggerhub-core:1.20250220.1 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-registry-api:3.59.0 your.registry.com/swaggerhub/swaggerhub-registry-api:3.59.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-custom-rules:2.19.0-onprem your.registry.com/swaggerhub/swaggerhub-custom-rules:2.19.0-onprem docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-configs-service:1.15.0 your.registry.com/swaggerhub/swaggerhub-configs-service:1.15.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swagger-hub-frontend:4.0.85-onprem-5 your.registry.com/swaggerhub/swagger-hub-frontend:4.0.85-onprem-5 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-api-service:2.23.0 your.registry.com/swaggerhub/swaggerhub-api-service:2.23.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-notifications:2.10.0 your.registry.com/swaggerhub/swaggerhub-notifications:2.10.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-operator:2.12.0-926-b15f4536 your.registry.com/swaggerhub/swaggerhub-operator:2.12.0-926-b15f4536 docker tag proxy.replicated.com/proxy/swaggerhub/haproxy:3.0.9-alpine3.21 your.registry.com/swaggerhub/haproxy:3.0.9-alpine3.21 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-portal-api:v1.20250319.1 your.registry.com/swaggerhub/swaggerhub-portal-api:v1.20250319.1 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-virtserver:3.25.0 your.registry.com/swaggerhub/swaggerhub-virtserver:3.25.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-accounts-api:4.22.0 your.registry.com/swaggerhub/swaggerhub-accounts-api:4.22.0 docker tag proxy.replicated.com/proxy/swaggerhub/smartbear/swaggerhub-products-api:2.18.0 your.registry.com/swaggerhub/swaggerhub-products-api:2.18.0 docker tag proxy.replicated.com/proxy/swaggerhub/swaggerapi/swagger-generator-v3:3.0.68 your.registry.com/swaggerhub/swagger-generator-v3:3.0.68
docker push your.registry.com/swaggerhub/swaggerhub-portal-frontend:v1.20250320.4 docker push your.registry.com/swaggerhub/swagger-spec-converter:1.9.0 docker push your.registry.com/swaggerhub/swaggerhub-resolver-service:1.26.0 docker push your.registry.com/swaggerhub/swaggerhub-core:1.20250220.1 docker push your.registry.com/swaggerhub/swaggerhub-registry-api:3.59.0 docker push your.registry.com/swaggerhub/swaggerhub-custom-rules:2.19.0-onprem docker push your.registry.com/swaggerhub/swaggerhub-configs-service:1.15.0 docker push your.registry.com/swaggerhub/swagger-hub-frontend:4.0.85-onprem-5 docker push your.registry.com/swaggerhub/swaggerhub-api-service:2.23.0 docker push your.registry.com/swaggerhub/swaggerhub-notifications:2.10.0 docker push your.registry.com/swaggerhub/swaggerhub-operator:2.12.0-926-b15f4536 docker push your.registry.com/swaggerhub/haproxy:3.0.9-alpine3.21 docker push your.registry.com/swaggerhub/swaggerhub-portal-api:v1.20250319.1 docker push your.registry.com/swaggerhub/swaggerhub-virtserver:3.25.0 docker push your.registry.com/swaggerhub/swaggerhub-accounts-api:4.22.0 docker push your.registry.com/swaggerhub/swaggerhub-products-api:2.18.0 docker push your.registry.com/swaggerhub/swagger-generator-v3:3.0.68
Initial configuration
Before starting the installation, configure your custom settings. Use the provided values.yaml
file and create a customized custom-values.yaml
file.
For an airgapped installation from a private registry, set up the following values:
Pull secret
Configure the pull secret to allow access to the private registry.
global: imageRegistry: <PRIVATE REGISTRY HOST> imagePullSecrets: - <PULL SECRET NAME>
Image repository
Configure each service to use the private registry and repository.
swaggerhubOperator: repository: <REPOSITORY>/swaggerhub/swaggerhub-operator specConverterApi: repository: <REPOSITORY>/swaggerhub/swagger-spec-converter swaggerGenerator: repository: <REPOSITORY>/swaggerhub/swaggerapi/swagger-generator-v3 swaggerhubAccountsApi: repository: <REPOSITORY>/swaggerhub/swaggerhub-accounts-api swaggerhubApiService: repository: <REPOSITORY>/swaggerhub/swaggerhub-api-service swaggerhubConfigsApi: repository: <REPOSITORY>/swaggerhub/swaggerhub-configs-service swaggerhubCore: repository: <REPOSITORY>/swaggerhub/swaggerhub-core swaggerhubCustomRules: repository: <REPOSITORY>/swaggerhub/swaggerhub-custom-rules swaggerhubFrontend: repository: <REPOSITORY>/swaggerhub/swagger-hub-frontend swaggerhubNotifications: repository: <REPOSITORY>/swaggerhub/swaggerhub-notifications swaggerhubProductsApi: repository: <REPOSITORY>/swaggerhub/swaggerhub-products-api swaggerhubRegistryApi: repository: <REPOSITORY>/swaggerhub/swaggerhub-registry-api swaggerhubResolverService: repository: <REPOSITORY>/swaggerhub/swaggerhub-resolver-service swaggerhubVirtserver: repository: <REPOSITORY>/swaggerhub/swaggerhub-virtserver swaggerhubPortalFrontend: repository: <REPOSITORY>/swaggerhub/swaggerhub-portal-frontend swaggerhubPortalBackend: repository: <REPOSITORY>/swaggerhub/swaggerhub-portal-api haproxy: repository: <REPOSITORY>/swaggerhub/haproxy
Downloading Helm chart
Pull the Helm chart, using the command:
helm pull oci://registry.replicated.com/swaggerhub/stable/swaggerhub
Installation
For manually pulled charts, use the following command:
export SWAGGERHUB_CHART=swaggerhub.tgz
In other cases:
export SWAGGERHUB_CHART=oci://registry.replicated.com/swaggerhub/stable/swaggerhub
Preflight checks
Check the configuration of settings to ensure correctness and avoid errors during the installation. This step is optional, but we strongly recommend including it in your process. Additional instruction is available in the preflights documentation.
helm template $SWAGGERHUB_CHART --values swaggerhub-values.yaml | kubectl preflight -
Install SwaggerHub
After successful preflight checks, initiate the installation.
helm install swaggerhub $SWAGGERHUB_CHART --values swaggerhub-values.yaml