Skip to content

Commit 9e09fec

Browse files
authored
Update dev README to include airgap instructions (#3220)
1 parent f2ec5ef commit 9e09fec

File tree

1 file changed

+131
-72
lines changed

1 file changed

+131
-72
lines changed

README.md

Lines changed: 131 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -63,49 +63,145 @@ Additionally, it includes a Registry when deployed in air gap mode, and SeaweedF
6363
- To use a different AWS bucket or account, override using the `S3_BUCKET` environment variable.
6464
- To use the Replicated staging bucket used in CI, set `USES_DEV_BUCKET=0`.
6565
66-
1. Create a release for initial installation:
66+
1. In the Vendor Portal, create and download a license that is assigned to the channel.
67+
We recommend storing this license in the `local-dev/` directory, as it is gitignored and not otherwise used by the CI.
68+
69+
### V2 installs
70+
71+
**For Online:**
72+
1. Create the release:
6773
```bash
6874
make initial-release
6975
```
76+
1. Create the node:
77+
```bash
78+
make create-node0
79+
```
80+
1. Install the release:
81+
```bash
82+
output/bin/embedded-cluster install --license <license-file>
83+
```
84+
1. Once that completes, you can access the admin console at http://localhost:30000
7085
71-
This step creates a release that is intended to be used for initial installation, not for upgrades.
72-
It creates a release of the application using the manifests located in the `e2e/kots-release-install` directory.
73-
It may take a few minutes to complete the first time as nothing is cached yet.
74-
75-
1. Create the first node:
86+
**For Airgap:**
87+
1. Create the release:
88+
```bash
89+
make initial-release UPLOAD_BINARIES=1
90+
```
91+
1. Build the air gap bundle manually in the Vendor Portal from the channel history page for your channel.
92+
1. Create the node:
7693
```bash
7794
make create-node0
7895
```
96+
1. Follow the Embedded Cluster install instructions on the customer page.
97+
1. Once that completes, you can access the admin console at http://localhost:30000
7998
80-
This command sets up the initial node for your cluster and SSHs into it.
99+
**Notes:**
100+
- It may take a few minutes to complete the first time as nothing is cached yet.
101+
- The release will be created using the manifests located in the `e2e/kots-release-install` directory.
102+
- The created release is intended to be used for initial installation, not for upgrades.
81103
82-
By default, a Debian-based node will be created. If you want to use a different distribution, you can set the `DISTRO` environment variable:
104+
### V2 upgrades
105+
106+
**For Online:**
107+
1. Create the release:
108+
```bash
109+
make upgrade-release
110+
```
111+
1. The release will show up in the KOTS admin console as an available update.
112+
1. Deploy the update from the admin console version history page.
83113
114+
**For Airgap:**
115+
1. Create the release:
84116
```bash
85-
make create-node0 DISTRO=almalinux-8
117+
make upgrade-release
86118
```
119+
1. Build the air gap bundle manually in the Vendor Portal from the channel history page for your channel.
120+
1. SSH into the node:
121+
```bash
122+
make ssh-node0
123+
```
124+
1. Run the download and extract commands from the install instructions on the customer page.
125+
1. Run `sudo ./<app-slug> airgap update --airgap bundle` to upload the bundle to the KOTS admin console.
126+
1. Deploy the update from the admin console version history page.
127+
128+
### V3 installs
87129
88-
To view the list of available distributions:
130+
Embedded Cluster supports v3 releases which provide an enhanced manager UI experience for installations and upgrades. V3 releases are enabled by setting the `ENABLE_V3` environment variable.
89131
132+
**For Online:**
133+
1. Create the release:
90134
```bash
91-
make list-distros
135+
make initial-release ENABLE_V3=1
136+
```
137+
1. Create the node:
138+
```bash
139+
make create-node0
140+
```
141+
1. Install the release:
142+
```bash
143+
ENABLE_V3=1 EC_DEV_ENV=true output/bin/embedded-cluster install --license <license-file> --target linux
92144
```
93145
94-
**Note:** The development environment automatically mounts both data directories to support v2 and v3:
95-
- **v2 mode:** Uses `/var/lib/embedded-cluster/k0s`
96-
- **v3 mode:** Uses `/var/lib/{app-slug}/k0s` (determined from `REPLICATED_APP`)
97-
98-
Both directories are mounted automatically, so the embedded cluster binary can use whichever one it needs without any manual configuration.
146+
**For Airgap:**
147+
1. Create the release:
148+
```bash
149+
make initial-release ENABLE_V3=1 UPLOAD_BINARIES=1
150+
```
151+
1. Build the air gap bundle manually in the Vendor Portal from the channel history page for your channel.
152+
1. Create the node:
153+
```bash
154+
make create-node0
155+
```
156+
1. Run the download and extract commands from the install instructions on the customer page.
157+
1. Run the following command to install the EC release in airgap mode:
158+
```bash
159+
ENABLE_V3=1 sudo -E ./<app-slug> install --license <license-file> --airgap-bundle <app-slug>.airgap --target linux
160+
```
99161
100-
1. In the Vendor Portal, create and download a license that is assigned to the channel.
101-
We recommend storing this license in the `local-dev/` directory, as it is gitignored and not otherwise used by the CI.
162+
**Note:** The release will be created using the manifests located in the `e2e/kots-release-install-v3` directory.
102163
103-
1. Install Embedded Cluster:
164+
### V3 upgrades
165+
166+
**For Online:**
167+
1. Create the release:
104168
```bash
105-
output/bin/embedded-cluster install --license <license-file>
169+
make upgrade-release ENABLE_V3=1
170+
```
171+
1. SSH into the node:
172+
```bash
173+
make ssh-node0
174+
```
175+
1. Run the following command to upgrade the EC release:
176+
```bash
177+
ENABLE_V3=1 EC_DEV_ENV=true output/bin/embedded-cluster upgrade --license <license-file> --target linux
106178
```
107179
108-
1. Once that completes, you can access the admin console at http://localhost:30000
180+
**For Airgap:**
181+
1. Create the release:
182+
```bash
183+
make upgrade-release ENABLE_V3=1
184+
```
185+
1. Build the air gap bundle manually in the Vendor Portal from the channel history page for your channel.
186+
1. SSH into the node:
187+
```bash
188+
make ssh-node0
189+
```
190+
1. Run the download and extract commands from the install instructions on the customer page.
191+
1. Run the following command to upgrade to the new EC release in airgap mode:
192+
```bash
193+
ENABLE_V3=1 EC_DEV_ENV=true sudo -E ./<app-slug> upgrade --license <license-file> --airgap-bundle <app-slug>.airgap --target linux
194+
```
195+
196+
**Note:** The release will be created using the manifests located in the `e2e/kots-release-upgrade-v3` directory.
197+
198+
**Required environment variables:**
199+
- `ENABLE_V3=1` - **Required** to enable v3 functionality and manager UI experience
200+
- `EC_DEV_ENV=true` - **Optional** for development mode, enables dynamic asset loading from `./web/dist` instead of embedded assets. This allows you to test web UI changes by simply running `npm run build` in the `web/` directory and refreshing the browser, without needing to rebuild the entire embedded-cluster binary or building a new release.
201+
202+
**Required flags:**
203+
- `--target` - **Required** to specify the target platform. Valid options are `linux` or `kubernetes`
204+
- `--license` - **Required** path to the license file
109205
110206
### Interacting with the cluster
111207
@@ -133,74 +229,37 @@ $ source /etc/bash_completion
133229
$
134230
```
135231
136-
### Creating an upgrade release
137-
138-
To create an upgrade release, run the following command:
139-
```bash
140-
make upgrade-release
141-
```
142-
143-
This step creates a release that is intended to be used for upgrades.
144-
It creates a release of the application using the manifests located in the `e2e/kots-release-upgrade` directory.
145-
The release will show up in the KOTS admin console as an available update.
146-
147-
### Creating v3 releases
148-
149-
Embedded Cluster supports v3 releases which provide an enhanced manager UI experience for installations and upgrades. V3 releases are enabled by setting the `ENABLE_V3` environment variable.
150-
151-
#### Creating a v3 initial release
232+
### Creating additional nodes
152233
153-
To create a v3 initial release, run the following command:
234+
To create additional nodes, run the following command:
154235
```bash
155-
make initial-release ENABLE_V3=1
236+
make create-node<node-number>
156237
```
157238
158-
This creates a release using the manifests located in the `e2e/kots-release-install-v3` directory.
159-
160-
#### Creating a v3 upgrade release
161-
162-
To create a v3 upgrade release, run the following command:
239+
For example:
163240
```bash
164-
make upgrade-release ENABLE_V3=1
241+
make create-node1
165242
```
166243
167-
This creates a release using the manifests located in the `e2e/kots-release-upgrade-v3` directory.
168-
169-
#### Installing a v3 release
170-
171-
When using v3 releases, the install and upgrade commands are different from the standard commands:
244+
These additional nodes can either be joined to your existing Embedded Cluster installation, or used to set up separate, independent Embedded Cluster instances.
172245
173-
**Install command:**
174-
```bash
175-
ENABLE_V3=1 EC_DEV_ENV=true output/bin/embedded-cluster install --license <license-file> --target linux
176-
```
246+
By default, a Debian-based node will be created. If you want to use a different distribution, you can set the `DISTRO` environment variable:
177247
178-
**Upgrade command:**
179248
```bash
180-
ENABLE_V3=1 EC_DEV_ENV=true output/bin/embedded-cluster upgrade --license <license-file> --target linux
249+
make create-node0 DISTRO=almalinux-8
181250
```
182251
183-
**Required environment variables:**
184-
- `ENABLE_V3=1` - **Required** to enable v3 functionality and manager UI experience
185-
- `EC_DEV_ENV=true` - **Optional** for development mode, enables dynamic asset loading from `./web/dist` instead of embedded assets. This allows you to test web UI changes by simply running `npm run build` in the `web/` directory and refreshing the browser, without needing to rebuild the entire embedded-cluster binary or building a new release.
252+
To view the list of available distributions:
186253
187-
**Required flags:**
188-
- `--target` - **Required** to specify the target platform. Valid options are `linux` or `kubernetes`
189-
- `--license` - **Required** path to the license file
190-
191-
### Creating additional nodes
192-
193-
To create additional nodes, run the following command:
194254
```bash
195-
make create-node<node-number>
255+
make list-distros
196256
```
197257
198-
For example:
199-
```bash
200-
make create-node1
201-
```
258+
**Note:** The development environment automatically mounts both data directories to support v2 and v3:
259+
- **v2 mode:** Uses `/var/lib/embedded-cluster/k0s`
260+
- **v3 mode:** Uses `/var/lib/{app-slug}/k0s` (determined from `REPLICATED_APP`)
202261
203-
These additional nodes can either be joined to your existing Embedded Cluster installation, or used to set up separate, independent Embedded Cluster instances.
262+
Both directories are mounted automatically, so the embedded cluster binary can use whichever one it needs without any manual configuration.
204263
205264
### Deleting nodes
206265

0 commit comments

Comments
 (0)