Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] - Backend for Cluster Registry #416

Closed
IvoGoman opened this issue Aug 5, 2024 · 2 comments
Closed

[FEAT] - Backend for Cluster Registry #416

IvoGoman opened this issue Aug 5, 2024 · 2 comments
Assignees
Labels

Comments

@IvoGoman
Copy link
Contributor

IvoGoman commented Aug 5, 2024

Priority

(Low) Something is a little off

Description

Greenhouse has an holistic view on all Clusters and the Organisations OIDC Configuration. This information can be used to generate KubeConfigs for users as shown below.

The goal for the Cluster Registry backend is to make the Kubeconfigs available so that they can be consumed by cloudctl.

Example generated kubeconfig.yaml:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data:  <CA>
    server: <K8S API server>
  name: <cluster name>
contexts:
- context:
    cluster: <cluster name>
    user: oidc@<cluster name>
  name: <cluster name>
current-context: <cluster name>
kind: Config
preferences: {}
users:
- name: oidc@<cluster name>
  user:
    auth-provider:
      config:
        client-id: <client id>
        client-secret:  <client secret>
        idp-issuer-url: <idp issuer url>
      name: oidc

The OIDC settings can be consumed from the organization CRD (default).
Optionally, an org-wide alternative clientID, clientSecret should be configurable in case of different IDS applications.

Acceptance Criteria:

  • open-sourcing of Kubeconfig Generator within CloudOperators Organisation
  • integration with Greenhouse as a Core Plugin e.g. Service Proxy, which is available for all Organisations.
  • Introduction of new CRD to store generated KubeConfigs

References

kubeconfig-generator plugin

Reference Issues

No response

@onuryilmaz
Copy link
Contributor

#464 defines CRD to store kubeconfig data as part of Kubernetes API
Next step is creating and additional controller (for watching Cluster resources) by re-using kubeconfig-generator logic

@onuryilmaz
Copy link
Contributor

onuryilmaz commented Sep 5, 2024

controller PR is open: #526

@IvoGoman IvoGoman closed this as completed by moving to Done in Greenhouse Core Roadmap Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

No branches or pull requests

2 participants