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

WIP: loading certs with tls.crt improvements #51475

Closed
wants to merge 21 commits into from
Closed

Conversation

costinm
Copy link
Contributor

@costinm costinm commented Jun 8, 2024

Please provide a description of this PR:

This is WIP for fixing the tls.crt and adding more info about the chains - to get early feedback and
see if I'm missunderstanding something.

@costinm costinm requested review from a team as code owners June 8, 2024 01:02
@istio-testing istio-testing added do-not-merge/work-in-progress Block merging of a PR because it isn't ready yet. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 8, 2024
@istio-testing istio-testing added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 8, 2024

The code path for file-based certificate loading can also handle multiple roots and changing the root CA. The process is relatively complex - since rotations are not frequent, restarting istiod can be acceptable.

The file path - and the casecrets Secret - should be used with the standard K8S and CertManager naming conventions:
Copy link
Member

Choose a reason for hiding this comment

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

s/casecrets/cacerts


CA has many options, depending on the security requirements and the existing environment of the user. From easiest to most secure:

1. Simplest: use the default istio-ca-secret. Append roots to the root-cert.pem key to support extra roots or for rotations. Doesn't work well with multiple clusters, but best for dev/testing. It is possible to use a tool to patch the root-cert.pem in each cluster with the merged roots - but if you have automation better use (2).
Copy link
Member

Choose a reason for hiding this comment

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

istio-ca-secret is not maintained by user, how can we append extra roots for rotations


## Istiod with external DNS certs

Default is for Istiod to sign its own certificate, but volume mounts are also possible, using istio-tls and
Copy link
Member

Choose a reason for hiding this comment

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

what is istio-tls

@@ -236,6 +236,8 @@ spec:
expirationSeconds: 43200
path: istio-token
# Optional: user-generated root
# TODO: option to remove this mount - and use Secret directly.
Copy link
Member

Choose a reason for hiding this comment

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

+1

@istio-testing istio-testing added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Jun 13, 2024
@istio-testing
Copy link
Collaborator

@costinm: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
gencheck_istio e5f9d20 link true /test gencheck
lint_istio e5f9d20 link true /test lint
release-notes_istio e5f9d20 link true /test release-notes
unit-tests-arm64_istio e5f9d20 link true /test unit-tests-arm64
unit-tests_istio e5f9d20 link true /test unit-tests
integ-security-istiodremote_istio e5f9d20 link true /test integ-security-istiodremote
integ-security_istio e5f9d20 link true /test integ-security
integ-security-multicluster_istio e5f9d20 link true /test integ-security-multicluster

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. I understand the commands that are listed here.

@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Jul 11, 2024
@craigbox craigbox removed the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Jul 11, 2024
@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Jul 12, 2024
@istio-policy-bot
Copy link

🚧 This issue or pull request has been closed due to not having had activity from an Istio team member since 2024-06-11. If you feel this issue or pull request deserves attention, please reopen the issue. Please see this wiki page for more information. Thank you for your contributions.

Created by the issue and PR lifecycle manager.

@istio-policy-bot istio-policy-bot added the lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. label Jul 26, 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 Block merging of a PR because it isn't ready yet. lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants