v1alpha1

package
v0.0.0-...-6a094fe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2025 License: MIT Imports: 13 Imported by: 0

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

View Source
const (
	ConditionTypeExternalDNSDeploymentReady     = "ExternalDNSDeploymentReady"
	ConditionTypeExternalDNSDeploymentAvailable = "ExternalDNSDeploymentAvailable"
	ConditionTypeExternalDns
)
View Source
const (
	// ConditionTypeIssuing indicates the status of the Certificate issuing process.
	// This includes rotations and will reflect failures to rotate.
	// - "True" - The Certificate is going through the issuing process.
	// - "False" - The Certificate is not going through the issuing process.
	// - "Unknown" - The issuing process for the Certificate cannot be determined.
	ConditionTypeIssuing = "Issuing"
	// ConditionTypeReady indicates the readiness of the ManagedCertificate target.
	// If rotations fail but the previous Certificate is still valid, the target is still considered ready.
	// - "True" - The Certificate target is ready.
	// - "False" - The Certificate target is not ready.
	ConditionTypeReady = "Ready"
)
View Source
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"
)
View Source
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

View Source
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

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

func (in *ClusterExternalDNS) DeepCopy() *ClusterExternalDNS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNS.

func (*ClusterExternalDNS) DeepCopyInto

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

func (in *ClusterExternalDNS) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClusterExternalDNS) GetCondition

func (c *ClusterExternalDNS) GetCondition(conditionType string) *metav1.Condition

func (*ClusterExternalDNS) GetConditions

func (c *ClusterExternalDNS) GetConditions() *[]metav1.Condition

func (*ClusterExternalDNS) GetDnsZoneresourceIDs

func (c *ClusterExternalDNS) GetDnsZoneresourceIDs() []string

func (*ClusterExternalDNS) GetFilters

func (c *ClusterExternalDNS) GetFilters() *ExternalDNSFilters

func (*ClusterExternalDNS) GetGeneration

func (c *ClusterExternalDNS) GetGeneration() int64

func (*ClusterExternalDNS) GetInputResourceName

func (c *ClusterExternalDNS) GetInputResourceName() string

func (*ClusterExternalDNS) GetInputServiceAccount

func (c *ClusterExternalDNS) GetInputServiceAccount() string

func (*ClusterExternalDNS) GetNamespaced

func (e *ClusterExternalDNS) GetNamespaced() bool

func (*ClusterExternalDNS) GetResourceNamespace

func (c *ClusterExternalDNS) GetResourceNamespace() string

func (*ClusterExternalDNS) GetResourceTypes

func (c *ClusterExternalDNS) GetResourceTypes() []string

func (*ClusterExternalDNS) GetTenantId

func (c *ClusterExternalDNS) GetTenantId() *string

interface methods for controller abstractions

func (*ClusterExternalDNS) SetCondition

func (c *ClusterExternalDNS) SetCondition(condition metav1.Condition)

type ClusterExternalDNSList

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSList.

func (*ClusterExternalDNSList) DeepCopyInto

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

