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

Support additional OIDC configuration with shoot-oidc-service extension #18305

Open
3 tasks
pbochynski opened this issue Oct 16, 2023 · 14 comments
Open
3 tasks
Assignees
Labels
area/cli Related to all activities around CLI area/control-plane Related to all activities around Kyma Control Plane Epic

Comments

@pbochynski
Copy link
Contributor

pbochynski commented Oct 16, 2023

Description
Enable the option to trust the additional identity provider compliant with OpenID. The provider can be registered in the Kyma cluster and kubernetes API server will authenticate tokens that match the provider issuer.
The complete solution should allow to establish the trust during the provisioning so the cluster can be accessed from fully automated processes (without user presence). To accomplish that the following changes are required:

  • enable shoot-oidc-service extension for shoot clusters
  • add possibility to pass the OpenIDConnect resource in the shoot cluster as Kyma instance parameter (KEB)
  • grant permissions to accounts authenticated by new provider by some role and role binding (or use the existing feature of extending administrator list)

Acceptance Criteria

Reasons
Many users request a possibility to deploy software to freshly creaated Kyma clusters in automated way. Changing the default IDP for the cluster is the only solution available for now, but then IDP has to support both human users and service accounts what is usually challenging. With additional OIDC provider it can be used only for system to system authorization and will be much easier to set up.

Links

@pbochynski pbochynski changed the title Support additional OIDC configuration with shoot-oidc-service extension for managed Kyma clusters Support additional OIDC configuration with shoot-oidc-service extension Oct 16, 2023
@maximilianbraun
Copy link

Would love to test it at earliest convinience.

@kyma-bot
Copy link
Contributor

This issue or PR has been automatically marked as stale due to the lack of recent activity.
Thank you for your contributions.

This bot triages issues and PRs according to the following rules:

  • After 60d of inactivity, lifecycle/stale is applied
  • After 7d of inactivity since lifecycle/stale was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Close this issue or PR with /close

If you think that I work incorrectly, kindly raise an issue with the problem.

/lifecycle stale

@kyma-bot kyma-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 16, 2023
@pbochynski pbochynski removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 16, 2023
@kwiatekus kwiatekus self-assigned this Jan 10, 2024
@kwiatekus
Copy link
Contributor

kwiatekus commented Jan 12, 2024

@kwiatekus
Copy link
Contributor

OIDC configuration will be included in the gardener provisioning in q2
kyma-project/infrastructure-manager#381

Copy link

github-actions bot commented May 4, 2024

This issue has been automatically marked as stale due to the lack of recent activity. It will soon be closed if no further activity occurs.
Thank you for your contributions.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 4, 2024
@kwiatekus kwiatekus removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 6, 2024
@tobiscr tobiscr added area/cli Related to all activities around CLI area/control-plane Related to all activities around Kyma Control Plane labels May 22, 2024
@kwiatekus
Copy link
Contributor

kwiatekus commented May 24, 2024

Kyma Infrastructure Manager (KIM) should apply Operator-Facing OIDC separately from User-facing OIDC(s)

separateOIDC drawio

In order to allow this we need to adjust the interfaces:

  1. User -> Kyma Environment Broker (KEB)
  • User should be able to define multiple OIDCs
  • User should be able to define requiedClaims (key-value pairs)
  1. KEB -> KIM
  • If user provides OIDC(s) KEB populates them as additionalOidcConfigs
  • If user provides no OIDC config KIM defaults the additionalOidcConfigs[0] with the default User-facing OIDC config
  • KIM defaults oidcConfig with Operator-facing OIDC
  1. KIM -> Gardener
  • KIM enables shoot-oidc-service extension in shoot CR
  • KIM defines Operator-facing OIDC explicitely in shoot CR
  1. KIM -> Kyma
  • KIM reconciles authentication.gardener.cloud/v1alpha1/OpenIDConnect objects in kyma based on additionalOidcConfigs
  • KIM reconciles the clusterrolebindings based on administrators it got from KEB
  • KIM ensures clusterrole binding for operators

to avoid unwanted impersonations, we should:

  • ensure prefixes in Operator-facing OIDC (for username and groups)
  • document recommendation about prefixes in user facing documentation

@Disper
Copy link
Member

Disper commented May 29, 2024

Regarding migration from existing shoots to Runtime CRs.

  • oidcConfig <- Populate withoidcConfig
  • additionalOidcConfigs <- Populate as the first entry withoidcConfig

@burkardendres
Copy link

Would be great to have this available soon, as a dependency we want to use requires that and also to bring our kya into production it would be kind of a prerequisite.

@tobiscr
Copy link
Contributor

tobiscr commented Sep 9, 2024

To unblock customers who are waiting for the enablement of the OIDC extension in GArdener, we updated the Provisioner last week to activate this extension per default for all new created clusters. So, any new created SKR cluster will have the OIDC extension now enabled and customers can configure their own OIDC provider by creating the corresponding CR in their SKR clusters.

It is planned to start the replacement of the Provisioner with KIM (Kyma Infrasturcture Manager) by end of this month. KIM will also per default enable the OIDC extension for all managed clusters.

@s-u-b-h-a-k-a-r
Copy link

s-u-b-h-a-k-a-r commented Sep 18, 2024

it would be very helpful to have this available soon, as a dependency we want to use requires that and also to bring our kyma into production it would be kind of a prerequisite and this will help us to manage BTP Kyma Workload via Cloud Orchestrator/Crossplane without the need for manual task

@vrenjith
Copy link

It will be super helpful if we have this capability so that we can bootstrap ArgoCD in the provisioned Kyma cluster so that ArgoCD to take over the rest of the deployments that are coming in from the service pipelines.

@ptesny
Copy link

ptesny commented Sep 25, 2024

It will be super helpful if we have this capability so that we can bootstrap ArgoCD in the provisioned Kyma cluster so that ArgoCD to take over the rest of the deployments that are coming in from the service pipelines.

That's sth which is already done via a terraform based automation module: https://github.com/quovadis-btp/btp-automation/tree/main/btp-context/runtime-context
At the end of kyma env provisioning an existing ArgoCD instance is being bootstrapped with the newly created kyma cluster. I also create a dedicated ArgoCD project on-the-fly

I'm trying hard to finalize a public root module which will then allow you to use the above child module. Will keep you posted. Thx

#18666

@abhijith-darshan
Copy link

abhijith-darshan commented Oct 5, 2024

This is great news that shoot-oidc-service extension is available in all newly created kyma clusters. What is the timeline to roll this out to already existing SAP Kyma clusters?

@tobiscr
Copy link
Contributor

tobiscr commented Nov 19, 2024

Sorry for the late reply @abhijith-darshan. We were facing and fixing several unexpected challenges in the new Infrastructure Manager during the last weeks which were again causing delay in our rollout.

Unfortunaltey, we were not able to migrate all productive clusters to the new Kyma Infrastructure Manager yet which is a pre-requisite for releasing the OIDC feature. We are currently finalising the testing phase of KIM and plan to migrate all productive clusters beginning of next year.

Our SRE team will, after KIM was released, migrate all existing clusters to support the new OIDC configuration. @ebensom can provide more details when this migration will happen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/cli Related to all activities around CLI area/control-plane Related to all activities around Kyma Control Plane Epic
Projects
None yet
Development

No branches or pull requests