|
13 | 13 | # k9-svc validate container/deploy.k9.ncl |
14 | 14 | # k9-svc deploy container/deploy.k9.ncl --env production |
15 | 15 |
|
16 | | -# The component's pedigree (self-description across five layers) |
17 | | -let component_pedigree = { |
18 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
19 | | - # L1: The Snout β Identity |
20 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
21 | | - metadata = { |
22 | | - name = "cloudguard-cli-deploy", |
23 | | - version = "0.1.0", |
24 | | - breed = "application/vnd.k9+nickel", |
25 | | - magic_number = "K9!", |
26 | | - description = "cloudguard-cli deployment component (Hunt level)", |
27 | | - }, |
28 | | - |
29 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
30 | | - # L2: The Scent β Target Environment |
31 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
32 | | - target = { |
33 | | - os = 'Linux, |
34 | | - is_edge = false, |
35 | | - requires_podman = true, |
36 | | - min_memory_mb = 256, |
37 | | - }, |
38 | | - |
39 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
40 | | - # L3: The Leash β Security |
41 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
42 | | - security = { |
43 | | - trust_level = 'Hunt, |
44 | | - allow_network = true, |
45 | | - allow_filesystem_write = true, |
46 | | - allow_subprocess = true, |
47 | | - # In production, replace with a real Ed25519 signature. |
48 | | - signature = "PLACEHOLDER-SIGNATURE-REQUIRED-FOR-HUNT", |
49 | | - }, |
50 | | - |
51 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
52 | | - # L4: The Gut β Self-Validation |
53 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
54 | | - validation = { |
55 | | - checksum = "sha256:placeholder", |
56 | | - pedigree_version = "1.0.0", |
57 | | - hunt_authorized = false, # Must be set true after handshake |
58 | | - }, |
59 | | - |
60 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
61 | | - # L5: The Muscle β Deployment Recipes |
62 | | - # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
63 | | - recipes = { |
64 | | - install = "just container-build", |
65 | | - validate = "just container-verify", |
66 | | - deploy = "just container-up", |
67 | | - migrate = "just container-build && just container-up", |
68 | | - }, |
69 | | -} in |
70 | | - |
71 | 16 | # Deployment configuration |
72 | 17 | let deployment = { |
73 | 18 | # Target environments (dev / staging / production) |
@@ -144,7 +89,60 @@ echo "K9: Rollback complete." |
144 | 89 |
|
145 | 90 | # Export the component |
146 | 91 | { |
147 | | - pedigree = component_pedigree, |
| 92 | + # The component's pedigree (self-description across five layers) |
| 93 | + pedigree = { |
| 94 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 95 | + # L1: The Snout β Identity |
| 96 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 97 | + metadata = { |
| 98 | + name = "cloudguard-cli-deploy", |
| 99 | + version = "0.1.0", |
| 100 | + breed = "application/vnd.k9+nickel", |
| 101 | + magic_number = "K9!", |
| 102 | + description = "cloudguard-cli deployment component (Hunt level)", |
| 103 | + }, |
| 104 | + |
| 105 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 106 | + # L2: The Scent β Target Environment |
| 107 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 108 | + target = { |
| 109 | + os = 'Linux, |
| 110 | + is_edge = false, |
| 111 | + requires_podman = true, |
| 112 | + min_memory_mb = 256, |
| 113 | + }, |
| 114 | + |
| 115 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 116 | + # L3: The Leash β Security |
| 117 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 118 | + security = { |
| 119 | + trust_level = 'Hunt, |
| 120 | + allow_network = true, |
| 121 | + allow_filesystem_write = true, |
| 122 | + allow_subprocess = true, |
| 123 | + # In production, replace with a real Ed25519 signature. |
| 124 | + signature = "PLACEHOLDER-SIGNATURE-REQUIRED-FOR-HUNT", |
| 125 | + }, |
| 126 | + |
| 127 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 128 | + # L4: The Gut β Self-Validation |
| 129 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 130 | + validation = { |
| 131 | + checksum = "sha256:placeholder", |
| 132 | + pedigree_version = "1.0.0", |
| 133 | + hunt_authorized = false, # Must be set true after handshake |
| 134 | + }, |
| 135 | + |
| 136 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 137 | + # L5: The Muscle β Deployment Recipes |
| 138 | + # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 139 | + recipes = { |
| 140 | + install = "just container-build", |
| 141 | + validate = "just container-verify", |
| 142 | + deploy = "just container-up", |
| 143 | + migrate = "just container-build && just container-up", |
| 144 | + }, |
| 145 | + }, |
148 | 146 | deployment = deployment, |
149 | 147 | scripts = scripts, |
150 | 148 |
|
|
0 commit comments