Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the approuting v1alpha1 API group +kubebuilder:object:generate=true +groupName=approuting.kubernetes.azure.com
Index ¶
- Constants
- Variables
- type ClusterExternalDNS
- func (in *ClusterExternalDNS) DeepCopy() *ClusterExternalDNS
- func (in *ClusterExternalDNS) DeepCopyInto(out *ClusterExternalDNS)
- func (in *ClusterExternalDNS) DeepCopyObject() runtime.Object
- func (c *ClusterExternalDNS) GetCondition(conditionType string) *metav1.Condition
- func (c *ClusterExternalDNS) GetConditions() *[]metav1.Condition
- func (c *ClusterExternalDNS) GetDnsZoneresourceIDs() []string
- func (c *ClusterExternalDNS) GetFilters() *ExternalDNSFilters
- func (c *ClusterExternalDNS) GetGeneration() int64
- func (c *ClusterExternalDNS) GetInputResourceName() string
- func (c *ClusterExternalDNS) GetInputServiceAccount() string
- func (e *ClusterExternalDNS) GetNamespaced() bool
- func (c *ClusterExternalDNS) GetResourceNamespace() string
- func (c *ClusterExternalDNS) GetResourceTypes() []string
- func (c *ClusterExternalDNS) GetTenantId() *string
- func (c *ClusterExternalDNS) SetCondition(condition metav1.Condition)
- type ClusterExternalDNSList
- type ClusterExternalDNSSpec
- type ClusterExternalDNSStatus
- type DefaultSSLCertificate
- type ExternalDNS
- func (in *ExternalDNS) DeepCopy() *ExternalDNS
- func (in *ExternalDNS) DeepCopyInto(out *ExternalDNS)
- func (in *ExternalDNS) DeepCopyObject() runtime.Object
- func (e *ExternalDNS) GetCondition(conditionType string) *metav1.Condition
- func (e *ExternalDNS) GetConditions() *[]metav1.Condition
- func (e *ExternalDNS) GetDnsZoneresourceIDs() []string
- func (e *ExternalDNS) GetFilters() *ExternalDNSFilters
- func (e *ExternalDNS) GetGeneration() int64
- func (e *ExternalDNS) GetInputResourceName() string
- func (e *ExternalDNS) GetInputServiceAccount() string
- func (e *ExternalDNS) GetNamespaced() bool
- func (e *ExternalDNS) GetResourceNamespace() string
- func (e *ExternalDNS) GetResourceTypes() []string
- func (e *ExternalDNS) GetTenantId() *string
- func (e *ExternalDNS) SetCondition(condition metav1.Condition)
- type ExternalDNSFilters
- type ExternalDNSIdentity
- type ExternalDNSList
- type ExternalDNSSpec
- type ExternalDNSStatus
- type ManagedObjectReference
- type NICNamespacedName
- type NginxIngressController
- func (n *NginxIngressController) Collides(ctx context.Context, cl client.Client) (bool, string, error)
- func (in *NginxIngressController) DeepCopy() *NginxIngressController
- func (in *NginxIngressController) DeepCopyInto(out *NginxIngressController)
- func (in *NginxIngressController) DeepCopyObject() runtime.Object
- func (n *NginxIngressController) GetCondition(t string) *metav1.Condition
- func (n *NginxIngressController) GetConditions() *[]metav1.Condition
- func (n *NginxIngressController) GetGeneration() int64
- func (n *NginxIngressController) SetCondition(c metav1.Condition)
- type NginxIngressControllerList
- type NginxIngressControllerSpec
- type NginxIngressControllerStatus
- type Scaling
- type Secret
- type Threshold
Constants ¶
const ( ConditionTypeExternalDNSDeploymentReady = "ExternalDNSDeploymentReady" ConditionTypeExternalDNSDeploymentAvailable = "ExternalDNSDeploymentAvailable" ConditionTypeExternalDns )
const ( // ConditionTypeAvailable indicates whether the NGINX Ingress Controller is available. Its condition status is one of // - "True" when the NGINX Ingress Controller is available and can be used // - "False" when the NGINX Ingress Controller is not available and cannot offer full functionality // - "Unknown" when the NGINX Ingress Controller's availability cannot be determined ConditionTypeAvailable = "Available" // ConditionTypeIngressClassReady indicates whether the IngressClass exists. Its condition status is one of // - "True" when the IngressClass exists // - "False" when the IngressClass does not exist // - "Collision" when the IngressClass exists, but it's not owned by the NginxIngressController. // - "Unknown" when the IngressClass's existence cannot be determined ConditionTypeIngressClassReady = "IngressClassReady" // ConditionTypeControllerAvailable indicates whether the NGINX Ingress Controller deployment is available. Its condition status is one of // - "True" when the NGINX Ingress Controller deployment is available // - "False" when the NGINX Ingress Controller deployment is not available // - "Unknown" when the NGINX Ingress Controller deployment's availability cannot be determined ConditionTypeControllerAvailable = "ControllerAvailable" // ConditionTypeProgressing indicates whether the NGINX Ingress Controller availability is progressing. Its condition status is one of // - "True" when the NGINX Ingress Controller availability is progressing // - "False" when the NGINX Ingress Controller availability is not progressing // - "Unknown" when the NGINX Ingress Controller availability's progress cannot be determined ConditionTypeProgressing = "Progressing" )
const (
// MaxCollisions is the maximum number of collisions allowed when generating a name for a managed resource. This corresponds to the status.CollisionCount
MaxCollisions = 5
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "approuting.kubernetes.azure.com", 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 ClusterExternalDNS ¶ added in v0.2.5
type ClusterExternalDNS struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:Required Spec ClusterExternalDNSSpec `json:"spec,omitempty"` Status ClusterExternalDNSStatus `json:"status,omitempty"` }
ClusterExternalDNS allows users to specify desired the state of a cluster-scoped ExternalDNS deployment and includes information about the state of their resources in the form of Kubernetes events. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName=cedns
func (*ClusterExternalDNS) DeepCopy ¶ added in v0.2.5
func (in *ClusterExternalDNS) DeepCopy() *ClusterExternalDNS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNS.
func (*ClusterExternalDNS) DeepCopyInto ¶ added in v0.2.5
func (in *ClusterExternalDNS) DeepCopyInto(out *ClusterExternalDNS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterExternalDNS) DeepCopyObject ¶ added in v0.2.5
func (in *ClusterExternalDNS) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterExternalDNS) GetCondition ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetCondition(conditionType string) *metav1.Condition
func (*ClusterExternalDNS) GetConditions ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetConditions() *[]metav1.Condition
func (*ClusterExternalDNS) GetDnsZoneresourceIDs ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetDnsZoneresourceIDs() []string
func (*ClusterExternalDNS) GetFilters ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetFilters() *ExternalDNSFilters
func (*ClusterExternalDNS) GetGeneration ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetGeneration() int64
func (*ClusterExternalDNS) GetInputResourceName ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetInputResourceName() string
func (*ClusterExternalDNS) GetInputServiceAccount ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetInputServiceAccount() string
func (*ClusterExternalDNS) GetNamespaced ¶ added in v0.2.5
func (e *ClusterExternalDNS) GetNamespaced() bool
func (*ClusterExternalDNS) GetResourceNamespace ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetResourceNamespace() string
func (*ClusterExternalDNS) GetResourceTypes ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetResourceTypes() []string
func (*ClusterExternalDNS) GetTenantId ¶ added in v0.2.5
func (c *ClusterExternalDNS) GetTenantId() *string
interface methods for controller abstractions
func (*ClusterExternalDNS) SetCondition ¶ added in v0.2.5
func (c *ClusterExternalDNS) SetCondition(condition metav1.Condition)
type ClusterExternalDNSList ¶ added in v0.2.5
type ClusterExternalDNSList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterExternalDNS `json:"items"` }
ClusterExternalDNSList contains a list of ClusterExternalDNS. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster
func (*ClusterExternalDNSList) DeepCopy ¶ added in v0.2.5
func (in *ClusterExternalDNSList) DeepCopy() *ClusterExternalDNSList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSList.
func (*ClusterExternalDNSList) DeepCopyInto ¶ added in v0.2.5
func (in *ClusterExternalDNSList) DeepCopyInto(out *ClusterExternalDNSList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterExternalDNSList) DeepCopyObject ¶ added in v0.2.5
func (in *ClusterExternalDNSList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterExternalDNSSpec ¶ added in v0.2.5
type ClusterExternalDNSSpec struct { // ResourceName is the name that will be used for the ExternalDNS deployment and related resources. Will default to the name of the ClusterExternalDNS resource if not specified. // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` ResourceName string `json:"resourceName"` // TenantID is the ID of the Azure tenant where the DNS zones are located. // +kubebuilder:validation:Optional // +kubebuilder:validation:Format:=uuid // +kubebuilder:validation:Pattern=`[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}` TenantID *string `json:"tenantId,omitempty"` // DNSZoneResourceIDs is a list of Azure Resource IDs of the DNS zones that the ExternalDNS controller should manage. These must be in the same resource group and be of the same type (public or private). The number of zones is currently capped at 7 but may be expanded in the future. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems:=1 // +kubebuilder:validation:MaxItems:=7 // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[2] == self[0].split('/')[2])",message="all items must have the same subscription ID" // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[4] == self[0].split('/')[4])",message="all items must have the same resource group" // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[7] == self[0].split('/')[7])",message="all items must be of the same resource type" // +listType:=set DNSZoneResourceIDs []string `json:"dnsZoneResourceIDs"` // ResourceTypes is a list of Kubernetes resource types that the ExternalDNS controller should manage. The supported resource types are 'ingress' and 'gateway'. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems:=1 // +kubebuilder:validation:MaxItems:=2 // +kubebuilder:validation:XValidation:rule="self.all(item, item.matches('(?i)(gateway|ingress)'))",message="all items must be either 'gateway' or 'ingress'" // +listType:=set ResourceTypes []string `json:"resourceTypes"` // Identity contains information about the identity that ExternalDNS will use to interface with Azure resources. // +kubebuilder:validation:Required Identity ExternalDNSIdentity `json:"identity"` // ResourceNamespace is the namespace where the ExternalDNS resources will be deployed by app routing. // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` ResourceNamespace string `json:"resourceNamespace"` // Filters contains optional filters that the ExternalDNS controller should use to determine which resources to manage. // +optional Filters *ExternalDNSFilters `json:"filters,omitempty"` }
ClusterExternalDNSSpec allows users to specify desired the state of a cluster-scoped ExternalDNS deployment.
func (*ClusterExternalDNSSpec) DeepCopy ¶ added in v0.2.5
func (in *ClusterExternalDNSSpec) DeepCopy() *ClusterExternalDNSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSSpec.
func (*ClusterExternalDNSSpec) DeepCopyInto ¶ added in v0.2.5
func (in *ClusterExternalDNSSpec) DeepCopyInto(out *ClusterExternalDNSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterExternalDNSStatus ¶ added in v0.2.5
type ClusterExternalDNSStatus struct {
ExternalDNSStatus `json:",inline"`
}
ClusterExternalDNSStatus contains information about the state of the managed ExternalDNS resources.
func (*ClusterExternalDNSStatus) DeepCopy ¶ added in v0.2.5
func (in *ClusterExternalDNSStatus) DeepCopy() *ClusterExternalDNSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSStatus.
func (*ClusterExternalDNSStatus) DeepCopyInto ¶ added in v0.2.5
func (in *ClusterExternalDNSStatus) DeepCopyInto(out *ClusterExternalDNSStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DefaultSSLCertificate ¶ added in v0.2.2
type DefaultSSLCertificate struct { // Secret is a struct that holds the name and namespace fields used for the default ssl secret // +optional Secret *Secret `json:"secret,omitempty"` // Secret in the form of a Key Vault URI // +optional KeyVaultURI *string `json:"keyVaultURI,omitempty"` // ForceSSLRedirect is a flag that sets the global value of redirects to HTTPS if there is a defined DefaultSSLCertificate // +kubebuilder:default:=false ForceSSLRedirect bool `json:"forceSSLRedirect,omitempty"` }
DefaultSSLCertificate holds a secret in the form of a secret struct with name and namespace properties or a key vault uri +kubebuilder:validation:MaxProperties=2 +kubebuilder:validation:XValidation:rule="(isURL(self.keyVaultURI) || !has(self.keyVaultURI))" +kubebuilder:validation:XValidation:rule="((self.forceSSLRedirect == true) && (has(self.secret) || has(self.keyVaultURI)) || (self.forceSSLRedirect == false))"
func (*DefaultSSLCertificate) DeepCopy ¶ added in v0.2.2
func (in *DefaultSSLCertificate) DeepCopy() *DefaultSSLCertificate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultSSLCertificate.
func (*DefaultSSLCertificate) DeepCopyInto ¶ added in v0.2.2
func (in *DefaultSSLCertificate) DeepCopyInto(out *DefaultSSLCertificate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalDNS ¶ added in v0.2.5
type ExternalDNS struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:Required Spec ExternalDNSSpec `json:"spec,omitempty"` Status ExternalDNSStatus `json:"status,omitempty"` }
ExternalDNS allows users to specify desired the state of a namespace-scoped ExternalDNS deployment and includes information about the state of their resources in the form of Kubernetes events.
func (*ExternalDNS) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNS) DeepCopy() *ExternalDNS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNS.
func (*ExternalDNS) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNS) DeepCopyInto(out *ExternalDNS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExternalDNS) DeepCopyObject ¶ added in v0.2.5
func (in *ExternalDNS) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ExternalDNS) GetCondition ¶ added in v0.2.5
func (e *ExternalDNS) GetCondition(conditionType string) *metav1.Condition
func (*ExternalDNS) GetConditions ¶ added in v0.2.5
func (e *ExternalDNS) GetConditions() *[]metav1.Condition
func (*ExternalDNS) GetDnsZoneresourceIDs ¶ added in v0.2.5
func (e *ExternalDNS) GetDnsZoneresourceIDs() []string
func (*ExternalDNS) GetFilters ¶ added in v0.2.5
func (e *ExternalDNS) GetFilters() *ExternalDNSFilters
func (*ExternalDNS) GetGeneration ¶ added in v0.2.5
func (e *ExternalDNS) GetGeneration() int64
func (*ExternalDNS) GetInputResourceName ¶ added in v0.2.5
func (e *ExternalDNS) GetInputResourceName() string
func (*ExternalDNS) GetInputServiceAccount ¶ added in v0.2.5
func (e *ExternalDNS) GetInputServiceAccount() string
func (*ExternalDNS) GetNamespaced ¶ added in v0.2.5
func (e *ExternalDNS) GetNamespaced() bool
func (*ExternalDNS) GetResourceNamespace ¶ added in v0.2.5
func (e *ExternalDNS) GetResourceNamespace() string
func (*ExternalDNS) GetResourceTypes ¶ added in v0.2.5
func (e *ExternalDNS) GetResourceTypes() []string
func (*ExternalDNS) GetTenantId ¶ added in v0.2.5
func (e *ExternalDNS) GetTenantId() *string
interface methods for controller abstractions
func (*ExternalDNS) SetCondition ¶ added in v0.2.5
func (e *ExternalDNS) SetCondition(condition metav1.Condition)
type ExternalDNSFilters ¶ added in v0.2.5
type ExternalDNSFilters struct { // GatewayLabelSelector is the label selector that the ExternalDNS controller will use to filter the Gateways that it manages. // +optional // +kubebuilder:validation:Pattern=`^[^=]+=[^=]+$` GatewayLabelSelector *string `json:"gatewayLabels,omitempty"` // RouteAndIngressLabelSelector is the label selector that the ExternalDNS controller will use to filter the HTTPRoutes and Ingresses that it manages. // +optional // +kubebuilder:validation:Pattern=`^[^=]+=[^=]+$` RouteAndIngressLabelSelector *string `json:"routeAndIngressLabels,omitempty"` }
func (*ExternalDNSFilters) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNSFilters) DeepCopy() *ExternalDNSFilters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSFilters.
func (*ExternalDNSFilters) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNSFilters) DeepCopyInto(out *ExternalDNSFilters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalDNSIdentity ¶ added in v0.2.5
type ExternalDNSIdentity struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` // +kubebuilder:validation:Required // ServiceAccount is the name of the Kubernetes ServiceAccount that ExternalDNS will use to interface with Azure resources. It must be in the same namespace as the ExternalDNS. ServiceAccount string `json:"serviceAccount"` }
ExternalDNSIdentity contains information about the identity that ExternalDNS will use to interface with Azure resources.
func (*ExternalDNSIdentity) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNSIdentity) DeepCopy() *ExternalDNSIdentity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSIdentity.
func (*ExternalDNSIdentity) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNSIdentity) DeepCopyInto(out *ExternalDNSIdentity)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalDNSList ¶ added in v0.2.5
type ExternalDNSList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ExternalDNS `json:"items"` }
ExternalDNSList contains a list of ExternalDNS.
func (*ExternalDNSList) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNSList) DeepCopy() *ExternalDNSList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSList.
func (*ExternalDNSList) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNSList) DeepCopyInto(out *ExternalDNSList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExternalDNSList) DeepCopyObject ¶ added in v0.2.5
func (in *ExternalDNSList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExternalDNSSpec ¶ added in v0.2.5
type ExternalDNSSpec struct { // ResourceName is the name that will be used for the ExternalDNS deployment and related resources. Will default to the name of the ExternalDNS resource if not specified. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` // +kubebuilder:validation:Required ResourceName string `json:"resourceName"` // TenantID is the ID of the Azure tenant where the DNS zones are located. // +kubebuilder:validation:Optional // +kubebuilder:validation:Format:=uuid // +kubebuilder:validation:Pattern=`[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}` TenantID *string `json:"tenantId,omitempty"` // DNSZoneResourceIDs is a list of Azure Resource IDs of the DNS zones that the ExternalDNS controller should manage. These must be in the same resource group and be of the same type (public or private). The number of zones is currently capped at 7 but may be expanded in the future. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems:=1 // +kubebuilder:validation:MaxItems:=7 // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[2] == self[0].split('/')[2])",message="all items must have the same subscription ID" // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[4] == self[0].split('/')[4])",message="all items must have the same resource group" // +kubebuilder:validation:XValidation:rule="self.all(item, item.split('/')[7] == self[0].split('/')[7])",message="all items must be of the same resource type" // +listType:=set DNSZoneResourceIDs []string `json:"dnsZoneResourceIDs"` // ResourceTypes is a list of Kubernetes resource types that the ExternalDNS controller should manage. The supported resource types are 'ingress' and 'gateway'. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems:=1 // +kubebuilder:validation:MaxItems:=2 // +kubebuilder:validation:XValidation:rule="self.all(item, item.matches('(?i)(gateway|ingress)'))",message="all items must be either 'gateway' or 'ingress'" // +listType:=set ResourceTypes []string `json:"resourceTypes"` // Identity contains information about the identity that ExternalDNS will use to interface with Azure resources. // +kubebuilder:validation:Required Identity ExternalDNSIdentity `json:"identity"` // Filters contains optional filters that the ExternalDNS controller should use to determine which resources to manage. // +optional Filters *ExternalDNSFilters `json:"filters,omitempty"` }
ExternalDNSSpec allows users to specify desired the state of a namespace-scoped ExternalDNS deployment.
func (*ExternalDNSSpec) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNSSpec) DeepCopy() *ExternalDNSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSSpec.
func (*ExternalDNSSpec) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNSSpec) DeepCopyInto(out *ExternalDNSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalDNSStatus ¶ added in v0.2.5
type ExternalDNSStatus struct { // Conditions is an array of current observed conditions for the ExternalDNS // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions"` ExternalDNSReadyReplicas int32 `json:"externalDNSReadyReplicas"` // Count of hash collisions for the managed resources. The App Routing Operator uses this field // as a collision avoidance mechanism when it needs to create the name for the managed resources. // +optional // +kubebuilder:validation:Maximum=5 CollisionCount int32 `json:"collisionCount"` // ManagedResourceRefs is a list of references to the managed resources // +optional ManagedResourceRefs []ManagedObjectReference `json:"managedResourceRefs,omitempty"` }
ExternalDNSStatus defines the observed state of ExternalDNS.
func (*ExternalDNSStatus) DeepCopy ¶ added in v0.2.5
func (in *ExternalDNSStatus) DeepCopy() *ExternalDNSStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSStatus.
func (*ExternalDNSStatus) DeepCopyInto ¶ added in v0.2.5
func (in *ExternalDNSStatus) DeepCopyInto(out *ExternalDNSStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagedObjectReference ¶
type ManagedObjectReference struct { // Name is the name of the managed object Name string `json:"name"` // Namespace is the namespace of the managed object. If not specified, the resource is cluster-scoped // +optional Namespace string `json:"namespace"` // Kind is the kind of the managed object Kind string `json:"kind"` // APIGroup is the API group of the managed object. If not specified, the resource is in the core API group // +optional APIGroup string `json:"apiGroup"` }
ManagedObjectReference is a reference to an object
func (*ManagedObjectReference) DeepCopy ¶
func (in *ManagedObjectReference) DeepCopy() *ManagedObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedObjectReference.
func (*ManagedObjectReference) DeepCopyInto ¶
func (in *ManagedObjectReference) DeepCopyInto(out *ManagedObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NICNamespacedName ¶ added in v0.2.5
type NICNamespacedName struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` Name string `json:"name"` // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` Namespace string `json:"namespace"` }
NICNamespacedName is a struct that holds a name and namespace with length checking on the crd for fields other than DefaultSSLCertificate in the spec
func (*NICNamespacedName) DeepCopy ¶ added in v0.2.5
func (in *NICNamespacedName) DeepCopy() *NICNamespacedName
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NICNamespacedName.
func (*NICNamespacedName) DeepCopyInto ¶ added in v0.2.5
func (in *NICNamespacedName) DeepCopyInto(out *NICNamespacedName)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxIngressController ¶
type NginxIngressController struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +required // +kubebuilder:default:={"ingressClassName":"nginx.approuting.kubernetes.azure.com","controllerNamePrefix":"nginx"} Spec NginxIngressControllerSpec `json:"spec"` // ^ for the above thing https://github.com/kubernetes-sigs/controller-tools/issues/622 defaulting doesn't cascade, so we have to define it all. Comment on this line so it's not in crd spec. // +optional Status NginxIngressControllerStatus `json:"status,omitempty"` }
NginxIngressController is the Schema for the nginxingresscontrollers API
func (*NginxIngressController) Collides ¶ added in v0.1.2
func (n *NginxIngressController) Collides(ctx context.Context, cl client.Client) (bool, string, error)
Collides returns whether the fields in this NginxIngressController would collide with an existing resources making it impossible for this NginxIngressController to become available. This should be run before an NginxIngressController is created. Returns whether there's a collision, the collision reason, and an error if one occurred. The collision reason is something that the user can use to understand and resolve.
func (*NginxIngressController) DeepCopy ¶
func (in *NginxIngressController) DeepCopy() *NginxIngressController
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressController.
func (*NginxIngressController) DeepCopyInto ¶
func (in *NginxIngressController) DeepCopyInto(out *NginxIngressController)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NginxIngressController) DeepCopyObject ¶
func (in *NginxIngressController) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NginxIngressController) GetCondition ¶
func (n *NginxIngressController) GetCondition(t string) *metav1.Condition
func (*NginxIngressController) GetConditions ¶ added in v0.2.5
func (n *NginxIngressController) GetConditions() *[]metav1.Condition
func (*NginxIngressController) GetGeneration ¶ added in v0.2.5
func (n *NginxIngressController) GetGeneration() int64
func (*NginxIngressController) SetCondition ¶
func (n *NginxIngressController) SetCondition(c metav1.Condition)
type NginxIngressControllerList ¶
type NginxIngressControllerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []NginxIngressController `json:"items"` }
NginxIngressControllerList contains a list of NginxIngressController
func (*NginxIngressControllerList) DeepCopy ¶
func (in *NginxIngressControllerList) DeepCopy() *NginxIngressControllerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerList.
func (*NginxIngressControllerList) DeepCopyInto ¶
func (in *NginxIngressControllerList) DeepCopyInto(out *NginxIngressControllerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NginxIngressControllerList) DeepCopyObject ¶
func (in *NginxIngressControllerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NginxIngressControllerSpec ¶
type NginxIngressControllerSpec struct { // IngressClassName is the name of the IngressClass that will be used for the NGINX Ingress Controller. Defaults to metadata.name if // not specified. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:default:=nginx.approuting.kubernetes.azure.com // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` // +kubebuilder:validation:Required IngressClassName string `json:"ingressClassName"` // ControllerNamePrefix is the name to use for the managed NGINX Ingress Controller resources. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=60 // +kubebuilder:default:=nginx // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9]*[a-z0-9]$` // +kubebuilder:validation:Required ControllerNamePrefix string `json:"controllerNamePrefix"` // LoadBalancerAnnotations is a map of annotations to apply to the NGINX Ingress Controller's Service. Common annotations // will be from the Azure LoadBalancer annotations here https://cloud-provider-azure.sigs.k8s.io/topics/loadbalancer/#loadbalancer-annotations // +optional LoadBalancerAnnotations map[string]string `json:"loadBalancerAnnotations,omitempty"` // LoadBalancerSourceRanges restricts traffic to the LoadBalancer Service to the specified client IPs. This can be used along with // deny-all annotations to restrict access https://cloud-provider-azure.sigs.k8s.io/topics/loadbalancer/#loadbalancer-annotations LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` // DefaultSSLCertificate defines whether the NginxIngressController should use a certain SSL certificate by default. // If this field is omitted, no default certificate will be used. // +optional DefaultSSLCertificate *DefaultSSLCertificate `json:"defaultSSLCertificate,omitempty"` // DefaultBackendService defines the service that the NginxIngressController should default to when given HTTP traffic with not matching known server names. // The controller directs traffic to the first port of the service. // +optional DefaultBackendService *NICNamespacedName `json:"defaultBackendService,omitempty"` // CustomHTTPErrors defines the error codes that the NginxIngressController should send to its default-backend in case of error. // +optional CustomHTTPErrors []int32 `json:"customHTTPErrors,omitempty"` // Scaling defines configuration options for how the Ingress Controller scales // +optional Scaling *Scaling `json:"scaling,omitempty"` // HTTPDisabled is a flag that disables HTTP traffic to the NginxIngressController // +optional HTTPDisabled bool `json:"httpDisabled,omitempty"` // LogFormat is the log format used by the Nginx Ingress Controller. See https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#log-format-upstream // +optional LogFormat *string `json:"logFormat,omitempty"` // EnableSSLPassthrough is a flag that enables SSL passthrough for the NginxIngressController. This allows the controller to pass through SSL traffic without terminating it. // +optional EnableSSLPassthrough bool `json:"enableSSLPassthrough,omitempty"` }
NginxIngressControllerSpec defines the desired state of NginxIngressController
func (*NginxIngressControllerSpec) DeepCopy ¶
func (in *NginxIngressControllerSpec) DeepCopy() *NginxIngressControllerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerSpec.
func (*NginxIngressControllerSpec) DeepCopyInto ¶
func (in *NginxIngressControllerSpec) DeepCopyInto(out *NginxIngressControllerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxIngressControllerStatus ¶
type NginxIngressControllerStatus struct { // Conditions is an array of current observed conditions for the NGINX Ingress Controller // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions"` // ControllerReplicas is the desired number of replicas of the NGINX Ingress Controller // +optional ControllerReplicas int32 `json:"controllerReplicas"` // ControllerReadyReplicas is the number of ready replicas of the NGINX Ingress Controller deployment // +optional ControllerReadyReplicas int32 `json:"controllerReadyReplicas"` // ControllerAvailableReplicas is the number of available replicas of the NGINX Ingress Controller deployment // +optional ControllerAvailableReplicas int32 `json:"controllerAvailableReplicas"` // +optional ControllerUnavailableReplicas int32 `json:"controllerUnavailableReplicas"` // Count of hash collisions for the managed resources. The App Routing Operator uses this field // as a collision avoidance mechanism when it needs to create the name for the managed resources. // +optional // +kubebuilder:validation:Maximum=5 CollisionCount int32 `json:"collisionCount"` // ManagedResourceRefs is a list of references to the managed resources // +optional ManagedResourceRefs []ManagedObjectReference `json:"managedResourceRefs,omitempty"` }
NginxIngressControllerStatus defines the observed state of NginxIngressController
func (*NginxIngressControllerStatus) DeepCopy ¶
func (in *NginxIngressControllerStatus) DeepCopy() *NginxIngressControllerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerStatus.
func (*NginxIngressControllerStatus) DeepCopyInto ¶
func (in *NginxIngressControllerStatus) DeepCopyInto(out *NginxIngressControllerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Scaling ¶ added in v0.2.2
type Scaling struct { // MinReplicas is the lower limit for the number of Ingress Controller replicas. It defaults to 2 pods. // +kubebuilder:validation:Minimum=1 // +optional MinReplicas *int32 `json:"minReplicas,omitempty"` // MaxReplicas is the upper limit for the number of Ingress Controller replicas. It defaults to 100 pods. // +kubebuilder:validation:Minimum=1 // +optional MaxReplicas *int32 `json:"maxReplicas,omitempty"` // Threshold defines how quickly the Ingress Controller pods should scale based on workload. Rapid means the Ingress Controller // will scale quickly and aggressively, which is the best choice for handling sudden and significant traffic spikes. Steady // is the opposite, prioritizing cost-effectiveness. Steady is the best choice when fewer replicas handling more work is desired or when // traffic isn't expected to fluctuate. Balanced is a good mix between the two that works for most use-cases. If unspecified, this field // defaults to balanced. // +kubebuilder:validation:Enum=rapid;balanced;steady; // +optional Threshold *Threshold `json:"threshold,omitempty"` }
Scaling holds specification for how the Ingress Controller scales +kubebuilder:validation:XValidation:rule="(!has(self.minReplicas)) || (!has(self.maxReplicas)) || (self.minReplicas <= self.maxReplicas)"
func (*Scaling) DeepCopy ¶ added in v0.2.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scaling.
func (*Scaling) DeepCopyInto ¶ added in v0.2.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Secret ¶ added in v0.2.2
type Secret struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` Name string `json:"name"` // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=`^[a-z0-9][-a-z0-9\.]*[a-z0-9]$` Namespace string `json:"namespace"` }
Secret is a struct that holds a name and namespace to be used in DefaultSSLCertificate
func (*Secret) DeepCopy ¶ added in v0.2.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.
func (*Secret) DeepCopyInto ¶ added in v0.2.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.