Documentation ¶
Overview ¶
Package v1alpha1 contains the v1alpha1 implementation of ExtensionConfig.
Index ¶
- Constants
- Variables
- type ClientConfig
- type ExtensionConfig
- func (in *ExtensionConfig) DeepCopy() *ExtensionConfig
- func (in *ExtensionConfig) DeepCopyInto(out *ExtensionConfig)
- func (in *ExtensionConfig) DeepCopyObject() runtime.Object
- func (e *ExtensionConfig) GetConditions() clusterv1.Conditions
- func (e *ExtensionConfig) SetConditions(conditions clusterv1.Conditions)
- type ExtensionConfigList
- type ExtensionConfigSpec
- type ExtensionConfigStatus
- type ExtensionHandler
- type FailurePolicy
- type GroupVersionHook
- type ServiceReference
Constants ¶
const ( // RuntimeExtensionDiscoveredCondition is a condition set on an ExtensionConfig object once it has been discovered by the Runtime SDK client. RuntimeExtensionDiscoveredCondition clusterv1.ConditionType = "Discovered" // DiscoveryFailedReason documents failure of a Discovery call. DiscoveryFailedReason string = "DiscoveryFailed" // InjectCAFromSecretAnnotation is the annotation that specifies that a particular // object wants injection of CAs. It takes the form of a reference to a Secret // as namespace/name. InjectCAFromSecretAnnotation string = "runtime.cluster.x-k8s.io/inject-ca-from-secret" // PendingHooksAnnotation is the annotation used to keep a track of pending runtime hooks. // The annotation will be used to track the intent to call a hook as soon as an operation completes; // the intent will be removed as soon as the hook call completes successfully. PendingHooksAnnotation string = "runtime.cluster.x-k8s.io/pending-hooks" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "runtime.cluster.x-k8s.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ClientConfig ¶
type ClientConfig struct { // URL gives the location of the ExtensionHandler, in standard URL form // (`scheme://host:port/path`). Exactly one of `url` or `service` // must be specified. // // The `host` should not refer to a service running in the cluster; use // the `service` field instead. // // The scheme should be "https"; the URL should begin with "https://". // // A path is optional, and if present may be any string permissible in // a URL. If a path is set it will be used as prefix and the hook-specific // path will be appended. // // Attempting to use a user or basic auth e.g. "user:password@" is not // allowed. Fragments ("#...") and query parameters ("?...") are not // allowed either. // // +optional URL *string `json:"url,omitempty"` // Service is a reference to the Kubernetes service for the ExtensionHandler. // Either `service` or `url` must be specified. // // If the ExtensionHandler is running within a cluster, then you should use `service`. // // +optional Service *ServiceReference `json:"service,omitempty"` // CABundle is a PEM encoded CA bundle which will be used to validate the ExtensionHandler's server certificate. // +optional CABundle []byte `json:"caBundle,omitempty"` }
ClientConfig contains the information to make a client connection with an ExtensionHandler.
func (*ClientConfig) DeepCopy ¶
func (in *ClientConfig) DeepCopy() *ClientConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConfig.
func (*ClientConfig) DeepCopyInto ¶
func (in *ClientConfig) DeepCopyInto(out *ClientConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExtensionConfig ¶
type ExtensionConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // ExtensionConfigSpec is the desired state of the ExtensionConfig Spec ExtensionConfigSpec `json:"spec,omitempty"` // ExtensionConfigStatus is the current state of the ExtensionConfig Status ExtensionConfigStatus `json:"status,omitempty"` }
ExtensionConfig is the Schema for the ExtensionConfig API.
func (*ExtensionConfig) DeepCopy ¶
func (in *ExtensionConfig) DeepCopy() *ExtensionConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionConfig.
func (*ExtensionConfig) DeepCopyInto ¶
func (in *ExtensionConfig) DeepCopyInto(out *ExtensionConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExtensionConfig) DeepCopyObject ¶
func (in *ExtensionConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ExtensionConfig) GetConditions ¶
func (e *ExtensionConfig) GetConditions() clusterv1.Conditions
GetConditions returns the set of conditions for this object.
func (*ExtensionConfig) SetConditions ¶
func (e *ExtensionConfig) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the conditions on this object.
type ExtensionConfigList ¶
type ExtensionConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ExtensionConfig `json:"items"` }
ExtensionConfigList contains a list of ExtensionConfig.
func (*ExtensionConfigList) DeepCopy ¶
func (in *ExtensionConfigList) DeepCopy() *ExtensionConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionConfigList.
func (*ExtensionConfigList) DeepCopyInto ¶
func (in *ExtensionConfigList) DeepCopyInto(out *ExtensionConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExtensionConfigList) DeepCopyObject ¶
func (in *ExtensionConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExtensionConfigSpec ¶
type ExtensionConfigSpec struct { // ClientConfig defines how to communicate with ExtensionHandlers. ClientConfig ClientConfig `json:"clientConfig"` // NamespaceSelector decides whether to call the hook for an object based // on whether the namespace for that object matches the selector. // Default to the empty LabelSelector, which matches everything. // +optional NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"` }
ExtensionConfigSpec defines the desired state of ExtensionConfig.
func (*ExtensionConfigSpec) DeepCopy ¶
func (in *ExtensionConfigSpec) DeepCopy() *ExtensionConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionConfigSpec.
func (*ExtensionConfigSpec) DeepCopyInto ¶
func (in *ExtensionConfigSpec) DeepCopyInto(out *ExtensionConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExtensionConfigStatus ¶
type ExtensionConfigStatus struct { // Handlers defines the current ExtensionHandlers supported by an Extension. // +optional // +listType=map // +listMapKey=name Handlers []ExtensionHandler `json:"handlers,omitempty"` // Conditions define the current service state of the ExtensionConfig. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
ExtensionConfigStatus defines the observed state of ExtensionConfig.
func (*ExtensionConfigStatus) DeepCopy ¶
func (in *ExtensionConfigStatus) DeepCopy() *ExtensionConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionConfigStatus.
func (*ExtensionConfigStatus) DeepCopyInto ¶
func (in *ExtensionConfigStatus) DeepCopyInto(out *ExtensionConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExtensionHandler ¶
type ExtensionHandler struct { // Name is the unique name of the ExtensionHandler. Name string `json:"name"` // RequestHook defines the versioned runtime hook which this ExtensionHandler serves. RequestHook GroupVersionHook `json:"requestHook"` // TimeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. // +optional TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` // FailurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. // Defaults to Fail if not set. // +optional FailurePolicy *FailurePolicy `json:"failurePolicy,omitempty"` }
ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server.
func (*ExtensionHandler) DeepCopy ¶
func (in *ExtensionHandler) DeepCopy() *ExtensionHandler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionHandler.
func (*ExtensionHandler) DeepCopyInto ¶
func (in *ExtensionHandler) DeepCopyInto(out *ExtensionHandler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FailurePolicy ¶
type FailurePolicy string
FailurePolicy specifies how unrecognized errors from the admission endpoint are handled. FailurePolicy helps with extensions not working consistently, e.g. due to an intermittent network issue. The following type of errors are always considered blocking Failures: - Misconfigurations (e.g. incompatible types) - Extension explicitly reports a Status Failure.
const ( // FailurePolicyIgnore means that an error calling the extension is ignored. FailurePolicyIgnore FailurePolicy = "Ignore" // FailurePolicyFail means that an error calling the extension is propagated as an error. FailurePolicyFail FailurePolicy = "Fail" )
type GroupVersionHook ¶
type GroupVersionHook struct { // APIVersion is the Version of the Hook. APIVersion string `json:"apiVersion"` // Hook is the name of the hook. Hook string `json:"hook"` }
GroupVersionHook defines the runtime hook when the ExtensionHandler is called.
func (*GroupVersionHook) DeepCopy ¶
func (in *GroupVersionHook) DeepCopy() *GroupVersionHook
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionHook.
func (*GroupVersionHook) DeepCopyInto ¶
func (in *GroupVersionHook) DeepCopyInto(out *GroupVersionHook)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceReference ¶
type ServiceReference struct { // Namespace is the namespace of the service. Namespace string `json:"namespace"` // Name is the name of the service. Name string `json:"name"` // Path is an optional URL path which will be sent in any request to // this service. If a path is set it will be used as prefix and the hook-specific // path will be appended. // +optional Path *string `json:"path,omitempty"` // Port is the port on the service that's hosting the ExtensionHandler. // Default to 443. // `port` should be a valid port number (1-65535, inclusive). // +optional Port *int32 `json:"port,omitempty"` }
ServiceReference holds a reference to a Kubernetes Service.
func (*ServiceReference) DeepCopy ¶
func (in *ServiceReference) DeepCopy() *ServiceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.
func (*ServiceReference) DeepCopyInto ¶
func (in *ServiceReference) DeepCopyInto(out *ServiceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.