Explain the interpreter webhook comunication channel
Signed-off-by: RainbowMango <qdurenhongcai@gmail.com>
This commit is contained in:
parent
7cea9dd66f
commit
696daab07e
|
@ -17791,7 +17791,7 @@
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"clientConfig": {
|
"clientConfig": {
|
||||||
"description": "ClientConfig defines how to communicate with the hook.",
|
"description": "ClientConfig defines how to communicate with the hook. It supports two mutually exclusive configuration modes:\n\n1. URL - Directly specify the webhook URL with format `scheme://host:port/path`.\n Example: https://webhook.example.com:8443/my-interpreter\n\n2. Service - Reference a Kubernetes Service that exposes the webhook.\n When using Service reference, Karmada resolves the endpoint through following steps:\n a) First attempts to locate the Service in karmada-apiserver\n b) If found, constructs URL based on Service type:\n - ClusterIP/LoadBalancer/NodePort: Uses ClusterIP with port from Service spec\n (Note: Services with ClusterIP \"None\" are rejected), Example:\n `https://\u003ccluster ip\u003e:\u003cport\u003e`\n - ExternalName: Uses external DNS name format: `https://\u003cexternal name\u003e:\u003cport\u003e`\n c) If NOT found in karmada-apiserver, falls back to standard Kubernetes\n service DNS name format: `https://\u003cservice\u003e.\u003cnamespace\u003e.svc:\u003cport\u003e`\n\nNote: When both URL and Service are specified, the Service reference takes precedence\n and the URL configuration will be ignored.",
|
||||||
"default": {},
|
"default": {},
|
||||||
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig"
|
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig"
|
||||||
},
|
},
|
||||||
|
|
|
@ -48,7 +48,26 @@ spec:
|
||||||
as the resources and operations it applies to.
|
as the resources and operations it applies to.
|
||||||
properties:
|
properties:
|
||||||
clientConfig:
|
clientConfig:
|
||||||
description: ClientConfig defines how to communicate with the hook.
|
description: |-
|
||||||
|
ClientConfig defines how to communicate with the hook.
|
||||||
|
It supports two mutually exclusive configuration modes:
|
||||||
|
|
||||||
|
1. URL - Directly specify the webhook URL with format `scheme://host:port/path`.
|
||||||
|
Example: https://webhook.example.com:8443/my-interpreter
|
||||||
|
|
||||||
|
2. Service - Reference a Kubernetes Service that exposes the webhook.
|
||||||
|
When using Service reference, Karmada resolves the endpoint through following steps:
|
||||||
|
a) First attempts to locate the Service in karmada-apiserver
|
||||||
|
b) If found, constructs URL based on Service type:
|
||||||
|
- ClusterIP/LoadBalancer/NodePort: Uses ClusterIP with port from Service spec
|
||||||
|
(Note: Services with ClusterIP "None" are rejected), Example:
|
||||||
|
`https://<cluster ip>:<port>`
|
||||||
|
- ExternalName: Uses external DNS name format: `https://<external name>:<port>`
|
||||||
|
c) If NOT found in karmada-apiserver, falls back to standard Kubernetes
|
||||||
|
service DNS name format: `https://<service>.<namespace>.svc:<port>`
|
||||||
|
|
||||||
|
Note: When both URL and Service are specified, the Service reference takes precedence
|
||||||
|
and the URL configuration will be ignored.
|
||||||
properties:
|
properties:
|
||||||
caBundle:
|
caBundle:
|
||||||
description: |-
|
description: |-
|
||||||
|
|
|
@ -56,6 +56,24 @@ type ResourceInterpreterWebhook struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
|
||||||
// ClientConfig defines how to communicate with the hook.
|
// ClientConfig defines how to communicate with the hook.
|
||||||
|
// It supports two mutually exclusive configuration modes:
|
||||||
|
//
|
||||||
|
// 1. URL - Directly specify the webhook URL with format `scheme://host:port/path`.
|
||||||
|
// Example: https://webhook.example.com:8443/my-interpreter
|
||||||
|
//
|
||||||
|
// 2. Service - Reference a Kubernetes Service that exposes the webhook.
|
||||||
|
// When using Service reference, Karmada resolves the endpoint through following steps:
|
||||||
|
// a) First attempts to locate the Service in karmada-apiserver
|
||||||
|
// b) If found, constructs URL based on Service type:
|
||||||
|
// - ClusterIP/LoadBalancer/NodePort: Uses ClusterIP with port from Service spec
|
||||||
|
// (Note: Services with ClusterIP "None" are rejected), Example:
|
||||||
|
// `https://<cluster ip>:<port>`
|
||||||
|
// - ExternalName: Uses external DNS name format: `https://<external name>:<port>`
|
||||||
|
// c) If NOT found in karmada-apiserver, falls back to standard Kubernetes
|
||||||
|
// service DNS name format: `https://<service>.<namespace>.svc:<port>`
|
||||||
|
//
|
||||||
|
// Note: When both URL and Service are specified, the Service reference takes precedence
|
||||||
|
// and the URL configuration will be ignored.
|
||||||
// +required
|
// +required
|
||||||
ClientConfig admissionregistrationv1.WebhookClientConfig `json:"clientConfig"`
|
ClientConfig admissionregistrationv1.WebhookClientConfig `json:"clientConfig"`
|
||||||
|
|
||||||
|
|
|
@ -2684,7 +2684,7 @@ func schema_pkg_apis_config_v1alpha1_ResourceInterpreterWebhook(ref common.Refer
|
||||||
},
|
},
|
||||||
"clientConfig": {
|
"clientConfig": {
|
||||||
SchemaProps: spec.SchemaProps{
|
SchemaProps: spec.SchemaProps{
|
||||||
Description: "ClientConfig defines how to communicate with the hook.",
|
Description: "ClientConfig defines how to communicate with the hook. It supports two mutually exclusive configuration modes:\n\n1. URL - Directly specify the webhook URL with format `scheme://host:port/path`.\n Example: https://webhook.example.com:8443/my-interpreter\n\n2. Service - Reference a Kubernetes Service that exposes the webhook.\n When using Service reference, Karmada resolves the endpoint through following steps:\n a) First attempts to locate the Service in karmada-apiserver\n b) If found, constructs URL based on Service type:\n - ClusterIP/LoadBalancer/NodePort: Uses ClusterIP with port from Service spec\n (Note: Services with ClusterIP \"None\" are rejected), Example:\n `https://<cluster ip>:<port>`\n - ExternalName: Uses external DNS name format: `https://<external name>:<port>`\n c) If NOT found in karmada-apiserver, falls back to standard Kubernetes\n service DNS name format: `https://<service>.<namespace>.svc:<port>`\n\nNote: When both URL and Service are specified, the Service reference takes precedence\n and the URL configuration will be ignored.",
|
||||||
Default: map[string]interface{}{},
|
Default: map[string]interface{}{},
|
||||||
Ref: ref("k8s.io/api/admissionregistration/v1.WebhookClientConfig"),
|
Ref: ref("k8s.io/api/admissionregistration/v1.WebhookClientConfig"),
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue