Skip to content

Conversation

@IvanOgurchenok
Copy link

@IvanOgurchenok IvanOgurchenok commented Dec 26, 2025

Summary

Major improvements to VM provisioning, cluster creation workflow, and module configuration.


✨ Features

VM Provisioning

  • Cloud-init via Secret — config stored in K8s Secret (bypasses 2048 byte limit)
  • Parallel VM status check — all VMs checked concurrently with progress ⏳ VMs ready: 3/5
  • Data disk support — optional dataDiskSize for additional VirtualDisk
  • TrustIfExists for images — reuse existing ClusterVirtualImages across test runs
  • Kubectl aliasesk=kubectl with completion via /etc/profile.d/

SSH & Bootstrap

  • Bootstrap SSH key — temp key for dhctl, user key for VM connections
  • SSH passphrase caching — avoid repeated prompts

Worker Management

  • Parallel worker bootstrap — concurrent with progress [N/M]
  • Masters sequential — etcd quorum requirement

Configuration

  • SKIP_VIRTUALIZATION_CHECK — env var to skip module readiness check
  • Webhook retry constants — configurable WebhookRetryAttempts=10

🐛 Bug Fixes

  • Webhook retry — fixes "connection refused" on module apply when webhook not ready
  • Hostname check removed — DVP sets hostname correctly from VM name
  • Kernel versions — updated to match actual cloud images

…ith environment variable validation for CLUSTER_CREATE_MODE. Update README with usage instructions and remove obsolete flag handling code.
…use the specified remote port directly. Adjust cluster creation tests to validate the local port is exactly 6445.
…template in images.go; refine cluster_config.yml comments
…r YAML filename and SSH parameters, improving readability and maintainability.
…, introducing new variables for namespace, storage class, and cleanup options. Update related validation logic and adjust cluster creation tests accordingly.
…adding checks in BeforeAll hooks. Update documentation comments for KubeConfigPath and TestClusterCreateMode to indicate test failure conditions if not set.
…tailed descriptions of test types, required environment variables, and instructions for running tests.
…es and finalize sections. Update cluster interface by commenting out unused VirtualizationClient. Correct typo in cluster_config.yml comments for worker nodes configuration.
… for connections through a jump host. Update error messages in environment validation to reflect correct variable names. Improve VM name extraction logic to comply with RFC 1123 rules and add new functions for obtaining setup node and VM IP address. Update cluster configuration in tests to reflect new OS types and improve cleanup logic in test suite.
…U core allocation. Update related YAML parsing and VM creation logic to support this new field. Implement devBranch extraction from bootstrap config and add BootstrapCluster function for cluster initialization. Update test configurations to include coreFraction values and improve logging during cluster bootstrap process.
mrwesadex-flant and others added 18 commits December 19, 2025 12:22
- Add TrustIfExists option for ClusterVirtualImages to reuse existing images
- Add DataDiskSize option for VMs to create additional data disk
- Add SKIP_VIRTUALIZATION_CHECK env to skip virtualization module check
- Cache SSH passphrase after first input to avoid repeated prompts
- Check all VMs in parallel during Step 5.1 instead of sequentially
- Add documentation for new options in config files and README

Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
- Store cloud-init config in Secret (bypass 2048 byte userData limit)
- Use user SSH key for VM connections, bootstrap key only for dhctl upload
- Add VerifyVMConfig to check/fix VM hostname after creation
- Add SecretClient for virtualization API
- Rename secret to e2e-cloudinit-{namespace}-{config} for clarity
- Update README with cloud-init secret documentation

Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
leave a comment about it.

Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
- Add parallel worker bootstrapping with mutex-protected progress output
- Add execWithWebhookRetry with configurable retry constants
- Add kubectl aliases (k=kubectl) to cloud-init via /etc/profile.d/
- Update kernel versions in images.go to match actual cluster values

Signed-off-by: Ivan Ogurchenok <ivan.ogurchenok@flant.com>
Base automatically changed from make-it-working to main January 21, 2026 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants