Skip to main content

Introduction

This guide provides step-by-step instructions to deploy the W&B Platform in air-gapped, disconnected, or restricted network customer-managed environments. By following this guide, you set up an internal container registry and Helm repository to host W&B images and charts, install the W&B Kubernetes Operator, and deploy the W&B Platform without requiring outbound internet connectivity. This guide targets platform administrators and DevOps engineers who manage Kubernetes infrastructure in regulated or isolated networks. Air-gapped deployments are common in the following environments:
  • Secure government facilities.
  • Financial institutions with strict network isolation.
  • Healthcare organizations with compliance requirements.
  • Industrial control systems (ICS) environments.
  • Research facilities with classified networks.
Run these commands in a shell console with proper access to the Kubernetes cluster. You can adapt these commands to work with any CI/CD tooling you use to deploy Kubernetes applications. For standard on-premises Kubernetes deployments with internet connectivity, see Deploy W&B with Kubernetes Operator.

Prerequisites

Before starting, ensure your air-gapped environment meets the following requirements.

Version requirements

SSL/TLS requirements

W&B requires a valid signed SSL/TLS certificate for secure communication between clients and the server. SSL/TLS termination must occur on the ingress or load balancer. The W&B Server application doesn’t terminate SSL or TLS connections.
W&B doesn’t support self-signed certificates or custom CAs. Self-signed certificates cause challenges for users and aren’t supported.
If possible, use a service like Let’s Encrypt to provide trusted certificates to your load balancer. Services like Caddy and Cloudflare manage SSL for you. If your security policies require SSL communication within your trusted networks, consider using a tool like Istio and sidecar containers.

Hardware requirements

CPU Architecture: W&B runs on Intel (x86) CPU architecture only. ARM is not supported. Sizing: For CPU, memory, and disk sizing recommendations for Kubernetes nodes and MySQL, see the Sizing section in the reference architecture. Requirements vary based on whether you’re running Models, Weave, or both.

MySQL database

W&B requires an external MySQL database. For production, W&B recommends using managed database services: Managed database services provide automated backups, monitoring, high availability, patching, and reduce operational overhead. See the reference architecture for MySQL requirements, including sizing recommendations and configuration parameters. For the SQL to create the database, see the bare-metal guide. For questions about your deployment’s database configuration, contact support or your AISE. For MySQL configuration parameters for self-managed instances, see the reference architecture MySQL configuration section.

Redis

W&B depends on a single-node Redis 7.x deployment, which W&B’s components use for job queuing and data caching. For testing and proof-of-concept work, W&B Self-Managed includes a local Redis deployment. This bundled deployment isn’t appropriate for production use. For production deployments, W&B can connect to a Redis instance in the following environments:

Object storage

W&B requires object storage with pre-signed URL and CORS support. W&B recommends the following storage providers:
MinIO Open Source is in maintenance mode with no active development or pre-compiled binaries. For production deployments, W&B recommends managed object storage services or enterprise S3-compatible solutions such as MinIO Enterprise (AIStor).
After you select a provider, configure the bucket so that W&B can access it. For detailed bucket provisioning instructions including IAM policies, CORS configuration, and access setup, see the Bring Your Own Bucket (BYOB) guide. For the complete list of object storage requirements, including capacity and performance guidance, see the reference architecture object storage section. For detailed object storage provisioning guidance, see the Bring Your Own Bucket (BYOB) guide. In air-gapped environments, you’ll typically use on-premises S3-compatible storage such as MinIO Enterprise, NetApp StorageGRID, or Dell ECS.

Air-gapped specific requirements

In addition to the preceding standard requirements, air-gapped deployments require the following:
  • Internal container registry: Access to a private container registry such as Harbor, JFrog Artifactory, or Nexus, with all required W&B images.
  • Internal Helm repository: Access to a private Helm chart repository with W&B Helm charts.
  • Image transfer capability: A method to transfer container images from an internet-connected system to your air-gapped registry.
  • License file: A valid W&B Enterprise license. To obtain a license (for example, from an internet-connected machine), see the License section on the Requirements page, or contact your W&B account team.
For complete infrastructure requirements, including networking and load balancer configuration, see the reference architecture.

Prepare your air-gapped environment

The following steps prepare your air-gapped environment to host the W&B container images and Helm charts. Complete these steps before installing the operator or deploying the platform.

Step 1: Set up internal container registry

Because the Kubernetes cluster cannot pull images from public registries, all required container images must be available in your internal air-gapped container registry before deployment.
You are responsible for tracking the W&B Operator’s requirements and maintaining your container registry with updated images regularly. For the most current list of required container images and versions, refer to the Helm chart, or contact W&B Support or your assigned W&B support engineer.

