Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API. +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=config.karmada.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type DependentObjectReference
- type InterpreterOperation
- type PatchType
- type RequestStatus
- type ResourceInterpreterContext
- type ResourceInterpreterRequest
- type ResourceInterpreterResponse
- type ResourceInterpreterWebhook
- type ResourceInterpreterWebhookConfiguration
- type ResourceInterpreterWebhookConfigurationList
- func (in *ResourceInterpreterWebhookConfigurationList) DeepCopy() *ResourceInterpreterWebhookConfigurationList
- func (in *ResourceInterpreterWebhookConfigurationList) DeepCopyInto(out *ResourceInterpreterWebhookConfigurationList)
- func (in *ResourceInterpreterWebhookConfigurationList) DeepCopyObject() runtime.Object
- type Rule
- type RuleWithOperations
Constants ¶
const ( // ResourceKindResourceInterpreterWebhookConfiguration is kind name of ResourceInterpreterWebhookConfiguration. ResourceKindResourceInterpreterWebhookConfiguration = "ResourceInterpreterWebhookConfiguration" // ResourceSingularResourceInterpreterWebhookConfiguration is singular name of ResourceInterpreterWebhookConfiguration. ResourceSingularResourceInterpreterWebhookConfiguration = "resourceinterpreterwebhookconfiguration" // ResourcePluralResourceInterpreterWebhookConfiguration is plural name of ResourceInterpreterWebhookConfiguration. ResourcePluralResourceInterpreterWebhookConfiguration = "resourceinterpreterwebhookconfigurations" // ResourceNamespaceScopedResourceInterpreterWebhookConfiguration indicates if ResourceInterpreterWebhookConfiguration is NamespaceScoped. ResourceNamespaceScopedResourceInterpreterWebhookConfiguration = false )
const GroupName = "config.karmada.io"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Depreciated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type DependentObjectReference ¶
type DependentObjectReference struct { // APIVersion represents the API version of the referent. // +required APIVersion string `json:"apiVersion"` // Kind represents the Kind of the referent. // +required Kind string `json:"kind"` // Namespace represents the namespace for the referent. // For non-namespace scoped resources(e.g. 'ClusterRole'),do not need specify Namespace, // and for namespace scoped resources, Namespace is required. // If Namespace is not specified, means the resource is non-namespace scoped. // +optional Namespace string `json:"namespace,omitempty"` // Name represents the name of the referent. // +required Name string `json:"name"` }
DependentObjectReference contains enough information to locate the referenced object inside current cluster.
func (*DependentObjectReference) DeepCopy ¶
func (in *DependentObjectReference) DeepCopy() *DependentObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DependentObjectReference.
func (*DependentObjectReference) DeepCopyInto ¶
func (in *DependentObjectReference) DeepCopyInto(out *DependentObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InterpreterOperation ¶
type InterpreterOperation string
InterpreterOperation specifies an operation for a request.
const ( // InterpreterOperationAll indicates math all InterpreterOperation. InterpreterOperationAll InterpreterOperation = "*" // InterpreterOperationInterpretReplica indicates that karmada want to figure out the replica declaration of a specific object. // Only necessary for those resource types that have replica declaration, like Deployment or similar custom resources. InterpreterOperationInterpretReplica InterpreterOperation = "InterpretReplica" // InterpreterOperationReviseReplica indicates that karmada request webhook to modify the replica. InterpreterOperationReviseReplica InterpreterOperation = "ReviseReplica" // InterpreterOperationInterpretStatus indicates that karmada want to figure out how to get the status. // Only necessary for those resource types that define their status in a special path(not '.status'). InterpreterOperationInterpretStatus InterpreterOperation = "InterpretStatus" // InterpreterOperationPrune indicates that karmada want to figure out how to package resource template to Work. InterpreterOperationPrune InterpreterOperation = "Prune" // InterpreterOperationRetain indicates that karmada request webhook to retain the desired resource template. // Only necessary for those resources which specification will be updated by their controllers running in member cluster. InterpreterOperationRetain InterpreterOperation = "Retain" // InterpreterOperationAggregateStatus indicates that karmada want to figure out how to aggregate status to resource template. // Only necessary for those resource types that want to aggregate status to resource template. InterpreterOperationAggregateStatus InterpreterOperation = "AggregateStatus" // InterpreterOperationInterpretHealth indicates that karmada want to figure out the health status of a specific object. // Only necessary for those resource types that have and want to reflect their health status. InterpreterOperationInterpretHealth InterpreterOperation = "InterpretHealth" // InterpreterOperationInterpretDependency indicates that karmada want to figure out the dependencies of a specific object. // Only necessary for those resource types that have dependencies resources and expect the dependencies be propagated // together, like Deployment depends on ConfigMap/Secret. InterpreterOperationInterpretDependency InterpreterOperation = "InterpretDependency" )
type PatchType ¶
type PatchType string
PatchType is the type of patch being used to represent the mutated object
const ( // PatchTypeJSONPatch represents the JSONType. PatchTypeJSONPatch PatchType = "JSONPatch" )
type RequestStatus ¶
type RequestStatus struct { // Message is human-readable description of the status of this operation. // +optional Message string `json:"message,omitempty"` // Code is the HTTP return code of this status. // +optional Code int32 `json:"code,omitempty"` }
RequestStatus holds the status of a request.
func (*RequestStatus) DeepCopy ¶
func (in *RequestStatus) DeepCopy() *RequestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestStatus.
func (*RequestStatus) DeepCopyInto ¶
func (in *RequestStatus) DeepCopyInto(out *RequestStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceInterpreterContext ¶
type ResourceInterpreterContext struct { metav1.TypeMeta `json:",inline"` // Request describes the attributes for the interpreter request. // +optional Request *ResourceInterpreterRequest `json:"request,omitempty"` // Response describes the attributes for the interpreter response. // +optional Response *ResourceInterpreterResponse `json:"response,omitempty"` }
ResourceInterpreterContext describes an interpreter context request and response.
func (*ResourceInterpreterContext) DeepCopy ¶
func (in *ResourceInterpreterContext) DeepCopy() *ResourceInterpreterContext
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterContext.
func (*ResourceInterpreterContext) DeepCopyInto ¶
func (in *ResourceInterpreterContext) DeepCopyInto(out *ResourceInterpreterContext)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceInterpreterContext) DeepCopyObject ¶
func (in *ResourceInterpreterContext) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceInterpreterRequest ¶
type ResourceInterpreterRequest struct { // UID is an identifier for the individual request/response. // The UID is meant to track the round trip (request/response) between the karmada and the WebHook, not the user request. // It is suitable for correlating log entries between the webhook and karmada, for either auditing or debugging. // +required UID types.UID `json:"uid"` // Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale) // +required Kind metav1.GroupVersionKind `json:"kind"` // Name is the name of the object as presented in the request. // +required Name string `json:"name"` // Namespace is the namespace associated with the request (if any). // +optional Namespace string `json:"namespace,omitempty"` // Operation is the operation being performed. // +required Operation InterpreterOperation `json:"operation"` // Object is the object from the incoming request. // +optional Object runtime.RawExtension `json:"object,omitempty"` // ObservedObject is the object observed from the kube-apiserver of member clusters. // Not nil only when InterpreterOperation is InterpreterOperationRetain. // +optional ObservedObject *runtime.RawExtension `json:"observedObject,omitempty"` // DesiredReplicas represents the desired pods number which webhook should revise with. // It'll be set only if InterpreterOperation is InterpreterOperationReviseReplica. // +optional DesiredReplicas *int32 `json:"replicas,omitempty"` // AggregatedStatus represents status list of the resource running in each member cluster. // +optional AggregatedStatus []workv1alpha2.AggregatedStatusItem `json:"aggregatedStatus,omitempty"` }
ResourceInterpreterRequest describes the interpreter.Attributes for the interpreter request.
func (*ResourceInterpreterRequest) DeepCopy ¶
func (in *ResourceInterpreterRequest) DeepCopy() *ResourceInterpreterRequest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterRequest.
func (*ResourceInterpreterRequest) DeepCopyInto ¶
func (in *ResourceInterpreterRequest) DeepCopyInto(out *ResourceInterpreterRequest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceInterpreterResponse ¶
type ResourceInterpreterResponse struct { // UID is an identifier for the individual request/response. // This must be copied over from the corresponding ResourceInterpreterRequest. // +required UID types.UID `json:"uid"` // Successful indicates whether the request be processed successfully. // +required Successful bool `json:"successful"` // Status contains extra details information about why the request not successful. // This filed is not consulted in any way if "Successful" is "true". // +optional Status *RequestStatus `json:"status,omitempty"` // The patch body. We only support "JSONPatch" currently which implements RFC 6902. // +optional Patch []byte `json:"patch,omitempty"` // The type of Patch. We only allow "JSONPatch" currently. // +optional PatchType *PatchType `json:"patchType,omitempty" protobuf:"bytes,5,opt,name=patchType"` // ReplicaRequirements represents the requirements required by each replica. // Required if InterpreterOperation is InterpreterOperationInterpretReplica. // +optional ReplicaRequirements *workv1alpha2.ReplicaRequirements `json:"replicaRequirements,omitempty"` // Replicas represents the number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. // Required if InterpreterOperation is InterpreterOperationInterpretReplica. // +optional Replicas *int32 `json:"replicas,omitempty"` // Dependencies represents the reference of dependencies object. // Required if InterpreterOperation is InterpreterOperationInterpretDependency. // +optional Dependencies []DependentObjectReference `json:"dependencies,omitempty"` // RawStatus represents the referencing object's status. // +optional RawStatus *runtime.RawExtension `json:"rawStatus,omitempty"` // Healthy represents the referencing object's healthy status. // +optional Healthy *bool `json:"healthy,omitempty"` }
ResourceInterpreterResponse describes an interpreter response.
func (*ResourceInterpreterResponse) DeepCopy ¶
func (in *ResourceInterpreterResponse) DeepCopy() *ResourceInterpreterResponse
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterResponse.
func (*ResourceInterpreterResponse) DeepCopyInto ¶
func (in *ResourceInterpreterResponse) DeepCopyInto(out *ResourceInterpreterResponse)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceInterpreterWebhook ¶
type ResourceInterpreterWebhook struct { // Name is the full-qualified name of the webhook. // +required Name string `json:"name"` // ClientConfig defines how to communicate with the hook. // +required ClientConfig admissionregistrationv1.WebhookClientConfig `json:"clientConfig"` // Rules describes what operations on what resources the webhook cares about. // The webhook cares about an operation if it matches any Rule. // +optional Rules []RuleWithOperations `json:"rules,omitempty"` // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, // the webhook call will be ignored or the API call will fail based on the // failure policy. // The timeout value must be between 1 and 30 seconds. // Default to 10 seconds. // +optional TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` // InterpreterContextVersions is an ordered list of preferred `ResourceInterpreterContext` // versions the Webhook expects. Karmada will try to use first version in // the list which it supports. If none of the versions specified in this list // supported by Karmada, validation will fail for this object. // If a persisted webhook configuration specifies allowed versions and does not // include any versions known to the Karmada, calls to the webhook will fail // and be subject to the failure policy. InterpreterContextVersions []string `json:"interpreterContextVersions"` }
ResourceInterpreterWebhook describes the webhook as well as the resources and operations it applies to.
func (*ResourceInterpreterWebhook) DeepCopy ¶
func (in *ResourceInterpreterWebhook) DeepCopy() *ResourceInterpreterWebhook
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterWebhook.
func (*ResourceInterpreterWebhook) DeepCopyInto ¶
func (in *ResourceInterpreterWebhook) DeepCopyInto(out *ResourceInterpreterWebhook)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceInterpreterWebhookConfiguration ¶
type ResourceInterpreterWebhookConfiguration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Webhooks is a list of webhooks and the affected resources and operations. // +required Webhooks []ResourceInterpreterWebhook `json:"webhooks"` }
ResourceInterpreterWebhookConfiguration describes the configuration of webhooks which take the responsibility to tell karmada the details of the resource object, especially for custom resources.
func (*ResourceInterpreterWebhookConfiguration) DeepCopy ¶
func (in *ResourceInterpreterWebhookConfiguration) DeepCopy() *ResourceInterpreterWebhookConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterWebhookConfiguration.
func (*ResourceInterpreterWebhookConfiguration) DeepCopyInto ¶
func (in *ResourceInterpreterWebhookConfiguration) DeepCopyInto(out *ResourceInterpreterWebhookConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceInterpreterWebhookConfiguration) DeepCopyObject ¶
func (in *ResourceInterpreterWebhookConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceInterpreterWebhookConfigurationList ¶
type ResourceInterpreterWebhookConfigurationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` // Items holds a list of ResourceInterpreterWebhookConfiguration. Items []ResourceInterpreterWebhookConfiguration `json:"items"` }
ResourceInterpreterWebhookConfigurationList contains a list of ResourceInterpreterWebhookConfiguration.
func (*ResourceInterpreterWebhookConfigurationList) DeepCopy ¶
func (in *ResourceInterpreterWebhookConfigurationList) DeepCopy() *ResourceInterpreterWebhookConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInterpreterWebhookConfigurationList.
func (*ResourceInterpreterWebhookConfigurationList) DeepCopyInto ¶
func (in *ResourceInterpreterWebhookConfigurationList) DeepCopyInto(out *ResourceInterpreterWebhookConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceInterpreterWebhookConfigurationList) DeepCopyObject ¶
func (in *ResourceInterpreterWebhookConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type Rule ¶
type Rule struct { // APIGroups is the API groups the resources belong to. '*' is all groups. // If '*' is present, the length of the slice must be one. // For example: // ["apps", "batch", "example.io"] means matches 3 groups. // ["*"] means matches all group // // Note: The group cloud be empty, e.g the 'core' group of kubernetes, in that case use [""]. // +required APIGroups []string `json:"apiGroups"` // APIVersions is the API versions the resources belong to. '*' is all versions. // If '*' is present, the length of the slice must be one. // For example: // ["v1alpha1", "v1beta1"] means matches 2 versions. // ["*"] means matches all versions. // +required APIVersions []string `json:"apiVersions"` // Kinds is a list of resources this rule applies to. // If '*' is present, the length of the slice must be one. // For example: // ["Deployment", "Pod"] means matches Deployment and Pod. // ["*"] means apply to all resources. // +required Kinds []string `json:"kinds"` }
Rule is a tuple of APIGroups, APIVersion, and Kinds.
func (*Rule) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.
func (*Rule) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuleWithOperations ¶
type RuleWithOperations struct { // Operations is the operations the hook cares about. // If '*' is present, the length of the slice must be one. // +required Operations []InterpreterOperation `json:"operations"` // Rule is embedded, it describes other criteria of the rule, like // APIGroups, APIVersions, Kinds, etc. Rule `json:",inline"` }
RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.
func (*RuleWithOperations) DeepCopy ¶
func (in *RuleWithOperations) DeepCopy() *RuleWithOperations
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleWithOperations.
func (*RuleWithOperations) DeepCopyInto ¶
func (in *RuleWithOperations) DeepCopyInto(out *RuleWithOperations)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.