Documentation
¶
Overview ¶
Package v1alpha3 contains API Schema definitions for the core v1alpha3 API group
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type Address
- type DomainRecord
- func (r *DomainRecord) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
- func (in *DomainRecord) DeepCopy() *DomainRecord
- func (in *DomainRecord) DeepCopyInto(out *DomainRecord)
- func (in *DomainRecord) DeepCopyObject() runtime.Object
- func (r *DomainRecord) Default()
- func (r *DomainRecord) GetGroupVersionResource() schema.GroupVersionResource
- func (r *DomainRecord) GetObjectMeta() *metav1.ObjectMeta
- func (r *DomainRecord) GetSingularName() string
- func (r *DomainRecord) GetStatus() resource.StatusSubResource
- func (r *DomainRecord) IsStorageVersion() bool
- func (r *DomainRecord) NamespaceScoped() bool
- func (r *DomainRecord) New() runtime.Object
- func (r *DomainRecord) NewList() runtime.Object
- func (r *DomainRecord) PrepareForCreate(ctx context.Context)
- func (r *DomainRecord) PrepareForUpdate(ctx context.Context, old runtime.Object)
- func (r *DomainRecord) TargetFieldKey() string
- func (r *DomainRecord) Validate(ctx context.Context) field.ErrorList
- func (r *DomainRecord) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList
- type DomainRecordList
- func (l *DomainRecordList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
- func (in *DomainRecordList) DeepCopy() *DomainRecordList
- func (in *DomainRecordList) DeepCopyInto(out *DomainRecordList)
- func (in *DomainRecordList) DeepCopyObject() runtime.Object
- func (l *DomainRecordList) GetListMeta() *metav1.ListMeta
- type DomainRecordPhase
- type DomainRecordSpec
- type DomainRecordStatus
- type DomainRecordTarget
- type DomainRecordTargetDNS
- type DomainTLSSpec
- type DomainZone
- func (dz *DomainZone) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
- func (in *DomainZone) DeepCopy() *DomainZone
- func (in *DomainZone) DeepCopyInto(out *DomainZone)
- func (in *DomainZone) DeepCopyObject() runtime.Object
- func (a *DomainZone) GetGroupVersionResource() schema.GroupVersionResource
- func (a *DomainZone) GetObjectMeta() *metav1.ObjectMeta
- func (a *DomainZone) GetSingularName() string
- func (a *DomainZone) GetStatus() resource.StatusSubResource
- func (a *DomainZone) IsStorageVersion() bool
- func (a *DomainZone) NamespaceScoped() bool
- func (a *DomainZone) New() runtime.Object
- func (a *DomainZone) NewList() runtime.Object
- type DomainZoneList
- func (dzl *DomainZoneList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
- func (in *DomainZoneList) DeepCopy() *DomainZoneList
- func (in *DomainZoneList) DeepCopyInto(out *DomainZoneList)
- func (in *DomainZoneList) DeepCopyObject() runtime.Object
- func (pl *DomainZoneList) GetListMeta() *metav1.ListMeta
- type DomainZonePhase
- type DomainZoneSpec
- type DomainZoneStatus
- type Group
- type Kind
- type LocalObjectReference
- type NameserverStatus
- type Namespace
- type ObjectName
- type Registrant
- type RegistrationConfig
- type RegistrationStatus
Constants ¶
const ( DomainRecordFinalizer = "domainrecord.core.apoxy.dev/finalizer" // DomainReplaceAnnotation enables atomic record-type changes. Because a // DomainRecord's target field key is immutable and its metadata.name is // derived from it, changing a record's type (e.g. A → CNAME) requires // creating a new object and deleting the old one. Setting this annotation // to the metadata.name of the old record allows the new record to be // created first — the admission webhook skips the compatibility check // for the named record, the controller syncs DNS for the new record // (excluding the old one from the desired state), deletes the old record, // and finally clears the annotation. If creation of the new record fails // for any reason, the old record remains untouched. DomainReplaceAnnotation = "core.apoxy.dev/replaces" )
const ( ReasonOwnershipVerifiedByTLS = "TLSCertificateIssued" ReasonOwnershipVerifiedByApoxyChallenge = "ApoxyChallengeConfigured" ReasonOwnershipVerifiedByCNAME = "CNAMEConfigured" ReasonOwnershipVerifiedByZone = "ZoneOwned" ReasonOwnershipNotVerified = "OwnershipNotVerified" )
Reasons for ConditionOwnershipVerified. Declared next to the condition so a rename cannot compile clean on one side of the wire contract only.
const ConditionOwnershipVerified = "OwnershipVerified"
ConditionOwnershipVerified is the DomainRecord status condition recording whether the customer has proven control of the hostname. Like the phase, it is wire contract between the producing apiserver and the consuming backplane: admission falls back to it on records without a phase.
const GroupName = "core.apoxy.dev"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Deprecated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha3"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha3"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type Address ¶
type Address struct {
// Address line 1.
// +optional
AddressLine1 string `json:"addressLine1,omitempty"`
// Address line 2.
// +optional
AddressLine2 string `json:"addressLine2,omitempty"`
// City.
// +optional
City string `json:"city,omitempty"`
// State or province.
// +optional
StateProvince string `json:"stateProvince,omitempty"`
// PostalCode or ZIP code.
// +optional
PostalCode string `json:"postalCode,omitempty"`
// Country code (ISO 3166-1 alpha-2).
// +optional
Country string `json:"country,omitempty"`
}
Address contains postal address information.
func (*Address) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Address.
func (*Address) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainRecord ¶
type DomainRecord struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DomainRecordSpec `json:"spec,omitempty"`
Status DomainRecordStatus `json:"status,omitempty"`
}
func (*DomainRecord) ConvertToTable ¶
func (r *DomainRecord) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
ConvertToTable implements rest.TableConvertor for DomainRecord.
func (*DomainRecord) DeepCopy ¶
func (in *DomainRecord) DeepCopy() *DomainRecord
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecord.
func (*DomainRecord) DeepCopyInto ¶
func (in *DomainRecord) DeepCopyInto(out *DomainRecord)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainRecord) DeepCopyObject ¶
func (in *DomainRecord) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DomainRecord) Default ¶
func (r *DomainRecord) Default()
Default sets the default values for a DomainRecord.
func (*DomainRecord) GetGroupVersionResource ¶
func (r *DomainRecord) GetGroupVersionResource() schema.GroupVersionResource
func (*DomainRecord) GetObjectMeta ¶
func (r *DomainRecord) GetObjectMeta() *metav1.ObjectMeta
func (*DomainRecord) GetSingularName ¶
func (r *DomainRecord) GetSingularName() string
func (*DomainRecord) GetStatus ¶
func (r *DomainRecord) GetStatus() resource.StatusSubResource
func (*DomainRecord) IsStorageVersion ¶
func (r *DomainRecord) IsStorageVersion() bool
func (*DomainRecord) NamespaceScoped ¶
func (r *DomainRecord) NamespaceScoped() bool
func (*DomainRecord) New ¶
func (r *DomainRecord) New() runtime.Object
func (*DomainRecord) NewList ¶
func (r *DomainRecord) NewList() runtime.Object
func (*DomainRecord) PrepareForCreate ¶
func (r *DomainRecord) PrepareForCreate(ctx context.Context)
PrepareForCreate derives metadata.name from spec when the user omits it and sets status.type from the populated DNS field.
func (*DomainRecord) PrepareForUpdate ¶
func (r *DomainRecord) PrepareForUpdate(ctx context.Context, old runtime.Object)
PrepareForUpdate re-derives status.type on updates.
func (*DomainRecord) TargetFieldKey ¶
func (r *DomainRecord) TargetFieldKey() string
TargetFieldKey returns the canonical target field key for a DomainRecord: "ref" for Ref targets, or the DNS field key (e.g. "a", "fqdn").
func (*DomainRecord) Validate ¶
func (r *DomainRecord) Validate(ctx context.Context) field.ErrorList
func (*DomainRecord) ValidateUpdate ¶
type DomainRecordList ¶
type DomainRecordList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DomainRecord `json:"items"`
}
DomainRecordList is a list of DomainRecord resources.
func (*DomainRecordList) ConvertToTable ¶
func (l *DomainRecordList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
ConvertToTable implements rest.TableConvertor for DomainRecordList.
func (*DomainRecordList) DeepCopy ¶
func (in *DomainRecordList) DeepCopy() *DomainRecordList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecordList.
func (*DomainRecordList) DeepCopyInto ¶
func (in *DomainRecordList) DeepCopyInto(out *DomainRecordList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainRecordList) DeepCopyObject ¶
func (in *DomainRecordList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DomainRecordList) GetListMeta ¶
func (l *DomainRecordList) GetListMeta() *metav1.ListMeta
type DomainRecordPhase ¶
type DomainRecordPhase string
DomainRecordPhase is the lifecycle state of a DomainRecord. It is the single field the data plane keys on (via Admitted) and the one customers read for "where is my domain"; conditions remain the per-fact observation log that explains why the record is in a given phase and when it got there.
The phase is a function of DNS ownership proof, certificate existence, and cutover — deliberately NOT of backend health. A record with a dead backend is still Active; TargetReady reports the 502s. Folding health into lifecycle state is what caused the 2026-07-24 fleet de-verification.
Transitions require affirmative observations: a pass where a probe is indeterminate (DNS resolvers or cosmos unreachable) holds the current phase rather than regressing it.
const ( // DomainRecordPhasePending means no ownership proof has been observed // yet: no main CNAME, no challenge delegation, no owned certificate. DomainRecordPhasePending DomainRecordPhase = "Pending" // DomainRecordPhaseIssuing means an ownership proof is in place and a // certificate is being minted (first issuance, or re-issuance after the // stored certificate lapsed). Admitted: the ACME HTTP-01 challenge that // completes issuance is served over plaintext :80 through our gateway, // so the hostname must already be routable. DomainRecordPhaseIssuing DomainRecordPhase = "Issuing" // DomainRecordPhaseActive means ownership is proven and (for TLS records) // a certificate is stored: everything on our side is done and traffic // serves the moment it arrives. Whether the customer's main CNAME has // actually been cut over is customer-side DNS state, reported by the // CNAMEConfigured condition — a pre-issued record awaiting cutover is // Active with CNAMEConfigured=False. DomainRecordPhaseActive DomainRecordPhase = "Active" // DomainRecordPhaseDetached means every ownership proof has been // affirmatively withdrawn after the record was previously proven: no // live DNS proof and no unexpired certificate. Not admitted — this is // the state that releases the hostname for its next owner. DomainRecordPhaseDetached DomainRecordPhase = "Detached" )
func (DomainRecordPhase) Admitted ¶
func (p DomainRecordPhase) Admitted() bool
Admitted reports whether a record in this phase belongs in the data plane: HTTPRoute hostname admission, SNI trie membership, and cross-project claim checks all key on exactly this predicate. It lives on the type so producers and consumers — deployed independently — share one definition instead of re-deriving membership from condition strings.
type DomainRecordSpec ¶
type DomainRecordSpec struct {
// Zone is the name of the DomainZone that manages this record.
// Optional - empty means standalone (custom domain, not zone-managed).
// +optional
Zone string `json:"zone,omitempty"`
// Name is the DNS record name (e.g. "example.com", "www.example.com").
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
Name string `json:"name"`
// TTL in seconds. Optional, defaults to 300.
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=86400
// +optional
TTL *int32 `json:"ttl,omitempty"`
// Target specifies the record data.
// +kubebuilder:validation:Required
Target DomainRecordTarget `json:"target"`
// TLS configures TLS certificate provisioning for this record's domains.
// Only valid when target.ref is set.
// +optional
TLS *DomainTLSSpec `json:"tls,omitempty"`
}
func (*DomainRecordSpec) DeepCopy ¶
func (in *DomainRecordSpec) DeepCopy() *DomainRecordSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecordSpec.
func (*DomainRecordSpec) DeepCopyInto ¶
func (in *DomainRecordSpec) DeepCopyInto(out *DomainRecordSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainRecordStatus ¶
type DomainRecordStatus struct {
// Type is the resolved DNS record type (A, AAAA, CNAME, TXT, MX, etc.).
// Derived from the populated DNS field or resolved from ref.
// +optional
Type string `json:"type,omitempty"`
// Phase is the record's lifecycle state. Empty on records that have not
// been reconciled by a phase-aware controller yet; consumers fall back to
// conditions in that case.
// +optional
Phase DomainRecordPhase `json:"phase,omitempty"`
// Conditions contains domain record conditions.
// Standard conditions: Ready, ZoneReady, TargetReady.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ResolvedValues contains the actual DNS values configured.
// Populated by the controller when target.ref is used.
// +optional
ResolvedValues []string `json:"resolvedValues,omitempty"`
}
func (*DomainRecordStatus) CopyTo ¶
func (s *DomainRecordStatus) CopyTo(obj resource.ObjectWithStatusSubResource)
func (*DomainRecordStatus) DeepCopy ¶
func (in *DomainRecordStatus) DeepCopy() *DomainRecordStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecordStatus.
func (*DomainRecordStatus) DeepCopyInto ¶
func (in *DomainRecordStatus) DeepCopyInto(out *DomainRecordStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainRecordStatus) SubResourceName ¶
func (s *DomainRecordStatus) SubResourceName() string
type DomainRecordTarget ¶
type DomainRecordTarget struct {
// DNS specifies the record data directly.
// Exactly one of DNS or Ref must be set.
// +optional
DNS *DomainRecordTargetDNS `json:"dns,omitempty"`
// Ref specifies a reference to another object within Apoxy
// (e.g. Proxy, Gateway, DomainRecord).
// Exactly one of DNS or Ref must be set.
// +optional
Ref *LocalObjectReference `json:"ref,omitempty"`
}
func (*DomainRecordTarget) DeepCopy ¶
func (in *DomainRecordTarget) DeepCopy() *DomainRecordTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecordTarget.
func (*DomainRecordTarget) DeepCopyInto ¶
func (in *DomainRecordTarget) DeepCopyInto(out *DomainRecordTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainRecordTargetDNS ¶
type DomainRecordTargetDNS struct {
// A holds IPv4 A record addresses.
// +optional
A []string `json:"a,omitempty"`
// AAAA holds IPv6 AAAA record addresses.
// +optional
AAAA []string `json:"aaaa,omitempty"`
// FQDN holds a CNAME record target.
// +optional
FQDN *string `json:"fqdn,omitempty"`
// TXT holds TXT record values.
// +optional
TXT []string `json:"txt,omitempty"`
// MX holds Mail Exchange record values (e.g. "10 mail.example.com").
// +optional
MX []string `json:"mx,omitempty"`
// DKIM holds DKIM (DomainKeys Identified Mail) values.
// Values should be DKIM public key records (e.g. "v=DKIM1; k=rsa; p=...").
// +optional
DKIM []string `json:"dkim,omitempty"`
// SPF holds SPF (Sender Policy Framework) values.
// Values should follow SPF syntax (e.g. "v=spf1 include:_spf.google.com ~all").
// +optional
SPF []string `json:"spf,omitempty"`
// DMARC holds DMARC values.
// Values should follow DMARC syntax (e.g. "v=DMARC1; p=reject; rua=mailto:...").
// +optional
DMARC []string `json:"dmarc,omitempty"`
// CAA holds Certification Authority Authorization record values.
// +optional
CAA []string `json:"caa,omitempty"`
// SRV holds Service Locator record values.
// +optional
SRV []string `json:"srv,omitempty"`
// NS holds Name Server record values.
// +optional
NS []string `json:"ns,omitempty"`
// DS holds DS (Delegation Signer) records for DNSSEC chain of trust.
// Values should be DS record data (e.g. "12345 8 2 <digest>").
// +optional
DS []string `json:"ds,omitempty"`
// DNSKEY holds DNSKEY records for DNSSEC.
// Values should be DNSKEY record data (e.g. "257 3 8 <base64-encoded-key>").
// +optional
DNSKEY []string `json:"dnskey,omitempty"`
}
DomainRecordTargetDNS specifies DNS record data. Exactly one field must be populated. The populated field determines the DNS record type.
func (*DomainRecordTargetDNS) DNSFieldKey ¶
func (d *DomainRecordTargetDNS) DNSFieldKey() string
DNSFieldKey returns the key identifying which DNS field is populated. Returns empty string if no field is populated.
func (*DomainRecordTargetDNS) DeepCopy ¶
func (in *DomainRecordTargetDNS) DeepCopy() *DomainRecordTargetDNS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainRecordTargetDNS.
func (*DomainRecordTargetDNS) DeepCopyInto ¶
func (in *DomainRecordTargetDNS) DeepCopyInto(out *DomainRecordTargetDNS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainRecordTargetDNS) PopulatedFieldCount ¶
func (d *DomainRecordTargetDNS) PopulatedFieldCount() int
PopulatedFieldCount returns the number of populated DNS fields.
type DomainTLSSpec ¶
type DomainTLSSpec struct {
// The Certificate Authority used to issue the TLS certificate.
// Currently supports "letsencrypt".
// +optional
CertificateAuthority string `json:"certificateAuthority,omitempty"`
// Disabled turns off certificate provisioning for this domain, leaving it
// served over plain HTTP.
//
// TLS is the default for every ref target — omitting the whole `tls` block
// gets you a managed certificate — so this field is the only way to ask
// for an HTTP-only hostname. Use it when traffic must flow before a
// certificate can exist: during a migration you can prove ownership with
// the `_apoxy-challenge` delegation, serve HTTP immediately, then clear
// this field to have the certificate issued.
//
// A domain that already holds a certificate keeps serving it until the
// certificate is removed; setting this only stops future issuance and
// renewal.
// +optional
Disabled bool `json:"disabled,omitempty"`
}
DomainTLSSpec configures TLS certificate provisioning for a domain.
func (*DomainTLSSpec) DeepCopy ¶
func (in *DomainTLSSpec) DeepCopy() *DomainTLSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainTLSSpec.
func (*DomainTLSSpec) DeepCopyInto ¶
func (in *DomainTLSSpec) DeepCopyInto(out *DomainTLSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainTLSSpec) Enabled ¶
func (s *DomainTLSSpec) Enabled() bool
Enabled reports whether Apoxy should provision and serve a certificate for this domain. A nil spec means no TLS at all (the shape non-ref targets carry); a present spec means TLS unless it was explicitly disabled.
type DomainZone ¶
type DomainZone struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DomainZoneSpec `json:"spec,omitempty"`
Status DomainZoneStatus `json:"status,omitempty"`
}
+genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*DomainZone) ConvertToTable ¶
func (dz *DomainZone) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
ConvertToTable implements rest.TableConvertor for pretty printing.
func (*DomainZone) DeepCopy ¶
func (in *DomainZone) DeepCopy() *DomainZone
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainZone.
func (*DomainZone) DeepCopyInto ¶
func (in *DomainZone) DeepCopyInto(out *DomainZone)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainZone) DeepCopyObject ¶
func (in *DomainZone) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DomainZone) GetGroupVersionResource ¶
func (a *DomainZone) GetGroupVersionResource() schema.GroupVersionResource
func (*DomainZone) GetObjectMeta ¶
func (a *DomainZone) GetObjectMeta() *metav1.ObjectMeta
func (*DomainZone) GetSingularName ¶
func (a *DomainZone) GetSingularName() string
func (*DomainZone) GetStatus ¶
func (a *DomainZone) GetStatus() resource.StatusSubResource
func (*DomainZone) IsStorageVersion ¶
func (a *DomainZone) IsStorageVersion() bool
func (*DomainZone) NamespaceScoped ¶
func (a *DomainZone) NamespaceScoped() bool
func (*DomainZone) New ¶
func (a *DomainZone) New() runtime.Object
func (*DomainZone) NewList ¶
func (a *DomainZone) NewList() runtime.Object
type DomainZoneList ¶
type DomainZoneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DomainZone `json:"items"`
}
DomainZoneList is a list of Domain resources.
func (*DomainZoneList) ConvertToTable ¶
func (dzl *DomainZoneList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)
ConvertToTable implements rest.TableConvertor for pretty printing.
func (*DomainZoneList) DeepCopy ¶
func (in *DomainZoneList) DeepCopy() *DomainZoneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainZoneList.
func (*DomainZoneList) DeepCopyInto ¶
func (in *DomainZoneList) DeepCopyInto(out *DomainZoneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainZoneList) DeepCopyObject ¶
func (in *DomainZoneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DomainZoneList) GetListMeta ¶
func (pl *DomainZoneList) GetListMeta() *metav1.ListMeta
type DomainZonePhase ¶
type DomainZonePhase string
DomainZonePhase is the phase of the domain zone.
const ( // Indicates that the domain zone is pending. // In order to become active, the domain owner must update the // nameservers with the registrar to point to the Apoxy nameservers. DomainZonePhasePending DomainZonePhase = "Pending" // PaymentRequired indicates that payment is required for domain registration. DomainZonePhasePaymentRequired DomainZonePhase = "PaymentRequired" // Registering indicates that domain registration is in progress. DomainZonePhaseRegistering DomainZonePhase = "Registering" // PendingNameservers indicates that the domain is registered but nameservers need to be updated. DomainZonePhasePendingNameservers DomainZonePhase = "PendingNameservers" // Active phase of the domain zone. User can create records in the domain zone. DomainZonePhaseActive DomainZonePhase = "Active" // Expiring indicates that the domain is expiring soon and needs renewal. DomainZonePhaseExpiring DomainZonePhase = "Expiring" // Expired indicates that the domain has expired. DomainZonePhaseExpired DomainZonePhase = "Expired" // Error indicates that an unrecoverable error occurred. DomainZonePhaseError DomainZonePhase = "Error" )
type DomainZoneSpec ¶
type DomainZoneSpec struct {
// RegistrationConfig contains configuration for domain registration.
// +optional
RegistrationConfig *RegistrationConfig `json:"registrationConfig,omitempty"`
// Nameservers to use for this domain zone.
// If not specified, defaults to Apoxy's nameservers.
// +optional
Nameservers []string `json:"nameservers,omitempty"`
}
func (*DomainZoneSpec) DeepCopy ¶
func (in *DomainZoneSpec) DeepCopy() *DomainZoneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainZoneSpec.
func (*DomainZoneSpec) DeepCopyInto ¶
func (in *DomainZoneSpec) DeepCopyInto(out *DomainZoneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainZoneStatus ¶
type DomainZoneStatus struct {
// Phase of the domain zone.
Phase DomainZonePhase `json:"phase,omitempty"`
// RegistrationStatus contains information about domain registration.
// +optional
RegistrationStatus *RegistrationStatus `json:"registrationStatus,omitempty"`
// Nameservers contains information about nameserver configuration.
// +optional
Nameservers *NameserverStatus `json:"nameservers,omitempty"`
// Conditions of the domain zone.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
func (*DomainZoneStatus) CopyTo ¶
func (as *DomainZoneStatus) CopyTo(obj resource.ObjectWithStatusSubResource)
func (*DomainZoneStatus) DeepCopy ¶
func (in *DomainZoneStatus) DeepCopy() *DomainZoneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainZoneStatus.
func (*DomainZoneStatus) DeepCopyInto ¶
func (in *DomainZoneStatus) DeepCopyInto(out *DomainZoneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainZoneStatus) SubResourceName ¶
func (as *DomainZoneStatus) SubResourceName() string
type Group ¶
type Group string
Group refers to an API Group. It must either be an empty string or a RFC 1123 subdomain.
This validation is based off of the corresponding Kubernetes validation: https://github.com/kubernetes/apimachinery/blob/02cfb53916346d085a6c6c7c66f882e3c6b0eca6/pkg/util/validation/validation.go#L208
Valid values include:
* "" - empty string implies core Kubernetes API group * "gateway.networking.k8s.io" * "controllers.apoxy.dev"
Invalid values include:
* "example.com/bar" - "/" is an invalid character
+kubebuilder:validation:MaxLength=253 +kubebuilder:validation:Pattern=`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
type Kind ¶
type Kind string
Kind refers to an API Kind. It must be a valid Kubernetes kind.
Valid values include:
* "Service" * "HTTPRoute" * "Proxy"
Invalid values include:
* "invalid/kind" - "/" is an invalid character
+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63 +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`
type LocalObjectReference ¶
type LocalObjectReference struct {
// Group is the API Group of the referenced object.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
Group Group `json:"group"`
// Kind is the kind of the referenced object.
// e.g. Proxy, EdgeFunction, TunnelEndpoint.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9-]*$`
Kind Kind `json:"kind"`
// Name is the name of the referenced object.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9-]*$`
Name ObjectName `json:"name"`
}
LocalObjectReference identifies an API object.
func (*LocalObjectReference) DeepCopy ¶
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
func (*LocalObjectReference) DeepCopyInto ¶
func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NameserverStatus ¶
type NameserverStatus struct {
// Required nameservers that should be configured.
// +optional
Required []string `json:"required,omitempty"`
// Current nameservers that are actually configured.
// +optional
Current []string `json:"current,omitempty"`
}
NameserverStatus contains information about nameserver configuration.
func (*NameserverStatus) DeepCopy ¶
func (in *NameserverStatus) DeepCopy() *NameserverStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NameserverStatus.
func (*NameserverStatus) DeepCopyInto ¶
func (in *NameserverStatus) DeepCopyInto(out *NameserverStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Namespace ¶
type Namespace string
Namespace refers to a Kubernetes namespace. It must be a RFC 1123 label.
+kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63
type ObjectName ¶
type ObjectName string
ObjectName refers to the name of an API object. It must be a valid Kubernetes name.
Object names can have a variety of forms, including RFC 1123 subdomains, RFC 1123 labels, or RFC 1035 labels.
+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=253
type Registrant ¶
type Registrant struct {
// FirstName of the registrant.
// +optional
FirstName string `json:"firstName,omitempty"`
// LastName of the registrant.
// +optional
LastName string `json:"lastName,omitempty"`
// Email of the registrant.
// +optional
Email string `json:"email,omitempty"`
// Phone number of the registrant.
// +optional
Phone string `json:"phone,omitempty"`
// Organization of the registrant.
// +optional
Organization string `json:"organization,omitempty"`
// Address of the registrant.
// +optional
Address *Address `json:"address,omitempty"`
}
Registrant contains contact information for domain registration.
func (*Registrant) DeepCopy ¶
func (in *Registrant) DeepCopy() *Registrant
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Registrant.
func (*Registrant) DeepCopyInto ¶
func (in *Registrant) DeepCopyInto(out *Registrant)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistrationConfig ¶
type RegistrationConfig struct {
// AutoRenew indicates whether the domain should be automatically renewed.
// +optional
AutoRenew bool `json:"autoRenew,omitempty"`
// RegistrationPeriodYears is the number of years to register the domain for.
// +optional
RegistrationPeriodYears int `json:"registrationPeriodYears,omitempty"`
// Registrant contains the registrant contact information.
// +optional
Registrant *Registrant `json:"registrant,omitempty"`
}
RegistrationConfig contains configuration for domain registration.
func (*RegistrationConfig) DeepCopy ¶
func (in *RegistrationConfig) DeepCopy() *RegistrationConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrationConfig.
func (*RegistrationConfig) DeepCopyInto ¶
func (in *RegistrationConfig) DeepCopyInto(out *RegistrationConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistrationStatus ¶
type RegistrationStatus struct {
// RegistrationID is the unique identifier for the registration.
// +optional
RegistrationID string `json:"registrationID,omitempty"`
// EstimatedCost is the estimated cost for registration or renewal.
// +optional
EstimatedCost string `json:"estimatedCost,omitempty"`
// PaymentURL is the URL to complete payment for registration or renewal.
// +optional
PaymentURL string `json:"paymentURL,omitempty"`
// RegisteredAt is the time when the domain was registered.
// +optional
RegisteredAt *metav1.Time `json:"registeredAt,omitempty"`
// ExpiresAt is the time when the domain registration expires.
// +optional
ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`
// Error contains error information if registration failed.
// +optional
Error string `json:"error,omitempty"`
}
RegistrationStatus contains information about domain registration.
func (*RegistrationStatus) DeepCopy ¶
func (in *RegistrationStatus) DeepCopy() *RegistrationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrationStatus.
func (*RegistrationStatus) DeepCopyInto ¶
func (in *RegistrationStatus) DeepCopyInto(out *RegistrationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.