@celilo/e2e 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/e2e-bake-management
CHANGED
|
@@ -253,7 +253,7 @@ async function bakeViaPublished(): Promise<void> {
|
|
|
253
253
|
process.stdout.write(' bun add -g (real npm) .. ');
|
|
254
254
|
const t2 = Date.now();
|
|
255
255
|
const add = await dexec(
|
|
256
|
-
'bun add -g @celilo/cli@
|
|
256
|
+
'bun add -g @celilo/cli@latest @celilo/event-bus@latest @celilo/e2e@latest 2>&1',
|
|
257
257
|
);
|
|
258
258
|
if (add.exitCode !== 0) {
|
|
259
259
|
console.log(`✗ exit ${add.exitCode}`);
|
|
@@ -275,7 +275,14 @@ async function bakeViaPublished(): Promise<void> {
|
|
|
275
275
|
|
|
276
276
|
process.stdout.write(' docker commit .......... ');
|
|
277
277
|
const t3 = Date.now();
|
|
278
|
-
|
|
278
|
+
// The vanilla container was started with `sleep infinity`; docker commit
|
|
279
|
+
// persists the running Cmd, so override it back to the management image's
|
|
280
|
+
// real entrypoint (Dockerfile.management: CMD ["/startup.sh"], no
|
|
281
|
+
// ENTRYPOINT). Without this the baked image never runs /startup.sh ->
|
|
282
|
+
// ssh-keys volume stays empty -> fw-main crashloops (ce-um6).
|
|
283
|
+
run(
|
|
284
|
+
`docker commit --change 'CMD ["/startup.sh"]' ${name} celilo-e2e/management:latest`,
|
|
285
|
+
);
|
|
279
286
|
console.log(`✔ ${Math.round((Date.now() - t3) / 1000)}s`);
|
|
280
287
|
} finally {
|
|
281
288
|
process.stdout.write(' removing container ..... ');
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
$ORIGIN example.net.
|
|
2
|
+
$TTL 300
|
|
3
|
+
|
|
4
|
+
@ IN SOA ns1.example.net. admin.example.net. (
|
|
5
|
+
2024020108 300 60 604800 300
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
; Public DNS — RFC 1918 addresses NEVER appear here. The whole point of
|
|
9
|
+
; the e2e simulation is to model real internet connectivity, where
|
|
10
|
+
; private IPs are unreachable from outside. All public-facing names
|
|
11
|
+
; resolve to the firewall's external IP (100.100.0.100), which DNATs
|
|
12
|
+
; inbound to the right internal host.
|
|
13
|
+
@ IN NS ns1.example.net.
|
|
14
|
+
ns1 IN A 100.64.0.55
|
|
15
|
+
@ IN A 100.100.0.100
|
|
16
|
+
www IN A 100.100.0.100
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
$ORIGIN iamtheinternet.org.
|
|
2
|
+
$TTL 300
|
|
3
|
+
|
|
4
|
+
@ IN SOA ns1.iamtheinternet.org. admin.iamtheinternet.org. (
|
|
5
|
+
2024020247 300 60 604800 300
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
; Public DNS — RFC 1918 addresses NEVER appear here. The whole point of
|
|
9
|
+
; the e2e simulation is to model real internet connectivity, where
|
|
10
|
+
; private IPs are unreachable from outside. All public-facing names
|
|
11
|
+
; resolve to the firewall's external IP (100.100.0.100), which DNATs
|
|
12
|
+
; inbound to the right internal host.
|
|
13
|
+
@ IN NS ns1.iamtheinternet.org.
|
|
14
|
+
ns1 IN A 100.64.0.55
|
|
15
|
+
@ IN A 0.0.0.0
|
|
16
|
+
www IN A 100.100.0.100
|
|
@@ -19,6 +19,12 @@ COPY config/apt/99retries.conf /etc/apt/apt.conf.d/99retries.conf
|
|
|
19
19
|
|
|
20
20
|
RUN apt-get update && apt-get install -y \
|
|
21
21
|
openssh-client \
|
|
22
|
+
# openssh-server: the celilo-bootstrap deb Depends on it (remote-API server).
|
|
23
|
+
# Pre-caching it here keeps the bootstrap-apt foreground `apt install` fast
|
|
24
|
+
# (no download over the bumped Squid path) and mirrors reality — a real
|
|
25
|
+
# management box already runs sshd. The deb still owns the celilo-api account
|
|
26
|
+
# + forced-command authorized_keys; this only pre-stages the package.
|
|
27
|
+
openssh-server \
|
|
22
28
|
ansible \
|
|
23
29
|
iproute2 \
|
|
24
30
|
iputils-ping \
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@celilo/e2e",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "E2E test infrastructure for Celilo-deployed applications. Provides a simulated internet with DNS hierarchy, ACME server, firewalls, and target machines in Docker.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"README.md"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@celilo/cli-display": "
|
|
41
|
-
"@celilo/event-bus": "
|
|
40
|
+
"@celilo/cli-display": "workspace:^",
|
|
41
|
+
"@celilo/event-bus": "workspace:^",
|
|
42
42
|
"yaml": "^2.8.0",
|
|
43
43
|
"zod": "^3.24.1"
|
|
44
44
|
},
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
import { execSync } from 'node:child_process';
|
|
33
33
|
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
34
34
|
import { join } from 'node:path';
|
|
35
|
+
import { ensureRegistryServerBundle } from '../src/registry-bundle';
|
|
35
36
|
|
|
36
37
|
const REPO_ROOT = join(import.meta.dir, '..', '..', '..');
|
|
37
38
|
|
|
@@ -187,6 +188,15 @@ function main(): void {
|
|
|
187
188
|
rmSync(destination, { recursive: true, force: true });
|
|
188
189
|
mkdirSync(destination, { recursive: true });
|
|
189
190
|
|
|
191
|
+
// @celilo/e2e's `files[]` ships `registry-server/`, but that directory is a
|
|
192
|
+
// .gitignored build artifact — absent in a fresh checkout, so `bun pm pack`
|
|
193
|
+
// would silently pack an e2e tarball WITHOUT it. A monorepo-free consumer's
|
|
194
|
+
// `cele2e build-infra` then dies in buildDockerImages (ensureRegistryServerBundle:
|
|
195
|
+
// "published without its registry-server bundle"). Regenerate it from the
|
|
196
|
+
// sibling packages/registry-server before packing, exactly as buildDockerImages
|
|
197
|
+
// does in-monorepo. (This is why npm-consumer-smoke was red — ce-3rs.)
|
|
198
|
+
ensureRegistryServerBundle(join(REPO_ROOT, 'packages', 'e2e'));
|
|
199
|
+
|
|
190
200
|
console.log(`Packing @celilo/* packages → ${destination}`);
|
|
191
201
|
console.log('');
|
|
192
202
|
|