-
Notifications
You must be signed in to change notification settings - Fork 25
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
EP: IPSec Central CA #102
EP: IPSec Central CA #102
Conversation
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
🤖 Created branch: z_pr102/maryamtahhan/feat_central_cert_manager |
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
For extra bonus points, it would be great if this could be replaced with ACM’s certificate signing setup when running on ACM. (I’ve been meaning to look into how that’s used...) |
So the OCM CSR issuing process is described here and implementation (from managed cluster POV) is here and the controller on the hub is here My over simplified understanding there's a certificate controller on the hub managing certificate approvals/issuing/renewals and verifying the CSR requestor. At managed cluster registration time, the agent on the managed cluster generates a CSR on behalf of the cluster towards the controller in the hub. The controller in the Hub approves the managed cluster and issues the relevant secret which is then propagated to the managed cluster as a secret. It also looks like cert manager can be used alongside K8s certificates API as a signer however it is If we are using the K8s certificates API directly with the K8s signer - we would still need a controller on the Broker node that validates/signs the certs... and still need an agent on the clusters to sync the requests to the broker and the results to the GW... All that being said, the discussion comment above and the design in OCM reusing the K8s Certificates API should be possible: This means that on the broker node, submariner needs to:
On the clusters nodes:
Thoughts? |
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
SourceLabelSelector and SourceFieldSelector on the Syncer with labels and annoations could resolve this issue... Thanks @donaldh for the suggestion. |
I was thinking of the CSR approval mechanism used in the OCM Submariner addon; this relies on the OCM addon framework, see https://github.com/open-cluster-management-io/addon-framework/blob/main/pkg/addonmanager/controllers/certificate/csrapprove.go So obviously this can’t be used as-is in Submariner, but I was wondering if there was anything useful to learn from that. Ultimately I don’t think I have anything to add to #102 (comment). Given that Submariner already has syncing mechanisms in place, we might as well use those instead of exposing a new signing service. |
I will have a look. @donaldh also suggested potentially looking at creating intermediate CAs locally --- I will take a look at both and circle back |
I had a look at the addon csr signing controller - it seems to work in a similar way to the central csr signing controller in OCM in that the addon manager is serving as a custom CSR signer controller for renewing CSRs for managed clusters... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, very exciting work! Some small suggestions inline.
e9a3b80
to
da9fa56
Compare
For posterity :) I've updated the EP based on the discussions we had and resolved any open issues. I can no longer implement this EP (due to a shift in priorities), should I close this EP? |
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
da9fa56
to
1430b68
Compare
Signed-off-by: Maryam Tahhan <mtahhan@redhat.com>
530125f
to
58a0849
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has obviously had a lot of thought already put into it; the process described is similar to that used in other projects for similar use-cases, so it is implementable.
I reckon this is safe to merge as-is in “deferred” status.
🤖 Closed branches: [z_pr102/maryamtahhan/feat_central_cert_manager] |
This is a proposal for a Central Certificate Authority that can sign
Certificate Signing Requests for Submariner GWs that can be used
for the IPSec connections instead of the PSK.
Signed-off-by: Maryam Tahhan mtahhan@redhat.com