Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the spire v1alpha1 API group +kubebuilder:object:generate=true +groupName=spire.spiffe.io
Index ¶
- Constants
- Variables
- func LoadOptionsFromFile(path string, scheme *runtime.Scheme, options *ctrl.Options, ...) error
- func ParseClusterFederatedTrustDomainSpec(spec *ClusterFederatedTrustDomainSpec) (*spireapi.FederationRelationship, error)
- type BundleEndpointProfile
- type BundleEndpointProfileType
- type ClusterFederatedTrustDomain
- func (in *ClusterFederatedTrustDomain) DeepCopy() *ClusterFederatedTrustDomain
- func (in *ClusterFederatedTrustDomain) DeepCopyInto(out *ClusterFederatedTrustDomain)
- func (in *ClusterFederatedTrustDomain) DeepCopyObject() runtime.Object
- func (r *ClusterFederatedTrustDomain) SetupWebhookWithManager(mgr ctrl.Manager) error
- type ClusterFederatedTrustDomainCustomValidator
- func (in *ClusterFederatedTrustDomainCustomValidator) DeepCopy() *ClusterFederatedTrustDomainCustomValidator
- func (in *ClusterFederatedTrustDomainCustomValidator) DeepCopyInto(out *ClusterFederatedTrustDomainCustomValidator)
- func (r *ClusterFederatedTrustDomainCustomValidator) ValidateCreate(_ context.Context, obj *ClusterFederatedTrustDomain) (admission.Warnings, error)
- func (r *ClusterFederatedTrustDomainCustomValidator) ValidateDelete(context.Context, *ClusterFederatedTrustDomain) (admission.Warnings, error)
- func (r *ClusterFederatedTrustDomainCustomValidator) ValidateUpdate(_ context.Context, _ *ClusterFederatedTrustDomain, ...) (admission.Warnings, error)
- type ClusterFederatedTrustDomainList
- type ClusterFederatedTrustDomainSpec
- type ClusterFederatedTrustDomainStatus
- type ClusterSPIFFEID
- type ClusterSPIFFEIDCustomValidator
- func (in *ClusterSPIFFEIDCustomValidator) DeepCopy() *ClusterSPIFFEIDCustomValidator
- func (in *ClusterSPIFFEIDCustomValidator) DeepCopyInto(out *ClusterSPIFFEIDCustomValidator)
- func (r *ClusterSPIFFEIDCustomValidator) ValidateCreate(_ context.Context, obj *ClusterSPIFFEID) (admission.Warnings, error)
- func (r *ClusterSPIFFEIDCustomValidator) ValidateDelete(context.Context, *ClusterSPIFFEID) (admission.Warnings, error)
- func (r *ClusterSPIFFEIDCustomValidator) ValidateUpdate(_ context.Context, _ *ClusterSPIFFEID, nobj *ClusterSPIFFEID) (admission.Warnings, error)
- type ClusterSPIFFEIDList
- type ClusterSPIFFEIDSpec
- type ClusterSPIFFEIDStats
- type ClusterSPIFFEIDStatus
- type ClusterStaticEntry
- type ClusterStaticEntryList
- type ClusterStaticEntrySpec
- type ClusterStaticEntryStatus
- type ControllerConfigurationSpec
- type ControllerHealth
- type ControllerManagerConfig
- type ControllerManagerConfigurationSpec
- type ControllerMetrics
- type ControllerWebhook
- type NamespaceConfig
- type ParsedClusterSPIFFEIDSpec
- type ReconcileConfig
Constants ¶
const GroupName = "spire.spiffe.io"
Variables ¶
var ( SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func LoadOptionsFromFile ¶ added in v0.2.3
func ParseClusterFederatedTrustDomainSpec ¶
func ParseClusterFederatedTrustDomainSpec(spec *ClusterFederatedTrustDomainSpec) (*spireapi.FederationRelationship, error)
Types ¶
type BundleEndpointProfile ¶
type BundleEndpointProfile struct {
// Type is the type of the bundle endpoint profile.
Type BundleEndpointProfileType `json:"type"`
// EndpointSPIFFEID is the SPIFFE ID of the bundle endpoint. It is
// required for the "https_spiffe" profile.
// +kubebuilder:validation:Optional
EndpointSPIFFEID string `json:"endpointSPIFFEID,omitempty"`
}
BundleEndpointProfile is the profile for the federated trust domain
func (*BundleEndpointProfile) DeepCopy ¶
func (in *BundleEndpointProfile) DeepCopy() *BundleEndpointProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BundleEndpointProfile.
func (*BundleEndpointProfile) DeepCopyInto ¶
func (in *BundleEndpointProfile) DeepCopyInto(out *BundleEndpointProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BundleEndpointProfileType ¶
type BundleEndpointProfileType string
+kubebuilder:validation:Enum=https_spiffe;https_web
const ( // HTTPSSPIFFEProfileType indicates an "https_spiffe" SPIFFE federation profile HTTPSSPIFFEProfileType BundleEndpointProfileType = "https_spiffe" // HTTPSWebProfileType indicates an "https_web" SPIFFE federation profile HTTPSWebProfileType BundleEndpointProfileType = "https_web" )
type ClusterFederatedTrustDomain ¶
type ClusterFederatedTrustDomain struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec ClusterFederatedTrustDomainSpec `json:"spec"`
// +optional
Status ClusterFederatedTrustDomainStatus `json:"status"`
}
+kubebuilder:printcolumn:name="Trust Domain",type=string,JSONPath=`.spec.trustDomain` +kubebuilder:printcolumn:name="Endpoint URL",type=string,JSONPath=`.spec.bundleEndpointURL` ClusterFederatedTrustDomain is the Schema for the clusterfederatedtrustdomains API
func ListClusterFederatedTrustDomains ¶ added in v0.6.2
func LoadClusterFederatedTrustDomainFile ¶ added in v0.6.3
func (*ClusterFederatedTrustDomain) DeepCopy ¶
func (in *ClusterFederatedTrustDomain) DeepCopy() *ClusterFederatedTrustDomain
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterFederatedTrustDomain.
func (*ClusterFederatedTrustDomain) DeepCopyInto ¶
func (in *ClusterFederatedTrustDomain) DeepCopyInto(out *ClusterFederatedTrustDomain)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterFederatedTrustDomain) DeepCopyObject ¶
func (in *ClusterFederatedTrustDomain) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterFederatedTrustDomain) SetupWebhookWithManager ¶
func (r *ClusterFederatedTrustDomain) SetupWebhookWithManager(mgr ctrl.Manager) error
type ClusterFederatedTrustDomainCustomValidator ¶ added in v0.6.2
type ClusterFederatedTrustDomainCustomValidator struct {
}
func (*ClusterFederatedTrustDomainCustomValidator) DeepCopy ¶ added in v0.6.2
func (in *ClusterFederatedTrustDomainCustomValidator) DeepCopy() *ClusterFederatedTrustDomainCustomValidator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterFederatedTrustDomainCustomValidator.
func (*ClusterFederatedTrustDomainCustomValidator) DeepCopyInto ¶ added in v0.6.2
func (in *ClusterFederatedTrustDomainCustomValidator) DeepCopyInto(out *ClusterFederatedTrustDomainCustomValidator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterFederatedTrustDomainCustomValidator) ValidateCreate ¶ added in v0.6.2
func (r *ClusterFederatedTrustDomainCustomValidator) ValidateCreate(_ context.Context, obj *ClusterFederatedTrustDomain) (admission.Warnings, error)
ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type
func (*ClusterFederatedTrustDomainCustomValidator) ValidateDelete ¶ added in v0.6.2
func (r *ClusterFederatedTrustDomainCustomValidator) ValidateDelete(context.Context, *ClusterFederatedTrustDomain) (admission.Warnings, error)
ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type
func (*ClusterFederatedTrustDomainCustomValidator) ValidateUpdate ¶ added in v0.6.2
func (r *ClusterFederatedTrustDomainCustomValidator) ValidateUpdate(_ context.Context, _ *ClusterFederatedTrustDomain, nobj *ClusterFederatedTrustDomain) (admission.Warnings, error)
ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type
type ClusterFederatedTrustDomainList ¶
type ClusterFederatedTrustDomainList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []ClusterFederatedTrustDomain `json:"items"`
}
ClusterFederatedTrustDomainList contains a list of ClusterFederatedTrustDomain
func (*ClusterFederatedTrustDomainList) DeepCopy ¶
func (in *ClusterFederatedTrustDomainList) DeepCopy() *ClusterFederatedTrustDomainList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterFederatedTrustDomainList.
func (*ClusterFederatedTrustDomainList) DeepCopyInto ¶
func (in *ClusterFederatedTrustDomainList) DeepCopyInto(out *ClusterFederatedTrustDomainList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterFederatedTrustDomainList) DeepCopyObject ¶
func (in *ClusterFederatedTrustDomainList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterFederatedTrustDomainSpec ¶
type ClusterFederatedTrustDomainSpec struct {
// TrustDomain is the name of the trust domain to federate with (e.g. example.org)
// +kubebuilder:validation:Pattern="[a-z0-9._-]{1,255}"
TrustDomain string `json:"trustDomain"`
// BundleEndpointURL is the URL of the bundle endpoint. It must be an
// HTTPS URL and cannot contain userinfo (i.e. username/password).
BundleEndpointURL string `json:"bundleEndpointURL"`
// BundleEndpointProfile is the profile for the bundle endpoint.
BundleEndpointProfile BundleEndpointProfile `json:"bundleEndpointProfile"`
// TrustDomainBundle is the contents of the bundle for the referenced trust
// domain. This field is optional when the resource is created.
// +kubebuilder:validation:Optional
TrustDomainBundle string `json:"trustDomainBundle,omitempty"`
// Set which Controller Class will act on this object
// +kubebuilder:validation:Optional
ClassName string `json:"className,omitempty"`
}
ClusterFederatedTrustDomainSpec defines the desired state of ClusterFederatedTrustDomain
func (*ClusterFederatedTrustDomainSpec) DeepCopy ¶
func (in *ClusterFederatedTrustDomainSpec) DeepCopy() *ClusterFederatedTrustDomainSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterFederatedTrustDomainSpec.
func (*ClusterFederatedTrustDomainSpec) DeepCopyInto ¶
func (in *ClusterFederatedTrustDomainSpec) DeepCopyInto(out *ClusterFederatedTrustDomainSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterFederatedTrustDomainStatus ¶
type ClusterFederatedTrustDomainStatus struct {
}
ClusterFederatedTrustDomainStatus defines the observed state of ClusterFederatedTrustDomain
func (*ClusterFederatedTrustDomainStatus) DeepCopy ¶
func (in *ClusterFederatedTrustDomainStatus) DeepCopy() *ClusterFederatedTrustDomainStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterFederatedTrustDomainStatus.
func (*ClusterFederatedTrustDomainStatus) DeepCopyInto ¶
func (in *ClusterFederatedTrustDomainStatus) DeepCopyInto(out *ClusterFederatedTrustDomainStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSPIFFEID ¶
type ClusterSPIFFEID struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec ClusterSPIFFEIDSpec `json:"spec"`
// +optional
Status ClusterSPIFFEIDStatus `json:"status"`
}
ClusterSPIFFEID is the Schema for the clusterspiffeids API
func (*ClusterSPIFFEID) DeepCopy ¶
func (in *ClusterSPIFFEID) DeepCopy() *ClusterSPIFFEID
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEID.
func (*ClusterSPIFFEID) DeepCopyInto ¶
func (in *ClusterSPIFFEID) DeepCopyInto(out *ClusterSPIFFEID)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSPIFFEID) DeepCopyObject ¶
func (in *ClusterSPIFFEID) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterSPIFFEID) SetupWebhookWithManager ¶
func (r *ClusterSPIFFEID) SetupWebhookWithManager(mgr ctrl.Manager) error
type ClusterSPIFFEIDCustomValidator ¶ added in v0.6.2
type ClusterSPIFFEIDCustomValidator struct {
}
func (*ClusterSPIFFEIDCustomValidator) DeepCopy ¶ added in v0.6.2
func (in *ClusterSPIFFEIDCustomValidator) DeepCopy() *ClusterSPIFFEIDCustomValidator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEIDCustomValidator.
func (*ClusterSPIFFEIDCustomValidator) DeepCopyInto ¶ added in v0.6.2
func (in *ClusterSPIFFEIDCustomValidator) DeepCopyInto(out *ClusterSPIFFEIDCustomValidator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSPIFFEIDCustomValidator) ValidateCreate ¶ added in v0.6.2
func (r *ClusterSPIFFEIDCustomValidator) ValidateCreate(_ context.Context, obj *ClusterSPIFFEID) (admission.Warnings, error)
ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type
func (*ClusterSPIFFEIDCustomValidator) ValidateDelete ¶ added in v0.6.2
func (r *ClusterSPIFFEIDCustomValidator) ValidateDelete(context.Context, *ClusterSPIFFEID) (admission.Warnings, error)
ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type
func (*ClusterSPIFFEIDCustomValidator) ValidateUpdate ¶ added in v0.6.2
func (r *ClusterSPIFFEIDCustomValidator) ValidateUpdate(_ context.Context, _ *ClusterSPIFFEID, nobj *ClusterSPIFFEID) (admission.Warnings, error)
ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type
type ClusterSPIFFEIDList ¶
type ClusterSPIFFEIDList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []ClusterSPIFFEID `json:"items"`
}
ClusterSPIFFEIDList contains a list of ClusterSPIFFEID
func (*ClusterSPIFFEIDList) DeepCopy ¶
func (in *ClusterSPIFFEIDList) DeepCopy() *ClusterSPIFFEIDList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEIDList.
func (*ClusterSPIFFEIDList) DeepCopyInto ¶
func (in *ClusterSPIFFEIDList) DeepCopyInto(out *ClusterSPIFFEIDList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSPIFFEIDList) DeepCopyObject ¶
func (in *ClusterSPIFFEIDList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterSPIFFEIDSpec ¶
type ClusterSPIFFEIDSpec struct {
// SPIFFEID is the SPIFFE ID template. The node and pod spec are made
// available to the template under .NodeSpec, .PodSpec respectively.
SPIFFEIDTemplate string `json:"spiffeIDTemplate"`
// TTL indicates an upper-bound time-to-live for X509 SVIDs minted for this
// ClusterSPIFFEID. If unset, a default will be chosen.
TTL metav1.Duration `json:"ttl,omitempty"`
// JWTTTL indicates an upper-bound time-to-live for JWT SVIDs minted for this
// ClusterSPIFFEID.
JWTTTL metav1.Duration `json:"jwtTtl,omitempty"`
// DNSNameTemplate represents templates for extra DNS names that are
// applicable to SVIDs minted for this ClusterSPIFFEID.
// The node and pod spec are made available to the template under
// .NodeSpec, .PodSpec respectively.
DNSNameTemplates []string `json:"dnsNameTemplates,omitempty"`
// WorkloadSelectorTemplates are templates to produce arbitrary workload
// selectors that apply to a given workload before it will receive this
// SPIFFE ID. The rendered value is interpreted by SPIRE and are of the
// form type:value, where the value may, and often does, contain
// semicolons, .e.g., k8s:container-image:docker/hello-world
// The node and pod spec are made available to the template under
// .NodeSpec, .PodSpec respectively.
WorkloadSelectorTemplates []string `json:"workloadSelectorTemplates,omitempty"`
// FederatesWith is a list of trust domain names that workloads that
// obtain this SPIFFE ID will federate with.
FederatesWith []string `json:"federatesWith,omitempty"`
// NamespaceSelector selects the namespaces that are targeted by this
// CRD.
NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
// PodSelector selects the pods that are targeted by this
// CRD.
PodSelector *metav1.LabelSelector `json:"podSelector,omitempty"`
// Admin indicates whether or not the SVID can be used to access the SPIRE
// administrative APIs. Extra care should be taken to only apply this
// SPIFFE ID to admin workloads.
Admin bool `json:"admin,omitempty"`
// Downstream indicates that the entry describes a downstream SPIRE server.
Downstream bool `json:"downstream,omitempty"`
// AutoPopulateDNSNames indicates whether or not to auto populate service DNS names.
AutoPopulateDNSNames bool `json:"autoPopulateDNSNames,omitempty"`
// Set which Controller Class will act on this object
// +kubebuilder:validation:Optional
ClassName string `json:"className,omitempty"`
// Apply this ID only if there are no other matching non fallback ClusterSPIFFEIDs.
// +kubebuilder:validation:Optional
Fallback bool `json:"fallback,omitempty"`
// Set the entry hint
// +kubebuilder:validation:Optional
Hint string `json:"hint,omitempty"`
}
ClusterSPIFFEIDSpec defines the desired state of ClusterSPIFFEID
func (*ClusterSPIFFEIDSpec) DeepCopy ¶
func (in *ClusterSPIFFEIDSpec) DeepCopy() *ClusterSPIFFEIDSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEIDSpec.
func (*ClusterSPIFFEIDSpec) DeepCopyInto ¶
func (in *ClusterSPIFFEIDSpec) DeepCopyInto(out *ClusterSPIFFEIDSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSPIFFEIDStats ¶
type ClusterSPIFFEIDStats struct {
// How many namespaces were selected.
// +kubebuilder:validation:Optional
NamespacesSelected int `json:"namespacesSelected"`
// How many (selected) namespaces were ignored (based on configuration).
// +kubebuilder:validation:Optional
NamespacesIgnored int `json:"namespacesIgnored"`
// How many pods were selected out of the namespaces.
// +kubebuilder:validation:Optional
PodsSelected int `json:"podsSelected"`
// How many failures were encountered rendering an entry selected pods.
// This could be due to either a bad template in the ClusterSPIFFEID or
// Pod metadata that when applied to the template did not produce valid
// entry values.
// +kubebuilder:validation:Optional
PodEntryRenderFailures int `json:"podEntryRenderFailures"`
// How many entries were masked by entries for other ClusterSPIFFEIDs.
// This happens when one or more ClusterSPIFFEIDs produce an entry for
// the same pod with the same set of workload selectors.
// +kubebuilder:validation:Optional
EntriesMasked int `json:"entriesMasked"`
// How many entries are to be set for this ClusterSPIFFEID. In nominal
// conditions, this should reflect the number of pods selected, but not
// always if there were problems encountered rendering an entry for the pod
// (RenderFailures) or entries are masked (EntriesMasked).
// +kubebuilder:validation:Optional
EntriesToSet int `json:"entriesToSet"`
// How many entries were unable to be set due to failures to create or
// update the entries via the SPIRE Server API.
// +kubebuilder:validation:Optional
EntryFailures int `json:"entryFailures"`
}
ClusterSPIFFEIDStats contain entry reconciliation statistics.
func (*ClusterSPIFFEIDStats) DeepCopy ¶
func (in *ClusterSPIFFEIDStats) DeepCopy() *ClusterSPIFFEIDStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEIDStats.
func (*ClusterSPIFFEIDStats) DeepCopyInto ¶
func (in *ClusterSPIFFEIDStats) DeepCopyInto(out *ClusterSPIFFEIDStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSPIFFEIDStatus ¶
type ClusterSPIFFEIDStatus struct {
// Stats produced by the last entry reconciliation run
// +kubebuilder:validation:Optional
Stats ClusterSPIFFEIDStats `json:"stats"`
}
ClusterSPIFFEIDStatus defines the observed state of ClusterSPIFFEID
func (*ClusterSPIFFEIDStatus) DeepCopy ¶
func (in *ClusterSPIFFEIDStatus) DeepCopy() *ClusterSPIFFEIDStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSPIFFEIDStatus.
func (*ClusterSPIFFEIDStatus) DeepCopyInto ¶
func (in *ClusterSPIFFEIDStatus) DeepCopyInto(out *ClusterSPIFFEIDStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterStaticEntry ¶ added in v0.3.0
type ClusterStaticEntry struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec ClusterStaticEntrySpec `json:"spec"`
// +optional
Status ClusterStaticEntryStatus `json:"status"`
}
ClusterStaticEntry is the Schema for the clusterstaticentries API
func ListClusterStaticEntries ¶ added in v0.6.2
func LoadClusterStaticEntryFile ¶ added in v0.6.3
func (*ClusterStaticEntry) DeepCopy ¶ added in v0.3.0
func (in *ClusterStaticEntry) DeepCopy() *ClusterStaticEntry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStaticEntry.
func (*ClusterStaticEntry) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterStaticEntry) DeepCopyInto(out *ClusterStaticEntry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterStaticEntry) DeepCopyObject ¶ added in v0.3.0
func (in *ClusterStaticEntry) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterStaticEntryList ¶ added in v0.3.0
type ClusterStaticEntryList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []ClusterStaticEntry `json:"items"`
}
ClusterStaticEntryList contains a list of ClusterStaticEntry
func (*ClusterStaticEntryList) DeepCopy ¶ added in v0.3.0
func (in *ClusterStaticEntryList) DeepCopy() *ClusterStaticEntryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStaticEntryList.
func (*ClusterStaticEntryList) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterStaticEntryList) DeepCopyInto(out *ClusterStaticEntryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterStaticEntryList) DeepCopyObject ¶ added in v0.3.0
func (in *ClusterStaticEntryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterStaticEntrySpec ¶ added in v0.3.0
type ClusterStaticEntrySpec struct {
SPIFFEID string `json:"spiffeID"`
ParentID string `json:"parentID"`
Selectors []string `json:"selectors"`
FederatesWith []string `json:"federatesWith,omitempty"`
X509SVIDTTL metav1.Duration `json:"x509SVIDTTL,omitempty"`
JWTSVIDTTL metav1.Duration `json:"jwtSVIDTTL,omitempty"`
DNSNames []string `json:"dnsNames,omitempty"`
Hint string `json:"hint,omitempty"`
Admin bool `json:"admin,omitempty"`
Downstream bool `json:"downstream,omitempty"`
StoreSVID bool `json:"storeSVID,omitempty"`
// Set which Controller Class will act on this object
// +kubebuilder:validation:Optional
ClassName string `json:"className,omitempty"`
}
ClusterStaticEntrySpec defines the desired state of ClusterStaticEntry
func (*ClusterStaticEntrySpec) DeepCopy ¶ added in v0.3.0
func (in *ClusterStaticEntrySpec) DeepCopy() *ClusterStaticEntrySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStaticEntrySpec.
func (*ClusterStaticEntrySpec) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterStaticEntrySpec) DeepCopyInto(out *ClusterStaticEntrySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterStaticEntryStatus ¶ added in v0.3.0
type ClusterStaticEntryStatus struct {
// If the static entry rendered properly.
Rendered bool `json:"rendered"`
// If the static entry was masked by another entry.
Masked bool `json:"masked"`
// If the static entry was successfully created/updated.
Set bool `json:"set"`
}
ClusterStaticEntryStatus defines the observed state of ClusterStaticEntry
func (*ClusterStaticEntryStatus) DeepCopy ¶ added in v0.3.0
func (in *ClusterStaticEntryStatus) DeepCopy() *ClusterStaticEntryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStaticEntryStatus.
func (*ClusterStaticEntryStatus) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterStaticEntryStatus) DeepCopyInto(out *ClusterStaticEntryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerConfigurationSpec ¶ added in v0.2.3
type ControllerConfigurationSpec struct {
// GroupKindConcurrency is a map from a Kind to the number of concurrent reconciliation
// allowed for that controller.
//
// When a controller is registered within this manager using the builder utilities,
// users have to specify the type the controller reconciles in the For(...) call.
// If the object's kind passed matches one of the keys in this map, the concurrency
// for that controller is set to the number specified.
//
// The key is expected to be consistent in form with GroupKind.String(),
// e.g. ReplicaSet in apps group (regardless of version) would be `ReplicaSet.apps`.
//
// +optional
GroupKindConcurrency map[string]int `json:"groupKindConcurrency,omitempty"`
// CacheSyncTimeout refers to the time limit set to wait for syncing caches.
// Defaults to 2 minutes if not set.
// +optional
CacheSyncTimeout *time.Duration `json:"cacheSyncTimeout,omitempty"`
// RecoverPanic indicates if panics should be recovered.
// +optional
RecoverPanic *bool `json:"recoverPanic,omitempty"`
}
ControllerConfigurationSpec defines the global configuration for controllers registered with the manager.
func (*ControllerConfigurationSpec) DeepCopy ¶ added in v0.2.3
func (in *ControllerConfigurationSpec) DeepCopy() *ControllerConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigurationSpec.
func (*ControllerConfigurationSpec) DeepCopyInto ¶ added in v0.2.3
func (in *ControllerConfigurationSpec) DeepCopyInto(out *ControllerConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerHealth ¶ added in v0.2.3
type ControllerHealth struct {
// HealthProbeBindAddress is the TCP address that the controller should bind to
// for serving health probes
// It can be set to "0" or "" to disable serving the health probe.
// +optional
HealthProbeBindAddress string `json:"healthProbeBindAddress,omitempty"`
// ReadinessEndpointName, defaults to "readyz"
// +optional
ReadinessEndpointName string `json:"readinessEndpointName,omitempty"`
// LivenessEndpointName, defaults to "healthz"
// +optional
LivenessEndpointName string `json:"livenessEndpointName,omitempty"`
}
ControllerHealth defines the health configs.
func (*ControllerHealth) DeepCopy ¶ added in v0.2.3
func (in *ControllerHealth) DeepCopy() *ControllerHealth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerHealth.
func (*ControllerHealth) DeepCopyInto ¶ added in v0.2.3
func (in *ControllerHealth) DeepCopyInto(out *ControllerHealth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerManagerConfig ¶
type ControllerManagerConfig struct {
metav1.TypeMeta `json:",inline"`
// ControllerManagerConfigurationSpec returns the contfigurations for controllers
ControllerManagerConfigurationSpec `json:",inline"`
// ClusterName is the cluster name
ClusterName string `json:"clusterName"`
// ClusterDomain is the cluster domain, ie cluster.local
ClusterDomain string `json:"clusterDomain"`
// TrustDomain is the name of the SPIFFE trust domain
TrustDomain string `json:"trustDomain"`
// IgnoreNamespaces are the namespaces to ignore
IgnoreNamespaces []string `json:"ignoreNamespaces"`
// ValidatingWebhookConfigurationName selects the webhook configuration to manage.
// Defaults to spire-controller-manager-webhook.
ValidatingWebhookConfigurationName string `json:"validatingWebhookConfigurationName"`
// GCInterval is how often SPIRE state is reconciled when the controller
// is otherwise idle. This impacts how quickly SPIRE state will converge
// after CRDs are removed or SPIRE state is mutated out from underneath
// the controller.
GCInterval time.Duration `json:"gcInterval"`
// SPIREServerSocketPath is the path to the SPIRE Server API socket
SPIREServerSocketPath string `json:"spireServerSocketPath"`
// LogLevel is the log level for the controller manager
LogLevel string `json:"logLevel"`
// LogEncoding is the log encoding for the controller manager
LogEncoding string `json:"logEncoding"`
// Grpc is the grpc configuration for the controller manager communication with SPIRE Server API
Grpc *spireapi.GrpcConfig `json:"grpc,omitempty"`
}
ControllerManagerConfig is the Schema for the controller manager configuration
func (*ControllerManagerConfig) DeepCopy ¶
func (in *ControllerManagerConfig) DeepCopy() *ControllerManagerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerManagerConfig.
func (*ControllerManagerConfig) DeepCopyInto ¶
func (in *ControllerManagerConfig) DeepCopyInto(out *ControllerManagerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerManagerConfig) DeepCopyObject ¶
func (in *ControllerManagerConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControllerManagerConfigurationSpec ¶ added in v0.2.3
type ControllerManagerConfigurationSpec struct {
// SyncPeriod determines the minimum frequency at which watched resources are
// reconciled. A lower period will correct entropy more quickly, but reduce
// responsiveness to change if there are many watched resources. Change this
// value only if you know what you are doing. Defaults to 10 hours if unset.
// there will a 10 percent jitter between the SyncPeriod of all controllers
// so that all controllers will not send list requests simultaneously.
// +optional
SyncPeriod *metav1.Duration `json:"syncPeriod,omitempty"`
// LeaderElection is the LeaderElection config to be used when configuring
// the manager.Manager leader election.
// +optional
LeaderElection *configv1alpha1.LeaderElectionConfiguration `json:"leaderElection,omitempty"`
// CacheNamespace if specified restricts the manager's cache to watch objects in
// the desired namespace. Defaults to all namespaces.
//
// Deprecated: use cacheNamespaces instead
//
// Note: If a namespace is specified, controllers can still Watch for a
// cluster-scoped resource (e.g Node). For namespaced resources the cache
// will only hold objects from the desired namespace.
// +optional
CacheNamespace string `json:"cacheNamespace,omitempty"`
// CacheNamespaces if specified restricts the manager's cache to watch objects in
// the desired namespaces. Defaults to all namespaces.
// +optional
CacheNamespaces map[string]*NamespaceConfig `json:"cacheNamespaces,omitempty"`
// GracefulShutdownTimeout is the duration given to runnable to stop before the manager actually returns on stop.
// To disable graceful shutdown, set to time.Duration(0)
// To use graceful shutdown without timeout, set to a negative duration, e.G. time.Duration(-1)
// The graceful shutdown is skipped for safety reasons in case the leader election lease is lost.
GracefulShutdownTimeout *metav1.Duration `json:"gracefulShutDown,omitempty"`
// Controller contains global configuration options for controllers
// registered within this manager.
// +optional
Controller *ControllerConfigurationSpec `json:"controller,omitempty"`
// Metrics contains the controller metrics configuration
// +optional
Metrics ControllerMetrics `json:"metrics"`
// Health contains the controller health configuration
// +optional
Health ControllerHealth `json:"health"`
// Webhook contains the controllers webhook configuration
// +optional
Webhook ControllerWebhook `json:"webhook"`
// ClassName contains the name of a class to watch CRs for. Others will be ignored.
// If unset all will be watched.
// +optional
ClassName string `json:"className,omitempty"`
// If WatchClassless is set and ClassName is set, any CR without a ClassName
// specified will also be handled by this controller.
// +optional
WatchClassless bool `json:"watchClassless,omitempty"`
// If specified, uses a different parent id template for linking pods to nodes
// +optional
ParentIDTemplate string `json:"parentIDTemplate,omitempty"`
// If specified, only syncs the specified CR types. Defaults to all.
// +optional
Reconcile *ReconcileConfig `json:"reconcile,omitempty"`
// If specified, prefixes each entry id with `<prefix>.`. Entries without the Prefix will be ignored (except ones marked for cleanup, see EntryIDPrefixCleanup).
// +optiional
EntryIDPrefix string `json:"entryIDPrefix,omitempty"`
// If specified, entries with the specified prefix will be removed. If set to "" it will clean up all unprefixed entries.
// It can not be set to the same value as EntryIDPrefix.
// Generally useful when switching from nonprefixed to prefixed, or between two different prefixes.
// +optiional
EntryIDPrefixCleanup *string `json:"entryIDPrefixCleanup,omitempty"`
// When configured, read yaml objects from the specified path rather then from Kubernetes.
StaticManifestPath *string `json:"staticManifestPath,omitempty"`
// When true, any static manifest parsed will first have environment variables expanded.
ExpandEnvStaticManifests bool `json:"expandEnvStaticManifests"`
// EnableEntryRenderCache enables the LRU cache for rendered pod entries.
// Defaults to false.
// +optional
EnableEntryRenderCache bool `json:"enableEntryRenderCache,omitempty"`
// EntryRenderCacheSize is the maximum number of entries in the LRU cache for
// rendered pod entries. Only used when enableEntryRenderCache is true.
// Defaults to 300000 if unset or zero.
// +optional
EntryRenderCacheSize int `json:"entryRenderCacheSize,omitempty"`
}
ControllerManagerConfigurationSpec defines the desired state of GenericControllerManagerConfiguration.
func (*ControllerManagerConfigurationSpec) DeepCopy ¶ added in v0.2.3
func (in *ControllerManagerConfigurationSpec) DeepCopy() *ControllerManagerConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerManagerConfigurationSpec.
func (*ControllerManagerConfigurationSpec) DeepCopyInto ¶ added in v0.2.3
func (in *ControllerManagerConfigurationSpec) DeepCopyInto(out *ControllerManagerConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerMetrics ¶ added in v0.2.3
type ControllerMetrics struct {
// BindAddress is the TCP address that the controller should bind to
// for serving prometheus metrics.
// It can be set to "0" to disable the metrics serving.
// +optional
BindAddress string `json:"bindAddress,omitempty"`
}
ControllerMetrics defines the metrics configs.
func (*ControllerMetrics) DeepCopy ¶ added in v0.2.3
func (in *ControllerMetrics) DeepCopy() *ControllerMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerMetrics.
func (*ControllerMetrics) DeepCopyInto ¶ added in v0.2.3
func (in *ControllerMetrics) DeepCopyInto(out *ControllerMetrics)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerWebhook ¶ added in v0.2.3
type ControllerWebhook struct {
// Port is the port that the webhook server serves at.
// It is used to set webhook.Server.Port.
// +optional
Port *int `json:"port,omitempty"`
// Host is the hostname that the webhook server binds to.
// It is used to set webhook.Server.Host.
// +optional
Host string `json:"host,omitempty"`
// CertDir is the directory that contains the server key and certificate.
// if not set, webhook server would look up the server key and certificate in
// {TempDir}/k8s-webhook-server/serving-certs. The server key and certificate
// must be named tls.key and tls.crt, respectively.
// +optional
CertDir string `json:"certDir,omitempty"`
}
ControllerWebhook defines the webhook server for the controller.
func (*ControllerWebhook) DeepCopy ¶ added in v0.2.3
func (in *ControllerWebhook) DeepCopy() *ControllerWebhook
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerWebhook.
func (*ControllerWebhook) DeepCopyInto ¶ added in v0.2.3
func (in *ControllerWebhook) DeepCopyInto(out *ControllerWebhook)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceConfig ¶ added in v0.4.1
type NamespaceConfig struct {
// LabelSelectors map of Labels selectors
// +optional
LabelSelectors map[string]string `json:"labelSelectors,omitempty"`
// FieldSelectors map of Fields selectors
// +optional
FieldSelectors map[string]string `json:"fieldSelectors,omitempty"`
}
NamespaceConfig configuration used to filter cached namespaces
func (*NamespaceConfig) DeepCopy ¶ added in v0.4.1
func (in *NamespaceConfig) DeepCopy() *NamespaceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceConfig.
func (*NamespaceConfig) DeepCopyInto ¶ added in v0.4.1
func (in *NamespaceConfig) DeepCopyInto(out *NamespaceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParsedClusterSPIFFEIDSpec ¶
type ParsedClusterSPIFFEIDSpec struct {
SPIFFEIDTemplate *template.Template
NamespaceSelector labels.Selector
PodSelector labels.Selector
TTL time.Duration
JWTTTL time.Duration
FederatesWith []spiffeid.TrustDomain
DNSNameTemplates []*template.Template
WorkloadSelectorTemplates []*template.Template
Admin bool
Downstream bool
AutoPopulateDNSNames bool
Hint string
}
+kubebuilder:object:generate=false ParsedClusterSPIFFEIDSpec is a parsed and validated ClusterSPIFFEIDSpec
func ParseClusterSPIFFEIDSpec ¶
func ParseClusterSPIFFEIDSpec(spec *ClusterSPIFFEIDSpec) (*ParsedClusterSPIFFEIDSpec, error)
ParseClusterSPIFFEIDSpec parses and validates the fields in the ClusterSPIFFEIDSpec
type ReconcileConfig ¶ added in v0.4.3
type ReconcileConfig struct {
// ClusterSpiffeIds enable syncing of clusterspiffeids
// +optional
ClusterSPIFFEIDs bool `json:"clusterSPIFFEIDs,omitempty"`
// ClusterFederatedTrustDomains enable syncing of clusterfederatedtrustdomains
// +optional
ClusterFederatedTrustDomains bool `json:"clusterFederatedTrustDomains,omitempty"`
// ClusterStaticEntries enable syncing of clusterstaticentries
// +optional
ClusterStaticEntries bool `json:"clusterStaticEntries,omitempty"`
}
ReconcileConfig configuration used to enable/disable syncing various types
func (*ReconcileConfig) DeepCopy ¶ added in v0.4.3
func (in *ReconcileConfig) DeepCopy() *ReconcileConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconcileConfig.
func (*ReconcileConfig) DeepCopyInto ¶ added in v0.4.3
func (in *ReconcileConfig) DeepCopyInto(out *ReconcileConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- clusterfederatedtrustdomain_loader.go
- clusterfederatedtrustdomain_types.go
- clusterfederatedtrustdomain_webhook.go
- clusterspiffeid_types.go
- clusterspiffeid_webhook.go
- clusterstaticentry_loader.go
- clusterstaticentry_types.go
- controllermanagerconfig_loader.go
- controllermanagerconfig_types.go
- groupversion_info.go
- zz_generated.deepcopy.go