[WIP] Implement cluster registration workflows via Shepherd/golang#155
Open
git-ival wants to merge 55 commits intorancher:mainfrom
Open
[WIP] Implement cluster registration workflows via Shepherd/golang#155git-ival wants to merge 55 commits intorancher:mainfrom
git-ival wants to merge 55 commits intorancher:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR implements cluster registration workflows via Shepherd/golang, enabling batch processing of imported, provisioned, and custom Kubernetes clusters with idempotent state management.
Key changes:
- Introduces custom cluster support with machine pool configurations and validation
- Implements concurrent batch runner with state persistence for cluster registration
- Removes
context.Contextparameters from tofu functions, adds state management infrastructure
Reviewed changes
Copilot reviewed 44 out of 45 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tofu/modules/harvester/node/outputs.tf | Renamed output from public_address to public_ip for consistency |
| tofu/modules/generic/test_environment/variables.tf | Added custom cluster support with machine pools and validations |
| internal/tofu/tofu.go | Refactored to remove context parameters, added custom cluster types and helper functions |
| internal/actions/batchrunner.go | New concurrent batch runner for cluster operations with state management |
| internal/actions/rancher.go | New cluster registration workflows (import, provision, register custom) |
| internal/actions/handlestate.go | New state persistence for cluster registration idempotency |
| internal/harvester/* | New package ported from harvester-cli for VM management |
| internal/dart/recipe.go | Extended with cluster template and config types |
| cmd/dartboard/subcommands/* | Updated CLI to support new workflows with skip flags |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…dling logic within dartboard, add kubeconfig parsing support, add shepherd as dependency
…g Harvester VMs to provision clusters
… pointer issues on append, add concurrency handling to speed up batch processing, add yaml struct tags
… add sequenced updates per-batch
…SequencedBatchRunner struct to handle all the logic
…enable handling of both imported and provisioned cluster flows
…creating/operating on harvester VMs, misc
…ng logic, start using logrus instead of fmt for debug logs
…ll, add tofu.Output() func
…s being empty list
cd141b7 to
f2723f8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Features:
downstream_cluster_templatesto trigger import cluster registration workflow in-order based on nameClusterStatusstruct that contains basic state information for each Cluster that has been sent to the cluster registration batch runnerCloses #72