-
Notifications
You must be signed in to change notification settings - Fork 811
[Feature] Add mTLS Support via Cert Manager to RayCluster #4566
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
Changes from all commits
6901038
4d6ef53
65ca629
dede92a
07c32fb
3a2c405
362f25e
f6545fd
5202efe
10e6f00
3c816fb
3d86db8
0b392c4
ea578d6
db8fb75
ac799f1
7a68851
13de8e3
3f7b5e1
d1430f1
45598fa
37c74f9
3811218
4ea07ee
c85e490
6365f45
ad0795d
ab06fb3
fbc9381
b0894c7
bbe71ad
d6a414a
00ed9e8
9cce994
8c85403
836bdc9
af9242f
9cf68a9
bd48b9d
1cd627e
4425b37
16aac73
0c28a2c
be5eed4
2c738ab
e28e809
f894b4d
0e62470
70a421f
d9119fc
92c1dd0
0c45255
6897181
ec7fb4b
b923ca3
d645fd5
68c520f
195335a
a244672
b312cb4
19b5cfd
63a1ff3
b47bb8d
7a6e697
d4d3990
a5b6dcc
6bc438e
e26f84f
e7f3673
81137fa
8859240
942dcf3
f694985
c5bd23e
a8ea8a3
39ec73a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,3 +22,5 @@ featureGates: | |
| enabled: true | ||
| - name: SidecarSubmitterRestart | ||
| enabled: true | ||
| - name: RayClusterMTLS | ||
| enabled: true | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -51,6 +51,12 @@ type RayClusterSpec struct { | |
| // allow DNS egress via Head/Worker EgressRules or the cluster will fail to start. | ||
| // +optional | ||
| NetworkPolicy *NetworkPolicyConfig `json:"networkPolicy,omitempty"` | ||
| // TLSOptions specifies optional TLS encryption settings for the RayCluster. | ||
| // If omitted or Enabled is false, TLS is disabled. When Enabled is true, | ||
| // the operator enables mTLS using cert-manager to provision and manage certificates. | ||
| // Requires the RayClusterMTLS feature gate on the operator. | ||
| // +optional | ||
| TLSOptions *TLSOptions `json:"tlsOptions,omitempty"` | ||
| // HeadGroupSpec is the spec for the head pod | ||
| HeadGroupSpec HeadGroupSpec `json:"headGroupSpec"` | ||
| // RayVersion is used to determine the command for the Kubernetes Job managed by RayJob | ||
|
|
@@ -61,6 +67,18 @@ type RayClusterSpec struct { | |
| WorkerGroupSpecs []WorkerGroupSpec `json:"workerGroupSpecs,omitempty"` | ||
| } | ||
|
|
||
| // TLSOptions configures TLS encryption for the RayCluster. | ||
| // When TLSOptions is nil or Enabled is nil/false, TLS is disabled. | ||
| // When Enabled is true, the operator uses cert-manager to automatically | ||
| // provision a full PKI (self-signed CA, head and worker leaf certificates) | ||
| // and keeps certificates up to date as pod IPs change during autoscaling. | ||
| type TLSOptions struct { | ||
|
Member
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. Are there no cert-manager configs we want to expose through this API?
Contributor
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. For alpha we're intentionally not exposing cert-manager configs. The only field with real user value would be issuerRef (BYOC CA), but that's blocked by per-pod-IP re-issuance until upstream Ray supports hostname-based identity (related Ray issue). At that point the whole SAN-reconcile loop goes away and we can revisit the API design more broadly. WDYT? |
||
| // Enabled controls whether mTLS is active for this RayCluster. | ||
| // Defaults to false when omitted. Set to true to enable mTLS. | ||
| // +optional | ||
| Enabled *bool `json:"enabled,omitempty"` | ||
| } | ||
|
|
||
| // +kubebuilder:validation:Enum=Recreate;None | ||
| type RayClusterUpgradeType string | ||
|
|
||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.