Repository navigation
Expand file tree
/
Copy pathCHANGELOG
More file actions
244 lines (193 loc) · 15.5 KB
/
Copy pathCHANGELOG
File metadata and controls
244 lines (193 loc) · 15.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# Changelog
This changelog records significant operator-facing capabilities, lifecycle changes, compatibility fixes, and release engineering updates. Individual commits and maintenance-only changes remain available through the linked comparisons.
## Unreleased
### Added
- Added `hyops show env list` with concise and JSON views of local environment
readiness, state, initialized targets, blueprint references and last activity.
### Changed
- Bound decision approval to a versioned SHA-256 identity of the approval-relevant
dispatch artefact. The approval-only consumer verifies request identity before
applying approval posture, rejects stale or incomplete approval records, and
preserves the approved identity and audit context in `approved-ready` records.
The downstream executor remains dry-run.
### Fixed
- Suppressed Python tracebacks when an operator cancels installation with
`Ctrl-C`; transactional cleanup and exit status 130 are preserved.
## [v0.1.5] - 2026-09-09
### Added
- Added verified same-platform migration intake for existing EVE-NG, GNS3 and
Containerlab labs. Imported bundles are inspected, checksum-verified, bound
to the selected blueprint reference and restored through the existing
lifecycle.
- Added capacity gates for lab capture, migration import and target restore so
insufficient disk space is reported before existing lab data is replaced.
- Added optional, checksummed migration of EVE-NG base images referenced by
captured lab definitions. Licence material remains outside the archive.
- Added independent `--overwrite-images` control for explicit base-image
replacement during migration restore.
- Added environment-managed EVE-NG guest quiescence actions for protected
teardown, operation-specific overrides for migration capture, bounded
QEMU-stop verification, and checksummed archive evidence.
### Changed
- Preferred sparse-aware, parallel level-one compression for remote lab capture
when `pigz` is available, with `gzip -1` as the portable fallback.
- Required an explicit guest-quiesced acknowledgement before EVE-NG QEMU
node-state capture and recorded the selected consistency boundary.
- Made the legacy automatic-QEMU-stop setting inert during protected EVE-NG
teardown so existing environment overlays fail closed without being rewritten.
- Staged migrated EVE-NG images before transactional promotion and rollback.
- Reported migration capture stages, assessed source sizes, transferred bytes,
average rate and elapsed time during long-running archive streams.
- Reported the active archive, image and node-state phase during long lab
restores instead of displaying an unqualified spinner.
- Applied a bounded four-hour execution window to EVE-NG, GNS3 and Containerlab
archive operations instead of the shared one-hour configuration limit.
### Fixed
- Cleared cached Galaxy response metadata during forced targeted collection
refreshes so a republished pinned collection can be installed safely.
- Reported the active archive phase and verified size during protected teardown
instead of leaving one undifferentiated progress spinner.
- Replaced raw SSH timeouts during on-premises blueprint access with bounded,
DHCP-aware operator guidance.
- Applied a bounded, configurable timeout to EVE-NG native configuration
exports so multi-node labs are not limited to 30 seconds.
- Kept downstream preflight active after planned configuration dependencies so
missing required secrets block before execution rather than failing during
deployment.
- Kept multiline vault values within their owning environment key so
`hyops secrets keys` cannot emit value fragments from legacy vault files.
- Removed password-command temporary files from non-default temporary
directories after vault reads and writes.
- Disabled SSH connection multiplexing for GCP IAP configuration runs and
verified passwordless privilege escalation during connectivity preflight.
- Assessed all requested migration streams through one SSH session before
transferring archives.
- Retained the verified migration image companion across later lab archive
generations and rejected unreferenced bases or IOL licence material.
- Surfaced conflicting EVE-NG lab, node-state and image paths with the matching
explicit restore flag instead of a generic configuration failure.
- Reported streamed command timeouts as exit code 124 with the configured limit
instead of exposing the terminating signal as `rc=-9`.
- Limited EVE-NG node-state capture to writable QEMU disks referenced by the
selected lab definitions.
## [v0.1.4] - 2026-08-29
### Added
- Added opt-in, time-bounded GCP lab access sessions with generation-bound
protected release, deterministic warnings, extension, cancellation and
persistent outcomes for EVE-NG, GNS3 and Containerlab.
- Added live EVE-NG and GNS3 console discovery so native VNC, Telnet, SPICE and web-console forwards follow nodes during an access session.
- Added targeted Galaxy collection refresh with `hyops setup galaxy --collection <name>`.
- Added `hyops blueprint init` and `hyops blueprint edit` as the environment-local blueprint workflow. Initialized blueprints are now the default execution source, while `--file` remains an explicit override.
- Added managed workstation-to-device automation access for EVE-NG and GNS3, including target discovery, scoped SSH configuration, inventory output, proxy settings, client commands, and optional local routing.
- Added one-session web access for named or declared device sets, with per-target HTTP or HTTPS settings and loopback-only forwards.
- Added vault-backed EVE-NG IOL and GNS3 IOU licence placement, checksum-verified image registration, and archive exclusion for licence material.
- Added a private GCP Containerlab blueprint that preserves native topology semantics and combines host provisioning, KVM readiness, health verification, cost context, and verified off-host recovery state.
- Added a provider-neutral stop-state verifier for destructive lifecycle decisions.
- Added GNS3 project archive and restoration across blueprint teardown and rebuild.
- Added fixed-resource GCP cost estimates to blueprint lifecycle output.
- Added installable CI candidate artifacts for acceptance testing before release publication.
### Changed
- Applied the controlled keep, archive or destroy decision when GNS3 access closes.
- Pinned `hybridops.app` and `hybridops.helper` to `0.1.10` for the network-lab lifecycle release set.
- Expanded CI coverage across the public CLI surface and every shipped blueprint.
- Aligned source package and runtime version metadata with the `v0.1.4` release line and added regression coverage for installed version reporting.
- Kept lifecycle output independent of the selected execution tool and simplified GCP initialization and vault readiness output.
- Clarified the runtime boundary, research scope, and external technical-review path in the repository documentation.
### Fixed
- Reported GCP zonal capacity failures from streamed provider evidence with a
concise zone-selection recovery command.
- Retried invalid interactive yes/no and exact destroy confirmations without treating a typing error as an operator decision.
- Retained one verified previous EVE-NG or GNS3 lab archive generation when a
new export is promoted.
- Required file-backed EVE-NG and GNS3 licence secrets to be imported rather than generated, and verified installed EVE-NG image counts before reporting readiness.
- Aligned GNS3 image validation with compact archive declarations, optional checksums, secondary QEMU disks, and host-bound IOU licence diagnostics.
- Rendered parent-managed destroy steps as pending rather than failed while the parent step is still running.
- Allowed disposable GNS3 guest operations to be cleared with their parent VM when guest SSH is unavailable during teardown.
- Preserved concise module failure details after a blueprint progress step fails.
- Surfaced EVE-NG IOL licence mismatches with the target hostname and Linux host ID before any image changes.
- Reported the complete configured EVE-NG image set, including operator-supplied IOL images, in blueprint progress output.
- Preserved EVE-NG QEMU node-state evidence across repeated restore and
archive cycles, including archives created before the corrected state marker.
- Normalised pasted interactive responses before evaluating confirmation
prompts and removed elapsed counters from indeterminate archive operations.
- Reported an absent EVE-NG node-state archive as absent rather than as saved.
- Protected Containerlab destroy and rebuild from proceeding without the required recovery result.
- Tightened permissions on existing runtime directories during installation and setup.
- Fixed deletion-only Proxmox VM-set shrink operations and external-replica DMS cleanup.
- Fixed installed pack discovery outside the wrapper environment and corrected `hyops secrets exec` argument routing.
- Bounded the AzureRM provider below the incompatible v5 boundary.
- Created or refreshed Windows launch shortcuts after installation.
## [v0.1.3] - 2026-07-18
### Added
- Added complete private EVE-NG teaching blueprints for GCP and Proxmox, including isolated networking, guest egress, health checks, images, private browser access, and native console access.
- Added provider-neutral GNS3 server, health-check, starter-lab, and managed-image modules, with complete teaching blueprints for GCP and Proxmox.
- Added EVE-NG lab archive, node-state preservation, post-deployment restoration, and archive-aware teardown protection.
- Added blueprint rebuild, resumable and idempotent destroy, retained reusable dependencies, and confirmation for destructive or replacement-prone operations.
- Added cloud-lab access cost visibility and state-backed private access paths.
- Added environment-scoped run records for installation, setup, preflight, module execution, and blueprint operations.
- Added target-oriented setup, `hyops setup galaxy`, interactive GCP project and zone selection, and setup readiness checks.
- Added Windows 11 support through WSL2, a branded Windows installer and launcher, and automatic update of an existing Core installation.
- Added a native macOS package, application launcher, release assets, architecture checks, and installer diagnostics.
- Added controlled Core update checks, supported-release enforcement, and stable cross-platform release downloads.
- Added RKE2 etcd member lifecycle support.
### Changed
- Strengthened blueprint preflight for authentication, billing, required secrets, planned dependencies, execution profiles, and target capacity.
- Added live setup phases, readable blueprint stage summaries, consistent terminal status colours, concise run-record presentation, and clearer archive progress.
- Kept backend implementation commands out of primary CLI help.
- Made forced installation transactional and refreshed Galaxy metadata during forced dependency setup.
- Added module-catalog, CLI-routing, strict-plugin, installer, and release-publication checks.
### Fixed
- Recovered valid local backend state after interrupted writes and guided reruns after interrupted blueprint deployments.
- Added guarded local vault recovery and detected unavailable WSL runtime storage before execution.
- Prevented implicit Proxmox token rotation and made Proxmox SSH onboarding, address detection, and template preflight portable.
- Explained GCP zonal-capacity failures and kept GCP initialization output focused on operator decisions.
- Scoped private-access host trust to the environment and kept archive restore inputs action-specific.
- Corrected Windows shortcut reuse, launcher branding, installer completion, package layout, and bundled licence handling.
- Corrected macOS release checksums and ensured publication checks out the requested tag.
## [v0.1.2] - 2026-04-11
### Added
- Added GCP Linux and Windows desktop blueprints.
- Added a GCP VM firewall-rules module and a Linux desktop XRDP module with browser support.
- Added `hyops blueprint destroy` for reverse-order blueprint teardown.
### Changed
- Expanded the catalogue to 72 modules and 26 blueprints.
- Tightened the Core execution-layer documentation and reference-scenario routing.
### Fixed
- Removed an unnecessary desktop password-library dependency and suppressed an interactive policy prompt during desktop setup.
- Resolved quality failures in the VM firewall and desktop configuration packs.
## [v0.1.1] - 2026-04-04
### Added
- Added a Kubernetes DNS stub-domain module for forwarding selected zones to shared authority.
- Added state-derived VPN prefixes, consumer SNAT contracts, and on-premises SDN host-route handoff.
- Added public-DNS exposure for edge observability and convergence checks for traffic steering.
- Added raw secret output for controlled command composition.
- Added a Git-pinned Ansible collection setup path alongside released Galaxy dependencies.
### Changed
- Converted shipped blueprints into operator scaffolds and removed environment-specific placeholder values and stale product terminology.
- Normalized public messages, examples, module documentation, and repository metadata around the HybridOps runtime boundary.
- Updated collection and Proxmox SDN module pins and moved release publication to the GitHub CLI.
### Fixed
- Hardened kube-dns application, Packer bind-address detection, network convergence, and shared-state input resolution.
- Removed stale installer assets, placeholder control paths, and repository-local Ansible cache state.
## [v0.1.0] - 2026-03-20
### Added
- Published the first HybridOps Core runtime with 70 module contracts and 24 reference blueprints across on-premises, cloud, Kubernetes, networking, database, recovery, image, and local execution surfaces.
- Established versioned module intent, environment policy, implementation-pack resolution, driver dispatch, runtime-root isolation, validation, preflight, and structured run records.
- Added drivers for infrastructure provisioning, system configuration, machine-image construction, inventory integration, and controlled operational commands.
- Added initial Proxmox, GCP, Hetzner, AWS, Azure, Kubernetes, Cloudflare, and local target contracts.
- Added complete reference flows for PostgreSQL HA and cloud recovery, GKE burst capacity, RKE2 workloads, NetBox, EVE-NG, VyOS edge networking, shared DNS authority, WAN extension, and operator runners.
- Added state and recovery controls for PostgreSQL, Cloud SQL, Longhorn, runtime secrets, DNS cutover, and manual decision gates.
- Added shared network decision services, edge observability, Cloudflare traffic steering, and metric-driven burst traffic activation.
- Added secret mapping and synchronization for environment vaults, Google Secret Manager, and Kubernetes secret consumers.
### Changed
- Replaced vendored Ansible collection source with pinned released collections and kept collection implementation outside the Core package.
- Consolidated networking, database, recovery, and validation contracts into reusable public module paths.
### Fixed
- Hardened destroy-time validation, replay safety, validator cleanup, image and template flows, database services, edge networking, and release installation.
- Added shell, Python, YAML, infrastructure, installation, and release quality gates.
[v0.1.5]: https://github.com/hybridops-tech/hybridops-core/compare/v0.1.4...v0.1.5
[v0.1.4]: https://github.com/hybridops-tech/hybridops-core/compare/v0.1.3...v0.1.4
[v0.1.3]: https://github.com/hybridops-tech/hybridops-core/compare/v0.1.2...v0.1.3
[v0.1.2]: https://github.com/hybridops-tech/hybridops-core/compare/v0.1.1...v0.1.2
[v0.1.1]: https://github.com/hybridops-tech/hybridops-core/compare/v0.1.0...v0.1.1
[v0.1.0]: https://github.com/hybridops-tech/hybridops-core/tree/v0.1.0