Skip to content

Wpb 22590 1 wiab staging#101

Open
mohitrajain wants to merge 4 commits intowpb-22590-0-planning-updatefrom
wpb-22590-1-wiab-staging
Open

Wpb 22590 1 wiab staging#101
mohitrajain wants to merge 4 commits intowpb-22590-0-planning-updatefrom
wpb-22590-1-wiab-staging

Conversation

@mohitrajain
Copy link
Contributor

@mohitrajain mohitrajain commented Mar 6, 2026

Change type

  • Documentation change
  • Build pipeline change
  • Submodule update
  • Deployment change

Basic information

  • THIS CHANGE REQUIRES A WIRE-DOCS RELEASE NOW

Testing

  • I ran/applied the changes myself, in a test environment.

Tracking

  • I mentioned this PR in Jira, OR I mentioned the Jira ticket in this PR.
  • I mentioned this PR in one of the issues attached to one of our repositories.

@mohitrajain mohitrajain requested review from a team as code owners March 6, 2026 15:52
@mohitrajain mohitrajain changed the base branch from main to wpb-22590-0-planning-update March 6, 2026 15:53
@mohitrajain mohitrajain force-pushed the wpb-22590-0-planning-update branch from 5e8d3a3 to ab96ac5 Compare March 9, 2026 13:04
@mohitrajain mohitrajain force-pushed the wpb-22590-1-wiab-staging branch from f6c5524 to bd7f906 Compare March 9, 2026 13:08
## Introduction

**Wire in a Box (WIAB) Staging** is a demo installation of Wire running on a single physical machine using KVM-based virtual machines. This setup replicates the multi-node production Wire architecture in a consolidated environment suitable for testing, evaluation, and learning about Wire's infrastructure—but **not for production use**.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a reader i read it kind of. similar to production but it does not establish the core operator intent:
staging should mirror production as closely as practical, within the limits of a single-host KVM setup.
It sounds like another demo installation where it is s staging guideline.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can remove the demo word from the definition and replace it with staging.

**Wire in a Box (WIAB) Staging** is a demo installation of Wire running on a single physical machine using KVM-based virtual machines. This setup replicates the multi-node production Wire architecture in a consolidated environment suitable for testing, evaluation, and learning about Wire's infrastructure—but **not for production use**.

> **Important:** This is a sandbox environment. Data from a staging installation **cannot be migrated to production**. WIAB Staging is designed for experimentation, validation, and understanding Wire's deployment model.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is obvious, isn't it? It seems we are telling users in multiple places, don't do this. If we are not certain that the user understand what is staging and prod env means, I would suggest to create a reference for these terms.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note is to remind that staging to production migration isn't possible and a user should start with a staging setup and then plan for production setup but the initial staging can't be converted to production.

We have created a section below ## Relation to production to make it more clear.

- [Calling services](../../understand/overview.md#calling) will share the same k8s cluster as Wire stateful services hence, all infrastructure will be DMZ (De-militarized zone).

If you need a fully supported, highly-available, multi-datacenter deployment, use the **Production** path instead (see `ansible-VMs.md` and `helm-prod.md`).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if the suggested staging env (hardware/network infra etc) is enough for a user to run their prod setup?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per the definition of production a staging doesn't satisfy the condition, Hence we are specifying why a staging is not a production:

  • no HA, single failure domain
  • no network security against wire-components
  • limited wire-calling capacity

A user should never think that a staging is production.

- **kubenodes (kubenode1, kubenode2, kubenode3):** Run the Kubernetes cluster and host Wire backend services
- **datanodes (datanode1, datanode2, datanode3):** Run distributed data services:
- Cassandra (distributed database)
- PostgreSQL (operational database)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is operation database and distributed database here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intent was to mention distributed (all nodes equal) and operational (Primary RW and secondary RO) nodes. I will remove it to avoud confusion

## Getting the Ansible playbooks

> **Note:** If you prefer to manage VMs yourself with another hypervisor, you can skip this step and instead create the VMs manually with the specs shown above. Along with VM creation, you need to perform a few more steps like downloading the [wire-server-deploy artifact](planning.md#artifact-bundle-and-offline-deployment) and [setup network configuration](#network-traffic-configuration) including the firewall rules.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after downloading the artifact, the user can run offline-vm-setup.sh too.

Why we would suggest a user to clone the repo when we have delivered the artifacts and capable of running the deployment.

Its not a contribution guidelines usually where it as asked to clone/fork etc.

Copy link
Contributor Author

@mohitrajain mohitrajain Mar 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clone or fork are not necessary, we are sharing the guide to download the ansible playbooks via wget (https://github.com/wireapp/wire-docs/pull/101/changes#diff-ffa83634d14fb8bd04fd337b1199e4d77d12e05ead894298c030d349987a6edbR92) to whole repository.

There are 2 ways of installation possible here:

  1. A user choose to use our Ansible playbooks to setup VMs (and required packages before hand) and also download the artifact, then create an inventory based on the VMs created above.
  2. A user creates their own VMs using their own hypervisor, they can manually download the artifact, manually edit the inventory file and then continue with the next steps.

The first step requires user to download the ansible playbooks before hand.

A user can run the script https://github.com/wireapp/wire-server-deploy/blob/master/bin/offline-vm-setup.sh directly but the user would still be required to install all the required deb packages on the machine to enable the VM creation. Then user would be required to edit the inventory manually. At the end user would be required to setup the firewall (nftables) rules manually if not using the ansible playbook.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants