Skip to content

Commit 6b38748

Browse files
botantler[bot]github-actions[bot]CopilotdevantlerCopilot
authored
Daily Roadmap Progress - Add LoadBalancer Support (#1714) (#2000)
* feat: Add LoadBalancer support with Cloud Provider KIND - Add LoadBalancer enum (Default/Enabled/Disabled) to ClusterSpec - Add ProvidesLoadBalancerByDefault() distribution method - Add CLI field selector for --load-balancer flag - Wire LoadBalancer flag into init and create commands - Add K3d scaffolding for --disable=servicelb flag - Create Cloud Provider KIND installer for Vanilla × Docker - Add LoadBalancer component installation logic - Update ComponentRequirements with NeedsLoadBalancer field Distribution × Provider Support Matrix: - Vanilla (Kind) × Docker: Cloud Provider KIND (when Enabled) - K3s × Docker: ServiceLB (Klipper) by default - Talos × Docker: Future MetalLB support - Talos × Hetzner: Future hcloud-ccm support Related to #1714 * chore: update generated JSON schema * chore: update generated CLI flags docs * Add cloud-provider-kind cleanup and fix linting issues (#2005) * Initial plan * fix: resolve all golangci-lint issues - Add ErrLoadBalancerNotImplemented static error - Fix golines formatting in options.go (struct tag alignment) - Fix golines formatting in components.go (line length) - Fix golines formatting in installer.go (function signature) - Fix lll issue in enums.go (comment line length) Co-authored-by: devantler <[email protected]> * feat: add cloud-provider-kind cleanup on last cluster deletion - Add Uninstall method to CloudProviderKINDInstaller - Add cleanup logic to detect when last kind cluster is deleted - Clean up cloud-provider-kind load balancer containers - Prevents orphaned containers when all kind clusters are removed Co-authored-by: devantler <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: devantler <[email protected]> * chore: apply golangci-lint fixes * test: add LoadBalancer system test matrix coverage (#2009) * Fix missing LoadBalancer field mapping causing --unknown flag name (#2008) * Fix cloud-provider-kind cleanup scope and code duplication (#2011) * [WIP] Add load balancer support to cluster commands (#2012) * chore: apply golangci-lint fixes * Add test coverage and refine cloud-provider-kind cleanup logic (#2018) * Initial plan * Add review feedback improvements: tests, docs, and refactoring - Add comment to detectIsKindCluster() explaining timing requirements - Add comprehensive LoadBalancer enum tests (Set, String, Type, Default, ValidValues) - Add ProvidesLoadBalancerByDefault() tests for all distribution × provider combinations - Create cloudproviderkind installer unit tests following established patterns - Update hasRemainingKindClusters() to accept *cobra.Command and use cmd.Context() - Add hasCloudProviderKindContainers() to check existence before cleanup messages - Update container prefix from "lb-" to "cpk-" for cloud-provider-kind - Clarify Talos × Hetzner LoadBalancer logic (default support via hcloud-ccm) Co-authored-by: devantler <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: devantler <[email protected]> * fix: resolve golangci-lint issues (funlen, varnamelen, golines) (#2019) * chore: apply golangci-lint fixes * test: fix delete command snapshot expectations (#2024) * Initial plan * test: fix delete command snapshot tests Update snapshot expectations to reflect current behavior where cloud-provider-kind cleanup messages are not shown during tests (Docker operations are mocked/skipped in test environment). The cleanup logic is still correct in production - it only shows cleanup messages when: 1. No Kind clusters remain (hasRemainingKindClusters returns false) 2. Cloud-provider-kind containers exist (hasCloudProviderKindContainers returns true) In tests, the Docker client is mocked and returns no containers, so cleanup messages are correctly omitted. Co-authored-by: devantler <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: devantler <[email protected]> * Update pkg/cli/cmd/cluster/delete.go Co-authored-by: Copilot <[email protected]> Signed-off-by: Nikolai Emil Damm <[email protected]> * Update pkg/apis/cluster/v1alpha1/enums_test.go Co-authored-by: Copilot <[email protected]> Signed-off-by: Nikolai Emil Damm <[email protected]> * fix: replace Helm-based cloud-provider-kind installer with Docker container approach (#2026) * Initial plan * fix: use Docker container for cloud-provider-kind instead of Helm Cloud-provider-kind is not distributed as a Helm chart. The correct approach is to run it as a Docker container with access to the Docker socket, connected to the KIND network. This commit: - Rewrites the cloud-provider-kind installer to use Docker API instead of Helm - Creates and manages the cloud-provider-kind container with proper configuration (Docker socket mount, KIND network connection) - Updates tests to use Docker client mocks instead of Helm mocks - Uses the official image: registry.k8s.io/cloud-provider-kind/cloud-controller-manager:latest Fixes the 404 error when trying to fetch non-existent Helm chart from https://kubernetes-sigs.github.io/cloud-provider-kind/index.yaml Co-authored-by: devantler <[email protected]> * Co-authored-by: devantler <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: devantler <[email protected]> * chore: tidy go modules * fix: resolve golangci-lint issues in LoadBalancer implementation (#2028) * Initial plan * fix: resolve all golangci-lint issues in LoadBalancer implementation Co-authored-by: devantler <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: devantler <[email protected]> * chore: apply golangci-lint fixes * Fix LoadBalancer installation to skip unsupported distribution × provider combinations (#2030) * Fix golangci-lint violations (godox, golines) (#2032) * chore: apply golangci-lint fixes * chore: Apply megalinter fixes --------- Signed-off-by: Nikolai Emil Damm <[email protected]> Co-authored-by: GitHub Copilot <github-actions[bot]@users.noreply.github.com> Co-authored-by: botantler[bot] <185060876+botantler[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]> Co-authored-by: devantler <[email protected]> Co-authored-by: Nikolai Emil Damm <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent 58d6817 commit 6b38748

35 files changed

+1360
-392
lines changed

.github/workflows/agentics-maintenance.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#
2-
# ___ _ _
3-
# / _ \ | | (_)
4-
# | |_| | __ _ ___ _ __ | |_ _ ___
2+
# ___ _ _
3+
# / _ \ | | (_)
4+
# | |_| | __ _ ___ _ __ | |_ _ ___
55
# | _ |/ _` |/ _ \ '_ \| __| |/ __|
6-
# | | | | (_| | __/ | | | |_| | (__
6+
# | | | | (_| | __/ | | | |_| | (__
77
# \_| |_/\__, |\___|_| |_|\__|_|\___|
88
# __/ |
9-
# _ _ |___/
9+
# _ _ |___/
1010
# | | | | / _| |
1111
# | | | | ___ _ __ _ __| |_| | _____ ____
1212
# | |/\| |/ _ \ '__| |/ /| _| |/ _ \ \ /\ / / ___|
@@ -21,10 +21,10 @@
2121
#
2222
# Alternative regeneration methods:
2323
# make recompile
24-
#
24+
#
2525
# Or use the gh-aw CLI directly:
2626
# ./gh-aw compile --validate --verbose
27-
#
27+
#
2828
# The workflow is generated when any workflow uses the 'expires' field
2929
# in create-discussions, create-issues, or create-pull-request safe-outputs configuration.
3030
# Schedule frequency is automatically determined by the shortest expiration time.
@@ -33,7 +33,7 @@ name: Agentic Maintenance
3333

3434
on:
3535
schedule:
36-
- cron: "37 0 * * *" # Daily (based on minimum expires: 7 days)
36+
- cron: "37 0 * * *" # Daily (based on minimum expires: 7 days)
3737
workflow_dispatch:
3838

3939
permissions: {}

.github/workflows/audit-workflows.lock.yml

Lines changed: 29 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)