-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
TrustStore CRD #557
Open
nightkr
wants to merge
85
commits into
main
Choose a base branch
from
feature/truststore-crd
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
TrustStore CRD #557
Changes from all commits
Commits
Show all changes
85 commits
Select commit
Hold shift + click to select a range
f44e0f1
first commit
9ab36c8
first commit
157460f
allow parse not support type
ed6fdd0
allow parse not support type
8762bd0
allow parse not support type
3585bc3
allow parse not support type
4be4e3c
0.1.2
55f4ead
update pbepkcs12
810faa0
update pbepkcs12
49c79c1
sdsi cert
88a4226
0.1.3
e2a7503
fix
hjiayz d750eae
switch to RustCrypto HmacSha1
Keruspe 5ef132e
switch to getrandom
Keruspe 464e982
update RustCrypto deps
Keruspe de4272f
drop unused block-cipher-trait
Keruspe b5e2e50
block-modes: update to 0.5.0
Keruspe 2e8a35a
rustfmt
Keruspe 017b50e
update rustcrypto
Keruspe 6ad0857
Merge pull request #1 from Keruspe/master
f48e223
version 0.2.0
hjiayz 02c5c97
update crypto dependencies
Keruspe e372089
update crypto dependencies
Keruspe f30063c
update yasna
Keruspe 1c6f637
rename to pkcs-12
Keruspe 1d3fbd9
version 0.3.0
Keruspe 5c0018e
require yasna with std feature
Keruspe 885484a
version 0.3.1
Keruspe dc0fad4
add CI
Keruspe 5e3179a
Merge pull request #2 from Keruspe/crypto
hjiayz e11d003
Update Cargo.toml
hjiayz dd06c31
Merge git://github.com/hjiayz/p12
Keruspe 9b6e213
v0.3.2
Keruspe 0888af5
fix fork merge
Keruspe c9d7a8e
version 0.3.3
Keruspe 46812d6
update dependencies
Keruspe c05cf02
v0.4.0
Keruspe 27f3b2e
switch to sha1
Keruspe c8eb0b6
v0.4.1
Keruspe 35102a6
update yasna
Keruspe e5a6535
v0.5.0
Keruspe f83f8bd
apply clippy suggestions
Keruspe f671118
port to cipher 0.4
Keruspe c8e573a
Merge pull request #6 from hjiayz/cipher04
Keruspe 22270e2
edition 2021
Keruspe e5c1353
fix clippy lint
Keruspe df7e97a
v0.6.0
Keruspe 88f34d1
ensure we have at least BS data (empty passwords)
ubamrein 58ff78f
Merge pull request #7 from ubamrein/master
Keruspe 8113ee5
v0.6.1
Keruspe ac90e05
update to cipher 0.4.1
Keruspe 202f08d
v0.6.2
Keruspe 45615bc
update to cipher 0.4.2
jcaesar 0f96bbc
Merge pull request #8 from jcaesar/master
Keruspe 9983420
v0.6.3
Keruspe d6ad9a5
Add TrustStore CRD and controller
nightkr 4c0c1d4
Support custom TrustStore formats
nightkr 03ef7b2
Fix clippy warnings
nightkr a9085d7
Explicitly disallow TrustStore for kerberos backend
nightkr c4e1707
Start sketching out k8s-search support
nightkr 9791bee
Configure watches for the truststore controller
nightkr 26b54eb
Optimistically try to encode truststore data as string
nightkr b3656dd
Clean up error handling
nightkr b569b05
Start factoring out truststore reference watch logic
nightkr d43274f
Factor out TrustStore dependency resolution logic
nightkr 57e3727
Log reconciliation results properly
nightkr 85b3bfc
TrustStore smoke test
nightkr 21fe8ed
Stub out pkcs12 salt for determinism
nightkr fff63d1
Add 'rust/p12/' from commit '9983420fd81ba123ee2c284c8e564734de8b5f00'
nightkr 75bb19f
Move p12 into subtree folder
nightkr 5326498
Factor out the RNG provider from p12 instead of always just stubbing …
nightkr f284c9b
Handle CSI startup errors (again)
nightkr 5092971
Docs
nightkr eac6338
Changelog
nightkr 055c732
Minor cleanup
nightkr 8cd87e4
Use ProductOperatorRun
nightkr 2674b67
Merge branch 'main' into feature/truststore-crd
nightkr 26a60f4
Fixed an import that got missing in the merge conflict
nightkr 1181174
Add CRD docs for TrustStore
nightkr ecd2fd1
Fix pre-commit errors
nightkr fd3ab95
Drop unused hex dependency
nightkr 42d423a
Update Ring for rustsec advisory
nightkr 70a809c
Ignore RUSTSEC-2025-0012 for now
nightkr 0762b44
Fix broken doclinks
nightkr cb9873a
Switch p12 to use the workspace version (to unbreak our PR build script)
nightkr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,3 +17,4 @@ spec: | |
pod: {} | ||
# or... | ||
name: my-namespace | ||
trustStoreConfigMapName: tls-ca # <4> | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
apiVersion: secrets.stackable.tech/v1alpha1 | ||
kind: TrustStore | ||
metadata: | ||
name: truststore-pem # <1> | ||
spec: | ||
secretClassName: tls # <2> | ||
format: tls-pem # <3> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -17,6 +17,7 @@ include::example$secretclass-tls.yaml[] | |||||
<1> Backends are mutually exclusive, only one may be used by each SecretClass | ||||||
<2> Configures and selects the xref:#backend-autotls[] backend | ||||||
<3> Configures and selects the xref:#backend-k8ssearch[] backend | ||||||
<4> Provides a trust root to be requested by xref:truststore.adoc[] | ||||||
|
||||||
[#backend] | ||||||
== Backend | ||||||
|
@@ -28,6 +29,8 @@ Each SecretClass is a associated with a single backend, which dictates the mecha | |||||
|
||||||
*Format*: xref:#format-tls-pem[] | ||||||
|
||||||
*TrustStore*: Yes | ||||||
|
||||||
Issues a TLS certificate signed by the Secret Operator. | ||||||
The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. | ||||||
|
||||||
|
@@ -132,6 +135,8 @@ spec: | |||||
|
||||||
*Format*: xref:#format-tls-pem[] | ||||||
|
||||||
*TrustStore*: No | ||||||
|
||||||
Injects a TLS certificate issued by {cert-manager}[Cert-Manager]. | ||||||
|
||||||
WARNING: This backend is experimental, and subject to change. | ||||||
|
@@ -195,6 +200,8 @@ spec: | |||||
|
||||||
*Format*: xref:#format-kerberos[] | ||||||
|
||||||
*TrustStore*: No | ||||||
|
||||||
Creates a Kerberos keytab file for a selected realm. The Kerberos KDC and administrator credentials must be provided by the administrator. | ||||||
|
||||||
IMPORTANT: Only MIT Kerberos (krb5) and Active Directory are currently supported. | ||||||
|
@@ -350,6 +357,8 @@ spec: | |||||
|
||||||
*Format*: Free-form | ||||||
|
||||||
*TrustStore*: If configured | ||||||
|
||||||
This backend can be used to mount `Secret` across namespaces into pods. The `Secret` object is selected based on two things: | ||||||
|
||||||
1. The xref:scope.adoc[scopes] specified on the `Volume` using the attribute `secrets.stackable.tech/scope`. | ||||||
|
@@ -426,14 +435,16 @@ spec: | |||||
pod: {} | ||||||
# or... | ||||||
name: my-namespace | ||||||
trustStoreConfigMapName: tls-ca # <4> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
---- | ||||||
|
||||||
`k8sSearch`:: Declares that the `k8sSearch` backend is used. | ||||||
`k8sSearch.searchNamespace`:: Configures the namespace searched for `Secret` objects. | ||||||
`k8sSearch.searchNamespace.pod`:: The `Secret` objects are located in the same namespace as the `Pod` object. Should be used | ||||||
`k8sSearch.searchNamespace`:: Configures the namespace searched for Secrets. | ||||||
`k8sSearch.searchNamespace.pod`:: The Secret objects are located in the same namespace as the Pod. Should be used | ||||||
for secrets that are provisioned by the application administrator. | ||||||
`k8sSearch.searchNamespace.name`:: The `Secret` objects are located in a single global namespace. Should be used for secrets | ||||||
`k8sSearch.searchNamespace.name`:: The Secrets are located in a single global namespace. Should be used for secrets | ||||||
that are provisioned by the cluster administrator. | ||||||
`k8sSearch.trustStoreConfigMapName`:: ConfigMap used to provision xref:truststore.adoc[]. | ||||||
|
||||||
==== Format | ||||||
|
||||||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 example is used as introduction to SecretClasses, so I would not show special cases. Using k8sSearch for trust stores is not the main use case. I would leave it out. If not, then I would at least mention that this property is optional.