Skip to content

Harvester integration#180

Merged
git-ival merged 10 commits into
rancher:mainfrom
git-ival:harvester-integration
May 26, 2026
Merged

Harvester integration#180
git-ival merged 10 commits into
rancher:mainfrom
git-ival:harvester-integration

Conversation

@git-ival

@git-ival git-ival commented Apr 23, 2026

Copy link
Copy Markdown
Member

Relies on #178 and #179 in order to pass CI

@git-ival
git-ival force-pushed the harvester-integration branch from 3bd1435 to 70b54dd Compare April 24, 2026 01:05
@rancher-max

Copy link
Copy Markdown
Member

I'm waiting to review this until the other two PRs are merged and this is rebased so that it's cleaner what I'm looking at

git-ival and others added 7 commits May 19, 2026 22:41
  - Add internal/dart/config.go with NodeConfig, ClusterConfig, and provider-specific types
  - Add ClusterTemplate type to Dart struct for batch cluster creation
  - Add yaml struct tags to existing tofu types for YAML serialization
  - Add CustomCluster, Node, MachinePoolConfig types to tofu package
  - Add UpdateDart() and ClusterTemplate helper methods to dart package
  - Ensure custom cluster nodes have public_ip if set in template
  - Fix linter issues
- Add internal/actions/handlestate.go with ClusterStatus struct and Stage enum
- Add SaveClusterState/LoadClusterState for YAML persistence
- Add FindClusterStatus helpers for querying cluster state
- Add internal/actions/utils.go with natural string sorting
- Add internal/actions/wait.go with polling utilities
- Update go.mod with yaml.v2 and k8s.io/apimachinery dependencies
Core features:
- Add internal/actions package with batch runner, cluster operations, state management
- Add ClusterStatus tracking with stage enum (New/Infra/Created/Imported/Provisioned/Registered)
- Add SequencedBatchRunner for concurrent batch processing with sequenced state updates
- Add cluster import, provisioning, and custom cluster registration flows

Type definitions:
- Add internal/dart/config.go with NodeConfig, ClusterConfig, provider-specific types
- Add ClusterTemplate, ClusterBatchSize fields to Dart struct
- Add CustomCluster, Node, MachinePoolConfig types to tofu package
- Add yaml struct tags for YAML serialization

API changes:
- Update tofu.New() to remove context.Context parameter
- Update tofu.Apply/Destroy/PrintVersion to remove context parameter
- Add tofu.ParseOutputs() replacing OutputClusters()
- Add --skip-refresh and --skip-charts CLI flags

Dependencies:
- Add shepherd and rancher/tests dependencies with replace directives
- Update qase client for API compatibility
- Add internal/harvester package for Harvester VM operations
- Support VM creation, deletion, and management via Harvester API
- Add cloud-init configuration support
- Add image and network handling utilities
- Update go.mod with harvester client dependencies
* handle setting correct SANs for rancher-ingress, ensure no overlap with rancher's downstream ingress

* do not install rancher-ingress if there are no applicable SANs

* account for cleaning up or not installing rancher-ingress if it is not actually needed

* resolve copilot feedback
- Add custom_clusters output to AWS and Harvester main modules
- Add ssh tunnel enable/disable flag to node modules
- Update test_environment for node-only creation (custom clusters)
- Update image datasource logic to skip if image_id is provided
- Remove unused node_templates variable from harvester
- Minor formatting and cleanup in rke2/k3s modules
@git-ival
git-ival force-pushed the harvester-integration branch from 6433565 to a19f9a6 Compare May 20, 2026 03:36
@git-ival

Copy link
Copy Markdown
Member Author

@Oats87 I can't request a formal review, but I figured your input would be useful since you've been doing testing in the Harvester env 🫡

@MSpencer87 MSpencer87 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🚀 Will perform further testing on harvester when resources become available, no issues launching on rke2 or k3s!

@git-ival
git-ival merged commit 94f8e68 into rancher:main May 26, 2026
6 checks passed
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.

4 participants