func (in *ClusterExternalDNSList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterExternalDNSSpec

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSSpec.

func (*ClusterExternalDNSSpec) DeepCopyInto

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

type ClusterExternalDNSStatus struct {
	ExternalDNSStatus `json:",inline"`
}

ClusterExternalDNSStatus contains information about the state of the managed ExternalDNS resources.

func (*ClusterExternalDNSStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExternalDNSStatus.

func (*ClusterExternalDNSStatus) DeepCopyInto

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultSSLCertificate.

func (*DefaultSSLCertificate) DeepCopyInto

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

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

func (in *ExternalDNS) DeepCopy() *ExternalDNS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNS.

func (*ExternalDNS) DeepCopyInto

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

func (in *ExternalDNS) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ExternalDNS) GetCondition

func (e *ExternalDNS) GetCondition(conditionType string) *metav1.Condition

func (*ExternalDNS) GetConditions

func (e *ExternalDNS) GetConditions() *[]metav1.Condition

func (*ExternalDNS) GetDnsZoneresourceIDs

func (e *ExternalDNS) GetDnsZoneresourceIDs() []string

func (*ExternalDNS) GetFilters

func (e *ExternalDNS) GetFilters() *ExternalDNSFilters

func (*ExternalDNS) GetGeneration

func (e *ExternalDNS) GetGeneration() int64

func (*ExternalDNS) GetInputResourceName

func (e *ExternalDNS) GetInputResourceName() string

func (*ExternalDNS) GetInputServiceAccount

func (e *ExternalDNS) GetInputServiceAccount() string

func (*ExternalDNS) GetNamespaced

func (e *ExternalDNS) GetNamespaced() bool

func (*ExternalDNS) GetResourceNamespace

func (e *ExternalDNS) GetResourceNamespace() string

func (*ExternalDNS) GetResourceTypes

func (e *ExternalDNS) GetResourceTypes() []string

func (*ExternalDNS) GetTenantId

func (e *ExternalDNS) GetTenantId() *string

interface methods for controller abstractions

func (*ExternalDNS) SetCondition

func (e *ExternalDNS) SetCondition(condition metav1.Condition)

type ExternalDNSFilters

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

func (in *ExternalDNSFilters) DeepCopy() *ExternalDNSFilters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSFilters.

func (*ExternalDNSFilters) DeepCopyInto

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

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

func (in *ExternalDNSIdentity) DeepCopy() *ExternalDNSIdentity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSIdentity.

func (*ExternalDNSIdentity) DeepCopyInto

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

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

func (in *ExternalDNSList) DeepCopy() *ExternalDNSList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSList.

func (*ExternalDNSList) DeepCopyInto

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

func (in *ExternalDNSList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ExternalDNSSpec

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

func (in *ExternalDNSSpec) DeepCopy() *ExternalDNSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSSpec.

func (*ExternalDNSSpec) DeepCopyInto

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

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"`
	ExternalDNSUnavailableReplicas int32 `json:"externalDNSUnavailableReplicas"`

	// 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

func (in *ExternalDNSStatus) DeepCopy() *ExternalDNSStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSStatus.

func (*ExternalDNSStatus) DeepCopyInto

func (in *ExternalDNSStatus) DeepCopyInto(out *ExternalDNSStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedCertificate

type ManagedCertificate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:Required
	Spec   ManagedCertificateSpec   `json:"spec,omitempty"`
	Status ManagedCertificateStatus `json:"status,omitempty"`
}

ManagedCertificate is the Schema for the managedcertificates API.

func (*ManagedCertificate) DeepCopy

func (in *ManagedCertificate) DeepCopy() *ManagedCertificate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificate.

func (*ManagedCertificate) DeepCopyInto

func (in *ManagedCertificate) DeepCopyInto(out *ManagedCertificate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ManagedCertificate) DeepCopyObject

func (in *ManagedCertificate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ManagedCertificateDnsZone

type ManagedCertificateDnsZone struct {
	// ResourceId is the Azure Resource ID of the DNS Zone. Can be retrieved with `az network dns zone show -g <resource-group> -n <zone-name> --query id -o tsv`.
	ResourceId string `json:"resourceId,omitempty"`

	// TenantId is the Azure Tenant ID of the DNS Zone.
	// +kubebuilder:validation:Optional
	TenantId string `json:"tenantId,omitempty"`
	// ActiveDirectoryApplicationId is the base URL of the cloud's Azure Active Directory.
	// +kubebuilder:validation:Optional
	ActiveDirectoryAuthorityHost string `json:"activeDirectoryAuthorityHost,omitempty"`
}

ManagedCertificateDnsZone defines the DNS Zone that a ManagedCertificate will be applied to.

func (*ManagedCertificateDnsZone) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificateDnsZone.

func (*ManagedCertificateDnsZone) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedCertificateList

type ManagedCertificateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ManagedCertificate `json:"items"`
}

ManagedCertificateList contains a list of ManagedCertificate.

func (*ManagedCertificateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificateList.

func (*ManagedCertificateList) DeepCopyInto

func (in *ManagedCertificateList) DeepCopyInto(out *ManagedCertificateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ManagedCertificateList) DeepCopyObject

func (in *ManagedCertificateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ManagedCertificateSpec

type ManagedCertificateSpec struct {
	// Target defines the targets that the Certificate will be bound to.
	// +kubebuilder:validation:Required
	Target ManagedCertificateTarget `json:"target,omitempty"`

	// DnsZone defines the DNS Zone that the ManagedCertificate will be applied to.
	// +kubebuilder:validation:Required
	DnsZone ManagedCertificateDnsZone `json:"dnsZone,omitempty"`

	// DomainNames is a list of domain names that the Certificate will be issued for.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +listType=set
	DomainNames []string `json:"domainNames,omitempty"`

	// ServiceAccount is the name of the ServiceAccount that will be used to connect to the Azure DNS Zone.
	// +kubebuilder:validation:Required
	ServiceAccount string `json:"serviceAccount,omitempty"`
}

ManagedCertificateSpec defines the desired state of ManagedCertificate.

func (*ManagedCertificateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificateSpec.

func (*ManagedCertificateSpec) DeepCopyInto

func (in *ManagedCertificateSpec) DeepCopyInto(out *ManagedCertificateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedCertificateStatus

type ManagedCertificateStatus struct {
	// ExpireTime is the time when the Certificate will expire. The Certificate will be automatically renewed before this time.
	ExpireTime metav1.Time `json:"expireTime,omitempty"`
	// LastRotationTime is the time when the Certificate was last rotated.
	LastRotationTime metav1.Time `json:"lastRotationTime,omitempty"`
	// DnsVerificationStart is the time when the DNS verification process started.
	DnsVerificationStart metav1.Time `json:"dnsVerificationStart,omitempty"`

	// Conditions represent the latest available observations of the ManagedCertificate's current state.
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ManagedCertificateStatus defines the observed state of ManagedCertificate.

func (*ManagedCertificateStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificateStatus.

func (*ManagedCertificateStatus) DeepCopyInto

func (in *ManagedCertificateStatus) DeepCopyInto(out *ManagedCertificateStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedCertificateTarget

type ManagedCertificateTarget struct {
	// Secret is the name of the Secret that will contain the Certificate.
	Secret string `json:"secret,omitempty"`
}

ManagedCertificateTarget defines the targets that a Certificate will be bound to. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1

func (*ManagedCertificateTarget) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCertificateTarget.

func (*ManagedCertificateTarget) DeepCopyInto

func (in *ManagedCertificateTarget) DeepCopyInto(out *ManagedCertificateTarget)

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

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

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

func (in *NICNamespacedName) DeepCopy() *NICNamespacedName

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NICNamespacedName.

func (*NICNamespacedName) DeepCopyInto

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

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

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

func (n *NginxIngressController) GetConditions() *[]metav1.Condition

func (*NginxIngressController) GetGeneration

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerList.

func (*NginxIngressControllerList) DeepCopyInto

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"`

	// 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"`
}

NginxIngressControllerSpec defines the desired state of NginxIngressController

func (*NginxIngressControllerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerSpec.

func (*NginxIngressControllerSpec) DeepCopyInto

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"`

	// ControllerUnavailableReplicas is the number of unavailable replicas of the NGINX Ingress Controller deployment
	// +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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxIngressControllerStatus.

func (*NginxIngressControllerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Scaling

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

func (in *Scaling) DeepCopy() *Scaling

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scaling.

func (*Scaling) DeepCopyInto

func (in *Scaling) DeepCopyInto(out *Scaling)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Secret

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

func (in *Secret) DeepCopy() *Secret

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Threshold

type Threshold string
const (
	RapidThreshold    Threshold = "rapid"
	BalancedThreshold Threshold = "balanced"
	SteadyThreshold   Threshold = "steady"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL