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

NE-761: Support for admin configured CA trust bundle in Ingress Operator #1514

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

bharath-b-rh
Copy link
Contributor

PR is an enhancement proposal to add support for admin configured CA trust bundle in Ingress Operator.
Enhancement proposes to have a provision for the OpenShift administrator to configure a CA trust bundle to be used as default destination CA along with OpenShift service CA for verifying service's certificate by the OpenShift router when the created route is having re-encrypt termination type.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Nov 5, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented Nov 5, 2023

@bharath-b-rh: This pull request references NE-761 which is a valid jira issue.

In response to this:

PR is an enhancement proposal to add support for admin configured CA trust bundle in Ingress Operator.
Enhancement proposes to have a provision for the OpenShift administrator to configure a CA trust bundle to be used as default destination CA along with OpenShift service CA for verifying service's certificate by the OpenShift router when the created route is having re-encrypt termination type.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot requested review from alebedev87 and Miciah November 5, 2023 13:02
@lihongan
Copy link

@ShudiLi please also help review when you get a chance. Thanks

@candita
Copy link
Contributor

candita commented Nov 22, 2023

/assign
/assign @Miciah

Copy link
Contributor

@candita candita left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After reading the preliminary portion, I have a few questions. After you address those questions, I will take a look at the changes, and the rest of the document.

enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
Copy link
Contributor

openshift-ci bot commented Nov 23, 2023

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from candita. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@bharath-b-rh
Copy link
Contributor Author

@candita Thank you for the review!

@bharath-b-rh bharath-b-rh force-pushed the cfe-974 branch 2 times, most recently from d5a933c to 88bc293 Compare December 1, 2023 10:21
Copy link
Contributor

@Miciah Miciah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the overall design. Key points in my review:

  • The name admin-ca-bundle doesn't provide any hint that the ConfigMap is related to the router.
  • I'd like a better understanding of what could happen if the cluster-admin provided an invalid CA certificate.
  • Some of the later sections in the EP need more details.
  • We need clarity around the behavior with respect to multiple IngressControllers. Candace and I came away with different understandings of what you are proposing, so some clarification is needed.

Other than that, my comments are mostly small wording suggestions.

enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved
enhancements/ingress/admin-configured-ca-bundle.md Outdated Show resolved Hide resolved

#### Support Procedures

N/A.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some ideas:

  • If the route isn't working, check router logs for errors from HAProxy.
  • Check the DEFAULT_DESTINATION_CA_PATH environment variable.
  • Verify that the CA bundle has the expected certificate using cat "$DEFAULT_DESTINATION_CA_PATH" or openssl x509 -noout -text -in "$DEFAULT_DESTINATION_CA_PATH".
  • Curl the backend server from the router pod using curl --cacert "$DEFAULT_DESTINATION_CA_PATH" https://<pod IP address> or whatever.
  • If all else fails and the router is broken, undo the config using oc -n openshift-config delete configmaps/admin-ca-bundle.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

section updated.


## Alternatives

N/A.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The discussion on the RFE includes a suggestion to make the router trust the CA specified in the cluster proxy config's trustedCA field. This suggestion was rejected because we don't want to conflate chains of trust. That's the kind of thing I expect would be mentioned in the EP as an alternative that was considered and rejected.

Other alternatives could be to tell people just to set destinationCACertificate or to use cert-manager, or let the cluster-admin replace the service CA. The EP should explain why these alternatives are impractical.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

section updated.

Comment on lines 46 to 48
simpler alternative: a feature in which an administrator could define a CA bundle for verifying
certificates from a ConfigMap consisting of the list of CA certificates, associated OpenShift
Ingress Controller, and trusted OpenShift CA.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example ConfigMap doesn't appear to specify an IngressController, so I don't know what you mean by "a ConfigMap consisting of the list of CA certificates, associated OpenShift Ingress Controller, [...]". The current design appears to allow the cluster-admin to specify only a single a trust bundle that applies to all IngressControllers; am I right?

To be clear, I like the current design; I just find this sentence confusing.

(One thing I like about the design proposed in this EP is that it leaves open the possibility of adding a field in the IngressController API to specify the default destination CA trust bundle. This field's default value could be "admin-ca-bundle" (or whatever name we ultimately use in this EP) for backwards-compatibility.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sentences have got overlapped when I was apply the changes, updated it.

@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 15, 2024
@bharath-b-rh
Copy link
Contributor Author

/remove-lifecycle stale

@openshift-ci openshift-ci bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 15, 2024
@bharath-b-rh bharath-b-rh marked this pull request as draft August 7, 2024 13:47
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Aug 7, 2024
@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 5, 2024
@openshift-bot
Copy link

Stale enhancement proposals rot after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Rotten proposals close after an additional 7d of inactivity.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 12, 2024
@openshift-bot
Copy link

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

Copy link
Contributor

openshift-ci bot commented Sep 20, 2024

@openshift-bot: Closed this PR.

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci openshift-ci bot closed this Sep 20, 2024
@bharath-b-rh
Copy link
Contributor Author

/reopen
/remove-lifecycle rotten
/lifecycle frozen

@openshift-ci openshift-ci bot reopened this Oct 18, 2024
Copy link
Contributor

openshift-ci bot commented Oct 18, 2024

@bharath-b-rh: Reopened this PR.

In response to this:

/reopen
/remove-lifecycle rotten
/lifecycle frozen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 18, 2024

@bharath-b-rh: This pull request references NE-761 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.18.0" version, but no target version was set.

In response to this:

PR is an enhancement proposal to add support for admin configured CA trust bundle in Ingress Operator.
Enhancement proposes to have a provision for the OpenShift administrator to configure a CA trust bundle to be used as default destination CA along with OpenShift service CA for verifying service's certificate by the OpenShift router when the created route is having re-encrypt termination type.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Oct 18, 2024
Copy link
Contributor

openshift-ci bot commented Oct 18, 2024

@bharath-b-rh: The lifecycle/frozen label cannot be applied to Pull Requests.

In response to this:

/reopen
/remove-lifecycle rotten
/lifecycle frozen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 15, 2024
@openshift-bot
Copy link

Stale enhancement proposals rot after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Rotten proposals close after an additional 7d of inactivity.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Nov 23, 2024
@bharath-b-rh
Copy link
Contributor Author

/remove-lifecycle stale

@bharath-b-rh
Copy link
Contributor Author

/remove-lifecycle rotten

@openshift-ci openshift-ci bot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Nov 25, 2024
@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants