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

update v1.13 reference docs #802

Merged
merged 1 commit into from
Mar 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/reference/components/karmada-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ karmada-agent [flags]
Failover=true|false (BETA - default=false)
GracefulEviction=true|false (BETA - default=true)
MultiClusterService=true|false (ALPHA - default=false)
PriorityBasedScheduling=true|false (ALPHA - default=false)
PropagateDeps=true|false (BETA - default=true)
PropagationPolicyPreemption=true|false (ALPHA - default=false)
ResourceQuotaEstimate=true|false (ALPHA - default=false)
Expand Down
1 change: 1 addition & 0 deletions docs/reference/components/karmada-aggregated-apiserver.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ karmada-aggregated-apiserver [flags]
InPlacePodVerticalScaling=true|false (ALPHA - default=false)
MultiClusterService=true|false (ALPHA - default=false)
OpenAPIEnums=true|false (BETA - default=true)
PriorityBasedScheduling=true|false (ALPHA - default=false)
PropagateDeps=true|false (BETA - default=true)
PropagationPolicyPreemption=true|false (ALPHA - default=false)
ResilientWatchCacheInitialization=true|false (BETA - default=true)
Expand Down
1 change: 1 addition & 0 deletions docs/reference/components/karmada-controller-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ karmada-controller-manager [flags]
Failover=true|false (BETA - default=false)
GracefulEviction=true|false (BETA - default=true)
MultiClusterService=true|false (ALPHA - default=false)
PriorityBasedScheduling=true|false (ALPHA - default=false)
PropagateDeps=true|false (BETA - default=true)
PropagationPolicyPreemption=true|false (ALPHA - default=false)
ResourceQuotaEstimate=true|false (ALPHA - default=false)
Expand Down
1 change: 1 addition & 0 deletions docs/reference/components/karmada-metrics-adapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ karmada-metrics-adapter [flags]
--log_file string If non-empty, use this log file (no effect when -logtostderr=true)
--log_file_max_size uint Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
--logtostderr log to standard error instead of files (default true)
--metrics-bind-address string The TCP address that the server should bind to for serving prometheus metrics(e.g. 127.0.0.1:8080, :8080). It can be set to "0" to disable the metrics serving. Defaults to 0.0.0.0:8080. (default ":8080")
--one_output If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
--permit-address-sharing If true, SO_REUSEADDR will be used when binding the port. This allows binding to wildcard IPs like 0.0.0.0 and specific IPs in parallel, and it avoids waiting for the kernel to release sockets in TIME_WAIT state. [default=false]
--permit-port-sharing If true, SO_REUSEPORT will be used when binding the port, which allows more than one instance to bind on the same address and port. [default=false]
Expand Down
1 change: 1 addition & 0 deletions docs/reference/components/karmada-scheduler-estimator.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ karmada-scheduler-estimator [flags]
Failover=true|false (BETA - default=false)
GracefulEviction=true|false (BETA - default=true)
MultiClusterService=true|false (ALPHA - default=false)
PriorityBasedScheduling=true|false (ALPHA - default=false)
PropagateDeps=true|false (BETA - default=true)
PropagationPolicyPreemption=true|false (ALPHA - default=false)
ResourceQuotaEstimate=true|false (ALPHA - default=false)
Expand Down
1 change: 1 addition & 0 deletions docs/reference/components/karmada-scheduler.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ karmada-scheduler [flags]
Failover=true|false (BETA - default=false)
GracefulEviction=true|false (BETA - default=true)
MultiClusterService=true|false (ALPHA - default=false)
PriorityBasedScheduling=true|false (ALPHA - default=false)
PropagateDeps=true|false (BETA - default=true)
PropagationPolicyPreemption=true|false (ALPHA - default=false)
ResourceQuotaEstimate=true|false (ALPHA - default=false)
Expand Down
9 changes: 9 additions & 0 deletions docs/reference/components/karmada-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,20 @@ karmada-search [flags]
kube:ConcurrentWatchObjectDecode=true|false (BETA - default=false)
kube:ConsistentListFromCache=true|false (BETA - default=true)
kube:CoordinatedLeaderElection=true|false (ALPHA - default=false)
kube:CustomizedClusterResourceModeling=true|false (BETA - default=true)
kube:Failover=true|false (BETA - default=false)
kube:GracefulEviction=true|false (BETA - default=true)
kube:InPlacePodVerticalScaling=true|false (ALPHA - default=false)
kube:MultiClusterService=true|false (ALPHA - default=false)
kube:OpenAPIEnums=true|false (BETA - default=true)
kube:PriorityBasedScheduling=true|false (ALPHA - default=false)
kube:PropagateDeps=true|false (BETA - default=true)
kube:PropagationPolicyPreemption=true|false (ALPHA - default=false)
kube:ResilientWatchCacheInitialization=true|false (BETA - default=true)
kube:ResourceQuotaEstimate=true|false (ALPHA - default=false)
kube:RetryGenerateName=true|false (BETA - default=true)
kube:SeparateCacheWatchRPC=true|false (BETA - default=true)
kube:StatefulFailoverInjection=true|false (ALPHA - default=false)
kube:StorageVersionAPI=true|false (ALPHA - default=false)
kube:StorageVersionHash=true|false (BETA - default=true)
kube:StrictCostEnforcementForVAP=true|false (BETA - default=false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ api_metadata:
content_type: "api_reference"
description: ""
title: "Common Parameters"
weight: 12
weight: 11
auto_generated: true
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,24 @@ ResourceInterpreterWebhookConfiguration describes the configuration of webhooks

- **webhooks.clientConfig** (WebhookClientConfig), required

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.

<a name="WebhookClientConfig"></a>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,36 @@ ClusterPropagationPolicy represents the cluster-wide policy that propagates a gr

Defaults to false.

- **spec.schedulePriority** (SchedulePriority)

SchedulePriority defines how Karmada should resolve the priority and preemption policy for workload scheduling.

This setting is useful for controlling the scheduling behavior of offline workloads. By setting a higher or lower priority, users can control which workloads are scheduled first. Additionally, it allows specifying a preemption policy where higher-priority workloads can preempt lower-priority ones in scenarios of resource contention.

Note: This feature is currently in the alpha stage. The priority-based scheduling functionality is controlled by the PriorityBasedScheduling feature gate, and preemption is controlled by the PriorityBasedPreemptiveScheduling feature gate. Currently, only priority-based scheduling is supported. Preemption functionality is not yet available and will be introduced in future releases as the feature matures.

<a name="SchedulePriority"></a>

*SchedulePriority defines how Karmada should resolve the priority and preemption policy for workload scheduling.*

- **spec.schedulePriority.priorityClassName** (string), required

PriorityClassName specifies which PriorityClass to use. Its behavior depends on PriorityClassSource:

Behavior of PriorityClassName:

For KubePriorityClass: - When specified: Uses the named Kubernetes PriorityClass. - When empty: Uses the cluster's default PriorityClass (i.e., the PriorityClass marked as the global default in the cluster). - If neither exists: Sets priority=0 and preemptionPolicy=Never.

For PodPriorityClass: - Uses PriorityClassName from the PodTemplate. - If the specified PriorityClass is not found, falls back to the cluster's default PriorityClass
(i.e., the PriorityClass marked as the global default in the cluster).
- If no valid PriorityClass is found: Sets priority=0 and preemptionPolicy=Never. - Not yet implemented.

For FederatedPriorityClass: - Not yet implemented.

- **spec.schedulePriority.priorityClassSource** (string), required

PriorityClassSource specifies where Karmada should look for the PriorityClass definition. Available options: - KubePriorityClass: Uses Kubernetes PriorityClass (scheduling.k8s.io/v1) - PodPriorityClass: Uses PriorityClassName from PodTemplate: PodSpec.PriorityClassName (not yet implemented) - FederatedPriorityClass: Uses Karmada FederatedPriorityClass (not yet implemented)

- **spec.schedulerName** (string)

SchedulerName represents which scheduler to proceed the scheduling. If specified, the policy will be dispatched by specified scheduler. If not specified, the policy will be dispatched by default scheduler.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,36 @@ PropagationPolicy represents the policy that propagates a group of resources to

Defaults to false.

- **spec.schedulePriority** (SchedulePriority)

SchedulePriority defines how Karmada should resolve the priority and preemption policy for workload scheduling.

This setting is useful for controlling the scheduling behavior of offline workloads. By setting a higher or lower priority, users can control which workloads are scheduled first. Additionally, it allows specifying a preemption policy where higher-priority workloads can preempt lower-priority ones in scenarios of resource contention.

Note: This feature is currently in the alpha stage. The priority-based scheduling functionality is controlled by the PriorityBasedScheduling feature gate, and preemption is controlled by the PriorityBasedPreemptiveScheduling feature gate. Currently, only priority-based scheduling is supported. Preemption functionality is not yet available and will be introduced in future releases as the feature matures.

<a name="SchedulePriority"></a>

*SchedulePriority defines how Karmada should resolve the priority and preemption policy for workload scheduling.*

- **spec.schedulePriority.priorityClassName** (string), required

PriorityClassName specifies which PriorityClass to use. Its behavior depends on PriorityClassSource:

Behavior of PriorityClassName:

For KubePriorityClass: - When specified: Uses the named Kubernetes PriorityClass. - When empty: Uses the cluster's default PriorityClass (i.e., the PriorityClass marked as the global default in the cluster). - If neither exists: Sets priority=0 and preemptionPolicy=Never.

For PodPriorityClass: - Uses PriorityClassName from the PodTemplate. - If the specified PriorityClass is not found, falls back to the cluster's default PriorityClass
(i.e., the PriorityClass marked as the global default in the cluster).
- If no valid PriorityClass is found: Sets priority=0 and preemptionPolicy=Never. - Not yet implemented.

For FederatedPriorityClass: - Not yet implemented.

- **spec.schedulePriority.priorityClassSource** (string), required

PriorityClassSource specifies where Karmada should look for the PriorityClass definition. Available options: - KubePriorityClass: Uses Kubernetes PriorityClass (scheduling.k8s.io/v1) - PodPriorityClass: Uses PriorityClassName from PodTemplate: PodSpec.PriorityClassName (not yet implemented) - FederatedPriorityClass: Uses Karmada FederatedPriorityClass (not yet implemented)

- **spec.schedulerName** (string)

SchedulerName represents which scheduler to proceed the scheduling. If specified, the policy will be dispatched by specified scheduler. If not specified, the policy will be dispatched by default scheduler.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,18 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

*Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.*

- **schedulePriority** (SchedulePriority)

SchedulePriority represents the scheduling priority assigned to workloads.

<a name="SchedulePriority"></a>

*SchedulePriority represents the scheduling priority assigned to workloads.*

- **schedulePriority.priority** (int32)

Priority specifies the scheduling priority for the binding. Higher values indicate a higher priority. If not explicitly set, the default value is 0.

- **schedulerName** (string)

SchedulerName represents which scheduler to proceed the scheduling. It inherits directly from the associated PropagationPolicy(or ClusterPropagationPolicy).
Expand All @@ -618,7 +630,7 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

<a name="Suspension"></a>

*Suspension defines the policy for suspending different aspects of propagation.*
*Suspension defines the policy for suspending dispatching and scheduling.*

- **suspension.dispatching** (boolean)

Expand All @@ -636,6 +648,10 @@ ResourceBindingSpec represents the expectation of ResourceBinding.

ClusterNames is the list of clusters to be selected.

- **suspension.scheduling** (boolean)

Scheduling controls whether scheduling should be suspended, the scheduler will pause scheduling and not process resource binding when the value is true and resume scheduling when it's false or nil. This is designed for third-party systems to temporarily pause the scheduling of applications, which enabling manage resource allocation, prioritize critical workloads, etc. It is expected that third-party systems use an admission webhook to suspend scheduling at the time of ResourceBinding creation. Once a ResourceBinding has been scheduled, it cannot be paused afterward, as it may lead to ineffective suspension.

## ResourceBindingStatus

ResourceBindingStatus represents the overall status of the strategy as well as the referenced resources.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ karmadactl [flags]
* [karmadactl api-versions](karmadactl_api-versions.md) - Print the supported API versions on the server, in the form of "group/version"
* [karmadactl apply](karmadactl_apply.md) - Apply a configuration to a resource by file name or stdin and propagate them into member clusters
* [karmadactl attach](karmadactl_attach.md) - Attach to a running container
* [karmadactl completion](karmadactl_completion.md) - Output shell completion code for the specified shell (bash, zsh)
* [karmadactl completion](karmadactl_completion.md) - Output shell completion code for the specified shell (bash, zsh, fish)
* [karmadactl cordon](karmadactl_cordon.md) - Mark cluster as unschedulable
* [karmadactl create](karmadactl_create.md) - Create a resource from a file or from stdin
* [karmadactl deinit](karmadactl_deinit.md) - Remove the Karmada control plane from the Kubernetes cluster.
Expand Down
Loading