You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: offline/wiab-staging.md
+19-16Lines changed: 19 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,7 +107,7 @@ cd wire-server-deploy
107
107
108
108
A sample inventory is available at [ansible/inventory/demo/wiab-staging.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/wiab-staging.yml).
109
109
110
-
*Note: Replace example.com with your physical machine address where KVM is available and adjust other variables like ansible_user and ansible_ssh_private_key_file. The SSH user for ansible `ansible_user` should have password-less `sudo` access. The physical host should be running Ubuntu 22.04.*
110
+
*Note: Replace example.com with your physical machine (adminhost) address where KVM is available and adjust other variables like ansible_user and ansible_ssh_private_key_file. The SSH user for ansible `ansible_user` should have password-less `sudo` access. The physical host should be running Ubuntu 22.04.*
111
111
112
112
**Step 3: Run the VM and network provision**
113
113
@@ -127,6 +127,8 @@ Ensure the inventory file `ansible/inventory/offline/inventory.yml` in the direc
127
127
128
128
Since the inventory is ready, please continue with the following steps:
129
129
130
+
> **Note**: All next steps assume that the wire-server-deploy artifact has been downloaded on the `adminhost` (your physical machine) and extracted at `/home/ansible_user/wire-server-deploy`. All commands from here on will be issued from this directory on the `adminhost`, ssh on the node before proceeding.
131
+
130
132
### Environment Setup
131
133
132
134
-**[Making tooling available in your environment](docs_ubuntu_22.04.md#making-tooling-available-in-your-environment)**
@@ -150,7 +152,7 @@ Since the inventory is ready, please continue with the following steps:
150
152
-`HOST_IP`: public IP that matches your DNS A record (auto-detected if empty).
151
153
152
154
**TLS / certificate behavior (cert-manager vs. Bring Your Own):**
153
-
- By default, `bin/helm-operations.sh`runs `deploy_cert_manager`, which installs cert-manager and configures a Let’s Encrypt (HTTP-01) issuer for the ingress charts.
155
+
- By default, `bin/helm-operations.sh`has `DEPLOY_CERT_MANAGER=TRUE`, which installs cert-manager and configures a Let’s Encrypt (HTTP-01) issuer for the ingress charts.
154
156
- If you **do not** want Let’s Encrypt / cert-manager (for example, you are using **[Bring Your Own certificates](docs_ubuntu_22.04.md#acquiring--deploying-ssl-certificates)**), disable this step by passing env variable `DEPLOY_CERT_MANAGER=FALSE` when running `bin/helm-operations.sh`.
155
157
- When choosing `DEPLOY_CERT_MANAGER=FALSE`, ensure your ingress is configured with your own TLS secret(s) as described at [Acquiring / Deploying SSL Certificates](docs_ubuntu_22.04.md#acquiring--deploying-ssl-certificates).
156
158
- When choosing `DEPLOY_CERT_MANAGER=TRUE`, ensure if further network configuration is required by following [cert-manager behaviour in NAT / bridge environments](#cert-manager-behaviour-in-nat--bridge-environments).
@@ -162,7 +164,7 @@ d sh -c 'TARGET_SYSTEM="example.dev" CERT_MASTER_EMAIL="certmaster@example.dev"
- Ingress and certificates: `ingress-nginx-controller`, `cert-manager`, `nginx-ingress-services`.
168
170
- Calling services: `sftd`, `coturn`.
@@ -171,23 +173,17 @@ d sh -c 'TARGET_SYSTEM="example.dev" CERT_MASTER_EMAIL="certmaster@example.dev"
171
173
- Creates `values.yaml` and `secrets.yaml` from `prod-values.example.yaml` and `prod-secrets.example.yaml` for each chart under `values/`.
172
174
- Backs up any existing `values.yaml`/`secrets.yaml` before replacing them.
173
175
174
-
**Values configured by the script:**
175
-
- Replaces `example.com` with `TARGET_SYSTEM` in Wire and webapp hostnames.
176
-
- Enables cert-manager and sets `certmasterEmail` using `CERT_MASTER_EMAIL`.
177
-
- Sets SFTD hosts and switches issuer to `letsencrypt-http01`.
178
-
- Sets coturn listen/relay/external IPs using the calling node IP and `HOST_IP`.
179
-
180
176
*Note: The `bin/helm-operations.sh` script above deploys these charts; you do not need to run the Helm commands manually unless you want to customize or debug.*
181
177
182
178
## Network Traffic Configuration
183
179
184
180
### Bring traffic from the physical machine to Wire services in the k8s cluster
185
181
186
-
If you used the Ansible playbook earlier, nftables firewall rules are pre-configured to forward traffic. If you set up VMs manually with your own hypervisor, you must manually configure network traffic flow using nftables.
182
+
If you used the Ansible playbook earlier, nftables firewall rules are pre-configured to forward traffic. If you set up VMs manually with your own hypervisor, you must manually configure network traffic flow using nftables as descibed below.
187
183
188
184
**Required Network Configuration:**
189
185
190
-
The physical machine must forward traffic from external clients to the Kubernetes cluster running Wire services. This involves:
186
+
The physical machine (adminhost) must forward traffic from external clients to the Kubernetes cluster running Wire services. This involves:
191
187
192
188
1.**HTTP/HTTPS Traffic (Ingress)** - Forward ports 80 and 443 to the nginx-ingress-controller running on a Kubernetes node
193
189
- Port 80 (HTTP) → Kubernetes node port 31772
@@ -199,19 +195,20 @@ The physical machine must forward traffic from external clients to the Kubernete
199
195
200
196
**Implementation:**
201
197
202
-
Use the detailed nftables rules in [../ansible/files/wiab_server_nftables.conf.j2](../ansible/files/wiab_server_nftables.conf.j2) as the template. The guide covers:
198
+
Use the detailed nftables rules in [../ansible/files/wiab_server_nftables.conf.j2](../ansible/files/wiab_server_nftables.conf.j2) as the template. The nftable configuration template covers:
203
199
- Defining your network variables (Coturn IP, Kubernetes node IP, WAN interface)
204
200
- Creating NAT rules for HTTP/HTTPS ingress traffic
205
-
- Setting up TURN protocol forwarding for Coturn
206
-
- Restarting nftables to apply changes
201
+
- Setting up TURN protocol forwarding for Coturn and traffic for SFTD
202
+
203
+
*Note: If you have already ran the playbook wiab-staging-provision.yml then it is already be configured for you. Confirm it by checking if the wire endpoint `https://webapp.TARGET_SYSTEM` is reachable from public internet or your private network (in case of private network), but not from the adminhost itself.*
207
204
208
-
You can also apply these rules using the Ansible playbook, by following:
205
+
You can also apply these rules using the Ansible playbook against your adminhost, by following:
*Note: If you ran the playbook wiab-staging-provision.yml then it might already be configured for you. Please confirm before running.*
211
+
You can run the above playbook from local system or where you have cloned/downloaded the [Wire server deploy ansible playbooks](#getting-the-ansible-playbooks).
215
212
216
213
The inventory should define the following variables:
0 commit comments