Documentation
¶
Overview ¶
Package common holds code that isn't tied to a particular CRD version or type.
Index ¶
- Constants
- func DefaultingPatches(cfgEntry ConfigEntryResource, enableConsulNamespaces bool, nsMirroring bool, ...) ([]jsonpatch.Operation, error)
- func ValidateConfigEntry(ctx context.Context, req admission.Request, logger logr.Logger, ...) admission.Response
- type ConfigEntryLister
- type ConfigEntryResource
Constants ¶
View Source
const ( ServiceDefaults string = "servicedefaults" ProxyDefaults string = "proxydefaults" ServiceResolver string = "serviceresolver" ServiceRouter string = "servicerouter" ServiceSplitter string = "servicesplitter" ServiceIntentions string = "serviceintentions" IngressGateway string = "ingressgateway" TerminatingGateway string = "terminatinggateway" Global string = "global" Mesh string = "mesh" DefaultConsulNamespace string = "default" WildcardNamespace string = "*" SourceKey string = "external-source" DatacenterKey string = "consul.hashicorp.com/source-datacenter" MigrateEntryKey string = "consul.hashicorp.com/migrate-entry" MigrateEntryTrue string = "true" SourceValue string = "kubernetes" )
Variables ¶
This section is empty.
Functions ¶
func DefaultingPatches ¶ added in v0.23.0
func DefaultingPatches(cfgEntry ConfigEntryResource, enableConsulNamespaces bool, nsMirroring bool, consulDestinationNamespace string, nsMirroringPrefix string) ([]jsonpatch.Operation, error)
DefaultingPatches returns the patches needed to set fields to their defaults.
func ValidateConfigEntry ¶
func ValidateConfigEntry( ctx context.Context, req admission.Request, logger logr.Logger, configEntryLister ConfigEntryLister, cfgEntry ConfigEntryResource, enableConsulNamespaces bool, nsMirroring bool, consulDestinationNamespace string, nsMirroringPrefix string) admission.Response
ValidateConfigEntry validates cfgEntry. It is a generic method that can be used by all CRD-specific validators. Callers should pass themselves as validator and kind should be the custom resource name, e.g. "ServiceDefaults".
Types ¶
type ConfigEntryLister ¶
type ConfigEntryLister interface {
// List returns all resources of this type across all namespaces in a
// Kubernetes cluster.
List(ctx context.Context) ([]ConfigEntryResource, error)
}
ConfigEntryLister is implemented by CRD-specific webhooks.
type ConfigEntryResource ¶
type ConfigEntryResource interface {
// GetObjectMeta returns object meta.
GetObjectMeta() metav1.ObjectMeta
// AddFinalizer adds a finalizer to the list of finalizers.
AddFinalizer(name string)
// RemoveFinalizer removes this finalizer from the list.
RemoveFinalizer(name string)
// Finalizers returns the list of finalizers for this object.
Finalizers() []string
// ConsulKind returns the Consul config entry kind, i.e. service-defaults, not
// servicedefaults.
ConsulKind() string
// ConsulGlobalResource returns if the resource exists in the default
// Consul namespace only.
ConsulGlobalResource() bool
// ConsulMirroringNS returns the Consul namespace that the config entry should
// be created in if namespaces and mirroring are enabled.
ConsulMirroringNS() string
// KubeKind returns the Kube config entry kind, i.e. servicedefaults, not
// service-defaults.
KubeKind() string
// ConsulName returns the name of the config entry as saved in Consul.
// This may be different than KubernetesName() in the case of a ServiceIntentions
// config entry.
ConsulName() string
// KubernetesName returns the name of the Kubernetes resource.
KubernetesName() string
// SetSyncedCondition updates the synced condition.
SetSyncedCondition(status corev1.ConditionStatus, reason, message string)
// SetLastSyncedTime updates the last synced time.
SetLastSyncedTime(time *metav1.Time)
// SyncedCondition gets the synced condition.
SyncedCondition() (status corev1.ConditionStatus, reason, message string)
// SyncedConditionStatus returns the status of the synced condition.
SyncedConditionStatus() corev1.ConditionStatus
// ToConsul converts the resource to the corresponding Consul API definition.
// Its return type is the generic ConfigEntry but a specific config entry
// type should be constructed e.g. ServiceConfigEntry.
ToConsul(datacenter string) api.ConfigEntry
// MatchesConsul returns true if the resource has the same fields as the Consul
// config entry.
MatchesConsul(candidate api.ConfigEntry) bool
// GetObjectKind should be implemented by the generated code.
GetObjectKind() schema.ObjectKind
// DeepCopyObject should be implemented by the generated code.
DeepCopyObject() runtime.Object
// Validate returns an error if the resource is invalid.
Validate(namespacesEnabled bool) error
// DefaultNamespaceFields sets Consul namespace fields on the config entry
// spec to their default values if namespaces are enabled.
DefaultNamespaceFields(consulNamespacesEnabled bool, destinationNamespace string, mirroring bool, prefix string)
// ConfigEntryResource has to implement metav1.Object so that structs
// that implement it effectively implement client.Object which is
// the interface supported by controller-runtime reconcile-able resources.
metav1.Object
}
ConfigEntryResource is a generic config entry custom resource. It is implemented by each config entry type so that they can be acted upon generically. It is not tied to a specific CRD version.
Click to show internal directories.
Click to hide internal directories.