Core W&B component containers

The following core images are required:

Dependency containers

The following third-party dependency images are required:

Get the complete image list

To extract the complete list of required images and versions from the Helm chart:
  1. On an internet-connected system, download the W&B Helm charts from the W&B Helm charts repository:
  2. Inspect the values.yaml files to identify all container images and their versions:
    Alternatively, use this command to extract only the repository names (without version tags):
    The list of repositories looks similar to the following:
    To get the specific version tags for each image, use the preceding first command (grep -E "repository:|tag:"), which shows both repository names and their corresponding version tags.

Transfer images to air-gapped registry

  1. On an internet-connected system, pull and save all required images.
    Replace version numbers in the following examples with the actual versions from your Helm chart inspection in the preceding step. The versions shown here are examples and become outdated over time.
    Use shell variables to manage versions consistently:
  2. Transfer the .tar files to your air-gapped environment using your approved method, such as a USB drive or secure file transfer.
  3. In your air-gapped environment, load and push images to your internal registry:

Step 2: Set up internal Helm chart repository

With the container images in place, the Kubernetes Operator also needs access to the W&B Helm charts. Ensure the following Helm charts are available in your internal Helm repository:
  1. On an internet-connected system, download the charts:
  2. Transfer the .tgz chart files to your air-gapped environment and upload them to your internal Helm repository according to your repository’s procedures. The operator chart deploys the W&B Kubernetes Operator (Controller Manager). The operator-wandb chart deploys the W&B Platform using the values configured in the Custom Resource (CR).

Step 3: Configure Helm repository access

Configure your local Helm client in the air-gapped environment to point to your internal repository so that subsequent install commands can locate the charts.
  1. In your air-gapped environment, configure Helm to use your internal repository:
  2. Verify the charts are available:

Deploy W&B in air-gapped environment

With your internal registry and Helm repository in place, you can now install the Kubernetes Operator, configure external services, and deploy the W&B Platform.

Step 4: Install the Kubernetes Operator

The W&B Kubernetes Operator (controller manager) manages the W&B Platform components. To install it in an air-gapped environment, configure it to use your internal container registry.
  1. Create a values.yaml file with the following content:
    Replace the repository and tag with the actual versions you transferred to your internal registry in Step 1. The version shown here (1.13.3) is an example and becomes outdated over time.
  2. Install the operator and Custom Resource Definition (CRD):
  3. Verify the operator is running:
    You should see the operator pod in a Running state.
The W&B Kubernetes Operator is now installed and ready to deploy the W&B Platform from your internal chart repository. For full details about supported values, refer to the Kubernetes operator GitHub repository values file.

Step 5: Set up MySQL database

Before configuring the W&B Custom Resource, set up an external MySQL database. For production deployments, W&B strongly recommends using managed database services where available. However, if you’re running your own MySQL instance, create the database and user: Create a database and a user with the following SQL commands. Replace [PASSWORD] with a secure password:
For MySQL configuration parameters, see the reference architecture MySQL configuration section.

Step 6: Configure W&B Custom Resource

After installing the W&B Kubernetes Operator, configure the Custom Resource (CR) to point to your internal Helm repository and container registry. This configuration ensures the Kubernetes operator uses your internal registry and repository when deploying the required components of the W&B Platform, instead of attempting to reach public sources.
The following example configuration includes image version tags that become outdated over time. Replace all tag: values with the actual versions you transferred to your internal registry in Step 1.
Create a file named wandb.yaml with the following content:
Replace all placeholder values, such as hostnames, passwords, and tags, with your actual configuration values. The preceding example shows the most commonly used components.
Depending on your deployment needs, you may also need to configure image repositories for additional components such as the following:
  • settingsMigrationJob
  • weave-trace
  • filestream
  • flat-runs-table
Refer to the W&B Helm repository values file for the complete list of configurable components.

Step 7: Deploy the W&B Platform

Applying the Custom Resource triggers the operator to install the W&B Platform components defined in the operator-wandb chart, using the configuration and image references from wandb.yaml.
  1. Apply the W&B Custom Resource to deploy the platform:
  2. Monitor the deployment progress:
    The deployment may take several minutes as the operator creates all necessary components.

OpenShift configuration

W&B supports deployment on air-gapped OpenShift Kubernetes clusters. OpenShift deployments require additional security context configurations because of OpenShift’s stricter security policies. If you’re deploying on OpenShift, apply the configurations in this section in addition to the preceding steps.

OpenShift security context constraints

