Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the networking.olm v1 API group +kubebuilder:object:generate=true +groupName=networking.olm.openshift.io
Index ¶
- Variables
- type AWSAddon
- type AWSLoadBalancerController
- func (in *AWSLoadBalancerController) DeepCopy() *AWSLoadBalancerController
- func (in *AWSLoadBalancerController) DeepCopyInto(out *AWSLoadBalancerController)
- func (in *AWSLoadBalancerController) DeepCopyObject() runtime.Object
- func (*AWSLoadBalancerController) Hub()
- func (r *AWSLoadBalancerController) SetupWebhookWithManager(mgr ctrl.Manager) error
- type AWSLoadBalancerControllerList
- type AWSLoadBalancerControllerSpec
- type AWSLoadBalancerControllerStatus
- type AWSLoadBalancerControllerStatusSubnets
- type AWSLoadBalancerCredentialsRequestConfig
- type AWSLoadBalancerDeploymentConfig
- type AWSResourceTag
- type SubnetTaggingPolicy
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "networking.olm.openshift.io", Version: "v1"} // 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 AWSLoadBalancerController ¶
type AWSLoadBalancerController struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!has(self.credentials) || !has(self.credentialsRequestConfig)", message="credentialsRequestConfig has no effect if credentials is provided" Spec AWSLoadBalancerControllerSpec `json:"spec,omitempty"` Status AWSLoadBalancerControllerStatus `json:"status,omitempty"` }
AWSLoadBalancerController is the Schema for the awsloadbalancercontrollers API.
func (*AWSLoadBalancerController) DeepCopy ¶
func (in *AWSLoadBalancerController) DeepCopy() *AWSLoadBalancerController
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerController.
func (*AWSLoadBalancerController) DeepCopyInto ¶
func (in *AWSLoadBalancerController) DeepCopyInto(out *AWSLoadBalancerController)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSLoadBalancerController) DeepCopyObject ¶
func (in *AWSLoadBalancerController) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AWSLoadBalancerController) Hub ¶
func (*AWSLoadBalancerController) Hub()
Hub marks this version as the conversion hub.
func (*AWSLoadBalancerController) SetupWebhookWithManager ¶
func (r *AWSLoadBalancerController) SetupWebhookWithManager(mgr ctrl.Manager) error
type AWSLoadBalancerControllerList ¶
type AWSLoadBalancerControllerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AWSLoadBalancerController `json:"items"` }
AWSLoadBalancerControllerList contains a list of AWSLoadBalancerController.
func (*AWSLoadBalancerControllerList) DeepCopy ¶
func (in *AWSLoadBalancerControllerList) DeepCopy() *AWSLoadBalancerControllerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerControllerList.
func (*AWSLoadBalancerControllerList) DeepCopyInto ¶
func (in *AWSLoadBalancerControllerList) DeepCopyInto(out *AWSLoadBalancerControllerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSLoadBalancerControllerList) DeepCopyObject ¶
func (in *AWSLoadBalancerControllerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AWSLoadBalancerControllerSpec ¶
type AWSLoadBalancerControllerSpec struct { // subnetTagging describes how the subnet tagging will be done by the operator. // Allowed values are "Auto" and "Manual". The default value is "Auto". // When this field is set to "Auto", the operator will detect the subnets where the load balancers // will be provisioned and will continuously ensure the required resource tags are on those subnets // whereas when set to "Manual", this responsibility lies on the user. The tags added by the operator // will be removed when transitioning from "Auto" to "Manual" whereas any tags added by the user // will be left intact when transitioning from "Manual" to "Auto". For more info about the subnet detection // and the required subnet tags, see https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/deploy/subnet_discovery. // // +kubebuilder:default:=Auto // +kubebuilder:validation:Optional // +optional SubnetTagging SubnetTaggingPolicy `json:"subnetTagging,omitempty"` // additionalResourceTags are the AWS tags that will be applied to all AWS resources managed by this // controller. The managed AWS resources don't include the cluster subnets which are tagged by the operator. // The addition of new tags as well as the update or removal of any existing tags // will be propagated to the AWS resources. The controller owns all the tags of the managed AWS resources, // unsolicited tags are removed. The controller doesn't watch for changes on AWS, so the removal of the unsolicited // tags can only be triggered by an event coming from OpenShift. AWS supports a maximum of 50 tags per resource. // AWSLoadBalancerController reserves 3 tags for its use, the rest is split between the tag annotation // which can be set on the ingress and this field: 23 and 24, respectively. Each tag key must be unique. // // +kubebuilder:validation:MaxItems=24 // +kubebuilder:validation:Optional // +optional // +listType=map // +listMapKey=key // +patchMergeKey=key // +patchStrategy=merge AdditionalResourceTags []AWSResourceTag `json:"additionalResourceTags,omitempty" patchStrategy:"merge" patchMergeKey:"key"` // ingressClass specifies the Ingress class which the controller will reconcile. // This Ingress class will be created unless it already exists. // The value will default to "alb". The defaulting to "alb" is necessary // so that this controller can function as expected in parallel with openshift-router, // for more info see https://github.com/openshift/enhancements/blob/master/enhancements/ingress/aws-load-balancer-operator.md#parallel-operation-of-the-openshift-router-and-lb-controller. // // +kubebuilder:default:=alb // +kubebuilder:validation:Optional // +optional IngressClass string `json:"ingressClass,omitempty"` // config specifies further customization options for the controller's deployment spec. // // +kubebuilder:validation:Optional // +optional Config *AWSLoadBalancerDeploymentConfig `json:"config,omitempty"` // enabledAddons describes the AWS services that can be integrated with // the AWS Load Balancers created by the controller. // Enabling an addon does not enable the feature on the ingress resources. // Instead, it allows for configuration of the feature through the ingress // annotations. Similarly, removing an addon does not disable the feature // which is already configured on the ingress resources. Instead, it starts ignoring // any configuration of the disabled feature through the annotations. // For more info on the addon annotations see // https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/guide/ingress/annotations/#addons. // // +kubebuilder:validation:Optional // +optional EnabledAddons []AWSAddon `json:"enabledAddons,omitempty"` // credentials is a reference to a secret containing // the AWS credentials to be used by the controller. // The secret is required to have a "credentials" data key // containing the AWS CLI credentials file (static or STS), // for examples, see https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html // under the "credentials" data key. // The secret is required to be in the operator namespace. // If this field is empty, the credentials will be // requested using the Cloud Credentials API, // see https://docs.openshift.com/container-platform/4.13/authentication/managing_cloud_provider_credentials/about-cloud-credential-operator.html. // // +kubebuilder:validation:Optional // +optional Credentials *configv1.SecretNameReference `json:"credentials,omitempty"` // credentialsRequestConfig specifies further customization options for the controller's CredentialsRequest. // This field won't have any effect if credentials have already been provided through the `Credentials` field, // as a request for credentials from the Cloud Credentials Operator will not be triggered. // // +kubebuilder:validation:Optional // +optional CredentialsRequestConfig *AWSLoadBalancerCredentialsRequestConfig `json:"credentialsRequestConfig,omitempty"` }
AWSLoadBalancerControllerSpec defines the desired state of AWSLoadBalancerController.
func (*AWSLoadBalancerControllerSpec) DeepCopy ¶
func (in *AWSLoadBalancerControllerSpec) DeepCopy() *AWSLoadBalancerControllerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerControllerSpec.
func (*AWSLoadBalancerControllerSpec) DeepCopyInto ¶
func (in *AWSLoadBalancerControllerSpec) DeepCopyInto(out *AWSLoadBalancerControllerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSLoadBalancerControllerStatus ¶
type AWSLoadBalancerControllerStatus struct { // conditions is a list of operator-specific conditions and their status. // // +kubebuilder:validation:Optional // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // observedGeneration is the most recent generation observed. // // +kubebuilder:validation:Optional // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // subnets contains the cluster subnet details which matter for the controller. // The cluster subnets are those having `kubernetes.io/cluster/${cluster-name}` tag. // For more info on the cluster subnets which matter for the controller see // https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/deploy/subnet_discovery. // // +kubebuilder:validation:Optional // +optional Subnets *AWSLoadBalancerControllerStatusSubnets `json:"subnets,omitempty"` // ingressClass is the Ingress class currently used by the controller. // // +kubebuilder:validation:Optional // +optional IngressClass string `json:"ingressClass,omitempty"` }
AWSLoadBalancerControllerStatus defines the observed state of AWSLoadBalancerController.
func (*AWSLoadBalancerControllerStatus) DeepCopy ¶
func (in *AWSLoadBalancerControllerStatus) DeepCopy() *AWSLoadBalancerControllerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerControllerStatus.
func (*AWSLoadBalancerControllerStatus) DeepCopyInto ¶
func (in *AWSLoadBalancerControllerStatus) DeepCopyInto(out *AWSLoadBalancerControllerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSLoadBalancerControllerStatusSubnets ¶
type AWSLoadBalancerControllerStatusSubnets struct { // subnetTagging indicates the current status of the subnet tags. // // +kubebuilder:validation:Optional // +optional SubnetTagging SubnetTaggingPolicy `json:"subnetTagging,omitempty"` // internal is the list of subnet ids which belong to the cluster // and have the tag `kubernetes.io/role/internal-elb`. // // +kubebuilder:validation:Optional // +optional Internal []string `json:"internal,omitempty"` // public is the list of subnet ids which belong to the cluster // and have the tag `kubernetes.io/role/elb`. // // +kubebuilder:validation:Optional // +optional Public []string `json:"public,omitempty"` // tagged is the list of subnet ids which belong to the cluster // and have been tagged by the operator. // // +kubebuilder:validation:Optional // +optional Tagged []string `json:"tagged,omitempty"` // untagged is the list of subnet ids which belong to the cluster // and do not have any role tags. // // +kubebuilder:validation:Optional // +optional Untagged []string `json:"untagged,omitempty"` }
AWSLoadBalancerControllerStatusSubnets contains the cluster subnet details which matter for the right functioning of the controller.
func (*AWSLoadBalancerControllerStatusSubnets) DeepCopy ¶
func (in *AWSLoadBalancerControllerStatusSubnets) DeepCopy() *AWSLoadBalancerControllerStatusSubnets
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerControllerStatusSubnets.
func (*AWSLoadBalancerControllerStatusSubnets) DeepCopyInto ¶
func (in *AWSLoadBalancerControllerStatusSubnets) DeepCopyInto(out *AWSLoadBalancerControllerStatusSubnets)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSLoadBalancerCredentialsRequestConfig ¶
type AWSLoadBalancerCredentialsRequestConfig struct { // stsIAMRoleARN is the Amazon Resource Name (ARN) of an IAM Role // which must be manually created for the controller's CredentialsRequest. // This ARN is added to AWSProviderSpec initiating the creation of a secret containing IAM // Role details necessary for assuming the IAM Role via Amazon's Secure Token Service (STS). // // +kubebuilder:validation:Pattern:=`^arn:(aws|aws-cn|aws-us-gov):iam::[0-9]{12}:role\/.*$` // +kubebuilder:validation:Optional // +optional STSIAMRoleARN string `json:"stsIAMRoleARN,omitempty"` }
AWSLoadBalancerCredentialsRequestConfig defines customization options for the controller's CredentialsRequest.
func (*AWSLoadBalancerCredentialsRequestConfig) DeepCopy ¶
func (in *AWSLoadBalancerCredentialsRequestConfig) DeepCopy() *AWSLoadBalancerCredentialsRequestConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerCredentialsRequestConfig.
func (*AWSLoadBalancerCredentialsRequestConfig) DeepCopyInto ¶
func (in *AWSLoadBalancerCredentialsRequestConfig) DeepCopyInto(out *AWSLoadBalancerCredentialsRequestConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSLoadBalancerDeploymentConfig ¶
type AWSLoadBalancerDeploymentConfig struct { // replicas is the desired number of the controller replicas. // The controller exposes webhooks for the IngressClassParams and TargetGroupBinding custom resources. // At least 1 replica of the controller should be ready to serve the webhook requests. // For that reason the replicas cannot be set to 0. // The leader election is enabled on the controller if the number of replicas is greater than 1. // // +kubebuilder:default:=1 // +kubebuilder:validation:Minimum:=1 // +kubebuilder:validation:Optional // +optional Replicas int32 `json:"replicas,omitempty"` }
AWSLoadBalancerDeploymentConfig defines customization options for the controller's deployment spec.
func (*AWSLoadBalancerDeploymentConfig) DeepCopy ¶
func (in *AWSLoadBalancerDeploymentConfig) DeepCopy() *AWSLoadBalancerDeploymentConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSLoadBalancerDeploymentConfig.
func (*AWSLoadBalancerDeploymentConfig) DeepCopyInto ¶
func (in *AWSLoadBalancerDeploymentConfig) DeepCopyInto(out *AWSLoadBalancerDeploymentConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSResourceTag ¶
type AWSResourceTag struct { // key is the key of the tag. // See https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions // for information on the tagging conventions. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:Pattern=`^[0-9A-Za-z_.:/=+-@]+$` // +required Key string `json:"key"` // value is the value of the tag. // See https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions // for information on the tagging conventions. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=256 // +kubebuilder:validation:Pattern=`^[0-9A-Za-z_.:/=+-@]*$` // +required Value string `json:"value"` }
AWSResourceTag is a tag to apply to AWS resources created by the controller.
func (*AWSResourceTag) DeepCopy ¶
func (in *AWSResourceTag) DeepCopy() *AWSResourceTag
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSResourceTag.
func (*AWSResourceTag) DeepCopyInto ¶
func (in *AWSResourceTag) DeepCopyInto(out *AWSResourceTag)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetTaggingPolicy ¶
type SubnetTaggingPolicy string
+kubebuilder:validation:Enum=Auto;Manual
const ( // AutoSubnetTaggingPolicy enables automatic subnet tagging. AutoSubnetTaggingPolicy SubnetTaggingPolicy = "Auto" // ManualSubnetTaggingPolicy disables automatic subnet tagging. ManualSubnetTaggingPolicy SubnetTaggingPolicy = "Manual" )