cluster-api-provider-cloudstack icon indicating copy to clipboard operation
cluster-api-provider-cloudstack copied to clipboard

Reconcile a CAPC cluster to a CKS cluster

Open rohityadavcloud opened this issue 2 years ago • 4 comments

/kind feature

Describe the solution you'd like

CAPC reconciles various resources in CloudStack, we want to see CAPC leverage and reconcile notion of a CAPC k8s cluster to a CKS (unmanaged) cluster.

The CKS cluster resource in CloudStack captures notion of a k8s cluster in CloudStack, and recently a feature improvement made it possible to have notion of unmanaged k8s cluster with https://github.com/apache/cloudstack/pull/7515 with documentation at https://github.com/apache/cloudstack-documentation/pull/315 and API support via go-sdk change https://github.com/apache/cloudstack-go/pull/59. A PR proposed https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/pull/250 which couldn't satisfy review from other stakeholders. With this issue, alternative options and approaches can be discussed or the previous PR reimagined.

As a CAPC user I would want the following:

  • Ability to see my CAPC cluster show up as unmanaged CKS cluster in CloudStack (API and UI)
  • Be able to see usage, of my CAPC cluster via CKS cluster (cpu, memory etc.)
  • As MachineSets are added/removed, the related instances can be added removed in CKS 'unmanaged' cluster
  • In large environment, esp a typical CI/CD use-cases, if as a user I lose/forget my CAPC admin cluster I should be able to manually delete the CAPC cluster resources (namely, VMs and networks)
  • I should be able to do this as a user account type (note: a CloudStack role has a list of allowed/disallowed APIs, however, an account type control ability of an account type to do certain things such as acquire public IP of choice in a given shared/isolated/vpc network etc. needed typically for CAPC cluster)
  • Prefer not to use another tool, than CAPC for reconciliation of a CAPC cluster to a CloudStack Kubernetes Service (CKS) cluster

Brief design doc: (to be expanded by @vishesh92)

rohityadavcloud avatar Sep 04 '23 10:09 rohityadavcloud

Lots of relevant conversation has taken place on https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/pull/250.

chrisdoherty4 avatar Sep 07 '23 12:09 chrisdoherty4

Moving to v0.5.0 since this is a new feature (and requires some more discussion if I recall correctly) and we are only prioritizing vital bugfixes for v0.4.9

g-gaston avatar Nov 01 '23 21:11 g-gaston

@weizhouapache @vishesh92 and I want to revisit this for v0.5.0, by making the integration/reconciliation disabled by default that we may revisit to enable by default in future. Users who want this feature will have to enable it; the related feature is already made into ACS 4.19 now (under RC1/testing/voting now): https://github.com/apache/cloudstack/pull/7515 and https://github.com/apache/cloudstack-documentation/pull/315

We've gathered a lot of support in the CloudStack community esp. during last year's meet-ups and CloudStack Collaboration conference, where users want to use the CKS feature with CAPC as high-level API/UI abstraction for their Kubernetes clusters; having CAPC clusters show us as unmanaged CKS cluster serves a lot of their requirements, with path of having CAPC cluster being orchestrated via CloudStack opening up in future.

rohityadavcloud avatar Jan 03 '24 07:01 rohityadavcloud

@weizhouapache @vishesh92 and I want to revisit this for v0.5.0, by making the integration/reconciliation disabled by default that we may revisit to enable by default in future. Users who want this feature will have to enable it; the related feature is already made into ACS 4.19 now (under RC1/testing/voting now): apache/cloudstack#7515 and apache/cloudstack-documentation#315

We've gathered a lot of support in the CloudStack community esp. during last year's meet-ups and CloudStack Collaboration conference, where users want to use the CKS feature with CAPC as high-level API/UI abstraction for their Kubernetes clusters; having CAPC clusters show us as unmanaged CKS cluster serves a lot of their requirements, with path of having CAPC cluster being orchestrated via CloudStack opening up in future.

That sounds good to me! Thanks y'all for doing all the user research!

To facilitate future reviews, could y'all add this info (opt-in feature) to the issue description?

I would also love to discuss first the high level implementation first (here in the issue is totally fine although if y'all want to write a one pager design doc that's great too), just to avoid churn during PR reviews.

g-gaston avatar Jan 03 '24 11:01 g-gaston

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jun 20 '24 15:06 k8s-triage-robot

/remove-lifecycle stale

g-gaston avatar Jun 20 '24 15:06 g-gaston