OpenShift uses Security Context Constraints (SCCs) to control pod permissions. By default, OpenShift assigns the restricted SCC to pods, which prevents running as root and requires specific user IDs. Configure W&B components to run with the restricted SCC by setting appropriate security contexts in your Custom Resource:

Option 2: Create custom SCC (if required)

If your deployment requires capabilities not available in the restricted SCC, create a custom SCC:
  1. Apply the SCC:
  2. Bind the SCC to the W&B service accounts:

OpenShift routes

OpenShift uses Routes instead of standard Kubernetes Ingress. Configure W&B to use OpenShift Routes:

OpenShift image pull configuration

If your OpenShift cluster uses an internal image registry with authentication:
  1. Create an image pull secret:
  2. Reference the secret in your Custom Resource:

OpenShift complete example

The following example shows a complete CR for OpenShift air-gapped deployment:
Replace all tag: values in this example with the actual versions you transferred to your internal registry in Step 1. The versions shown are examples and become outdated over time.
Contact W&B Support or your assigned W&B support engineer for comprehensive OpenShift configuration examples tailored to your security requirements.

Verify your installation

After deploying W&B, verify the installation is working correctly so that you can confirm the platform is reachable, pods are healthy, and the deployment is using only your internal resources. Follow the general verification steps, then complete the additional air-gapped checks in the following section. To verify the installation, W&B recommends using the W&B CLI. The wandb verify command runs tests that confirm components and configurations work as expected.
This procedure assumes that you create the first admin user account in a browser.
To verify the installation:
  1. Install the W&B CLI:
  2. Log in to W&B:
    For example:
  3. Verify the installation:
After the command runs, a successful installation displays the following output:
Contact W&B Support if you encounter errors.

Additional air-gapped verification

For air-gapped deployments, also verify:
  1. Image pull: Confirm all pods successfully pulled images from your internal registry:
    All images should point to your internal registry and all pods should be in Running state.
  2. External connectivity: Verify W&B is not attempting external connections (it shouldn’t in air-gapped mode):
  3. License validation: Access the W&B console and verify your license is active.

Troubleshooting

Image pull errors

If pods fail to pull images, check the following:
  • Verify images exist in your internal registry.
  • Check that the image pull secret is correctly configured.
  • Verify network connectivity from Kubernetes nodes to the registry.
  • Check registry authentication credentials.
To test an image pull manually:

OpenShift SCC errors

If pods fail with permission errors on OpenShift:

Helm chart not found

If the operator can’t find the platform chart, check the following:
  • Verify the chart repository URL in the Custom Resource.
  • Check that the operator pod can reach your internal Helm repository.
  • Verify the chart exists in your repository:

Frequently asked questions

Can I use a different ingress class?

Yes, configure your ingress class by modifying the ingress settings in your Custom Resource:

How do I handle certificate bundles with multiple certificates?

Split the certificates into multiple entries in the customCACerts section:

How do I prevent automatic updates?

To configure the operator to not automatically update W&B, do the following:
  • Set airgapped: true in the operator installation (this disables automatic update checks).
  • Control version updates by manually updating the spec.chart.version in your Custom Resource.
  • Optionally, disable automatic updates from the W&B System Console.
See Disable automatic app version updates for more details.
W&B strongly recommends customers with Self-Managed instances update their deployments with the latest release at minimum once per quarter to maintain support and receive the latest features, performance improvements, and fixes. W&B supports a major release for 12 months from its initial release date. Refer to Release policies and processes.

Does the deployment work with no connection to public repositories?

Yes. When airgapped: true is set in the operator configuration, the Kubernetes operator uses only your internal resources and doesn’t attempt to connect to public repositories.

How do I update W&B in an air-gapped environment?

To update W&B:
  1. Pull new container images on an internet-connected system.
  2. Transfer images to your air-gapped registry.
  3. Upload new Helm charts to your internal repository.
  4. Update the spec.chart.version and image tags in your Custom Resource.
  5. Apply the updated Custom Resource. The operator performs a rolling update of the W&B components.

Next steps

After successful deployment, complete the following tasks:
  • Configure user authentication: Set up SSO or other authentication methods.
  • Set up monitoring: Configure monitoring for your W&B instance and infrastructure.
  • Plan for updates: Review the Server upgrade process and establish an update cadence.
  • Configure backups: Establish backup procedures for your MySQL database.
  • Document your process: Create runbooks for your specific air-gapped update procedures.

Get help

If you encounter issues during deployment:
  • Review the Reference Architecture for infrastructure guidance.
  • Check the Operator guide for configuration details.
  • Contact W&B Support or your assigned W&B support engineer.
  • For OpenShift-specific issues, reference Red Hat OpenShift documentation.