SovereignCloudStack / SovereignCloudStack/standards

[Feature Request] KaaS - CRUD API for Clusters

Open
#1,264 20 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement KaaS
Dominant language
Python
Stars
47
Forks
38
Avg merge
1d 16h
Merged PRs (30d)
8

Description

Abstract

For a new offering at Cloudogu we have implemented dynamic provisioning of K8s clusters against the APIs of different cloud providers to make good on our promise of vendor independence.

Implementing this per provider is tedious. I think this is where the SCS KaaS standard could shine!
Couldn't there be a standardized API to do this vendor-independently?
For us, as a consumer, this would provide the real value of a sovereign cloud standard: Implement once, support multiple SCS KaaS-compliant providers.

Initial thoughts

I am new to the SCS community and no expert on the provider side, more like an experienced consumer of Kubernetes clusters.
To get the discussion started, I spent some time analyzing the current situation and came up with some questions that I like to hear your thoughts on.

The biggest challenge I see here is different implementations/APIs among the standardized KaaS providers.
Looking at the existing SCS KaaS-certified products from noris, ScaleUp and Syself, I can see three different implementations: Gardener, ClusterAPI, OpenStack.

From a consumer's point of view, it would be great to be able to choose between different clients like Terraform/OpenTofu, CLI, generic HTTP and (depending on the API) Kubernetes CRDs.

I created a summary of what the different implementations offer in this regard:

Implementation Terraform/OpenTofu CLI HTTP CRD
OpenStack openstack openstack openstack API -
CAPI kubectl/Kubernetes kubectl Kubernetes API Cluster
Gardener gardener kubectl / gardenctl Kubernetes API Shoot

Can one of these be chosen as the standard KaaS API (like OpenStack in SCS IaaS)?

I can imagine that it will be a challenge to chose one, especially so because they have different attributes (like Kubernetes-native CRDs) and tools involved and would force providers to build adapters. I don't know if this is realistic.

CAPI and Gardener as Kubernetes-native implementations seem closer to each oter than OpenStack.
With a tool like cluster-api-provider-gardener (CAPGa) (unstable, unfortunately)
would we be able to agree on CAPI as the standard?

For OpenStack-based products it would probably be challenging to support CRDs, right?

So maybe the solution here could be that providers either offer an OpenStack API or one Kubernetes-native API?

Creating a new SCS API would cause a lot of effort for all providers and might hinder adoption, so I don't think this would be wise.

What is the most pragmatic solution here?

Stakeholders

In an initial talk with @depressiveRobot I got the impression that he considers this a sensible enhancement for a future version of SCS KaaS.

First, I would like to add the representatives of SCS-compatible KaaS products to the discussion:

  • noris Sovereign Cloud (nSC): @benedikt-haug
  • ScaleUp Open Cloud: @fzakfeld
  • Syself Autopilot: @janiskemper

In addition, I know that Cloud & Heat are considering a KaaS certification, so @horazont @Felkonsky might be interested in this discussion.

At SCS Summit, @majst01 introduced metal-stack.io. I can imagine metal-stack could also bring a lot of experience into this discussion.

Please add all others that might be interested in joining this effort.

Closing thoughts

I'd be willing to join SIG standardization meetings to discuss in person. Just let me know which meeting will be a good fit.

In addition, I can offer to evaluate any POC/MVP of a standardized SCS KaaS CRUD API with different providers and provide feedback and a real-world use-case.

This is my first issue with SCS. Looking forward to working with you all!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue's comparison of OpenStack, CAPI, and Gardener implementations and the listed SCS KaaS stakeholders. No files, tests, or implementation entry points are identified; done would require agreement on a pragmatic vendor-independent CRUD API approach and its scope for a future KaaS standard.

Written by the indexing model from the issue text.

Assessment

Tech stack
terraform
Domain
api, backend-api-design, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.