Documentation
¶
Index ¶
- func NewForbiddenError(key string, forbiddenSpec ForbiddenListSpec) error
- func ValidateForbidden(metadata map[string]string, forbiddenList ForbiddenListSpec) error
- type AdditionalMetadataSelectorSpec
- type AdditionalMetadataSpec
- type AllowedIP
- type AllowedListSpec
- type AllowedServices
- type DefaultAllowedListSpec
- type ExternalServiceIPsSpec
- type ForbiddenError
- type ForbiddenListSpec
- type HostnameCollisionScope
- type ImagePullPolicySpec
- type LimitRangesSpec
- type NamespaceRuleBodyNamespace
- type NamespaceRuleBodyTenant
- type NamespaceRuleEnforceBody
- type NamespaceRulePermissionBody
- type NamespaceRulePromotionRule
- type NetworkPolicySpec
- type OCIRegistry
- type PodOptions
- type PoolExhaustionResource
- type RegistryValidationTarget
- type ResourceQuotaScope
- type ResourceQuotaSpec
- type ResourceScope
- type SelectionListWithDefaultSpec
- type SelectionListWithSpec
- type SelectorAllowedListSpec
- type ServiceOptions
- type Tenant
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewForbiddenError ¶ added in v0.5.0
func NewForbiddenError(key string, forbiddenSpec ForbiddenListSpec) error
func ValidateForbidden ¶ added in v0.5.0
func ValidateForbidden(metadata map[string]string, forbiddenList ForbiddenListSpec) error
Types ¶
type AdditionalMetadataSelectorSpec ¶ added in v0.9.0
type AdditionalMetadataSelectorSpec struct {
NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
}
func (*AdditionalMetadataSelectorSpec) DeepCopy ¶ added in v0.9.0
func (in *AdditionalMetadataSelectorSpec) DeepCopy() *AdditionalMetadataSelectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalMetadataSelectorSpec.
func (*AdditionalMetadataSelectorSpec) DeepCopyInto ¶ added in v0.9.0
func (in *AdditionalMetadataSelectorSpec) DeepCopyInto(out *AdditionalMetadataSelectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AdditionalMetadataSpec ¶
type AdditionalMetadataSpec struct {
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
}
func (*AdditionalMetadataSpec) DeepCopy ¶
func (in *AdditionalMetadataSpec) DeepCopy() *AdditionalMetadataSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalMetadataSpec.
func (*AdditionalMetadataSpec) DeepCopyInto ¶
func (in *AdditionalMetadataSpec) DeepCopyInto(out *AdditionalMetadataSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllowedIP ¶
type AllowedIP string
+kubebuilder:validation:Pattern="^([0-9]{1,3}.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$"
type AllowedListSpec ¶
type AllowedListSpec struct {
// Match exact elements which are allowed as class names within this tenant
Exact []string `json:"allowed,omitempty"`
// Deprecated: will be removed in a future release
//
// Match elements by regex.
Regex string `json:"allowedRegex,omitempty"`
}
func (*AllowedListSpec) DeepCopy ¶
func (in *AllowedListSpec) DeepCopy() *AllowedListSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedListSpec.
func (*AllowedListSpec) DeepCopyInto ¶
func (in *AllowedListSpec) DeepCopyInto(out *AllowedListSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AllowedListSpec) ExactMatch ¶
func (in *AllowedListSpec) ExactMatch(value string) (ok bool)
func (*AllowedListSpec) Match ¶
func (in *AllowedListSpec) Match(value string) (ok bool)
func (*AllowedListSpec) RegexMatch ¶
func (in *AllowedListSpec) RegexMatch(value string) (ok bool)
type AllowedServices ¶
type AllowedServices struct {
// +kubebuilder:default=true
// Specifies if NodePort service type resources are allowed for the Tenant. Default is true. Optional.
NodePort *bool `json:"nodePort,omitempty"`
// +kubebuilder:default=true
// Specifies if ExternalName service type resources are allowed for the Tenant. Default is true. Optional.
ExternalName *bool `json:"externalName,omitempty"`
// +kubebuilder:default=true
// Specifies if LoadBalancer service type resources are allowed for the Tenant. Default is true. Optional.
LoadBalancer *bool `json:"loadBalancer,omitempty"`
}
func (*AllowedServices) DeepCopy ¶
func (in *AllowedServices) DeepCopy() *AllowedServices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedServices.
func (*AllowedServices) DeepCopyInto ¶
func (in *AllowedServices) DeepCopyInto(out *AllowedServices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DefaultAllowedListSpec ¶
type DefaultAllowedListSpec struct {
SelectorAllowedListSpec `json:",inline"`
Default string `json:"default,omitempty"`
}
func (*DefaultAllowedListSpec) DeepCopy ¶
func (in *DefaultAllowedListSpec) DeepCopy() *DefaultAllowedListSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultAllowedListSpec.
func (*DefaultAllowedListSpec) DeepCopyInto ¶
func (in *DefaultAllowedListSpec) DeepCopyInto(out *DefaultAllowedListSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DefaultAllowedListSpec) MatchDefault ¶
func (in *DefaultAllowedListSpec) MatchDefault(value string) bool
type ExternalServiceIPsSpec ¶
type ExternalServiceIPsSpec struct {
Allowed []AllowedIP `json:"allowed"`
}
func (*ExternalServiceIPsSpec) DeepCopy ¶
func (in *ExternalServiceIPsSpec) DeepCopy() *ExternalServiceIPsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalServiceIPsSpec.
func (*ExternalServiceIPsSpec) DeepCopyInto ¶
func (in *ExternalServiceIPsSpec) DeepCopyInto(out *ExternalServiceIPsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ForbiddenError ¶ added in v0.5.0
type ForbiddenError struct {
// contains filtered or unexported fields
}
func (ForbiddenError) Error ¶ added in v0.5.0
func (f ForbiddenError) Error() string
type ForbiddenListSpec ¶
type ForbiddenListSpec struct {
Exact []string `json:"denied,omitempty"`
Regex string `json:"deniedRegex,omitempty"`
}
+kubebuilder:object:generate=true
func (*ForbiddenListSpec) DeepCopy ¶
func (in *ForbiddenListSpec) DeepCopy() *ForbiddenListSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForbiddenListSpec.
func (*ForbiddenListSpec) DeepCopyInto ¶
func (in *ForbiddenListSpec) DeepCopyInto(out *ForbiddenListSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ForbiddenListSpec) ExactMatch ¶
func (in ForbiddenListSpec) ExactMatch(value string) (ok bool)
func (ForbiddenListSpec) RegexMatch ¶
func (in ForbiddenListSpec) RegexMatch(value string) (ok bool)
type HostnameCollisionScope ¶
type HostnameCollisionScope string
+kubebuilder:validation:Enum=Cluster;Tenant;Namespace;Disabled
const ( HostnameCollisionScopeCluster HostnameCollisionScope = "Cluster" HostnameCollisionScopeTenant HostnameCollisionScope = "Tenant" HostnameCollisionScopeNamespace HostnameCollisionScope = "Namespace" HostnameCollisionScopeDisabled HostnameCollisionScope = "Disabled" )
type ImagePullPolicySpec ¶
type ImagePullPolicySpec string
+kubebuilder:validation:Enum=Always;Never;IfNotPresent
func (ImagePullPolicySpec) String ¶
func (i ImagePullPolicySpec) String() string
type LimitRangesSpec ¶
type LimitRangesSpec struct {
Items []corev1.LimitRangeSpec `json:"items,omitempty"`
}
func (*LimitRangesSpec) DeepCopy ¶
func (in *LimitRangesSpec) DeepCopy() *LimitRangesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangesSpec.
func (*LimitRangesSpec) DeepCopyInto ¶
func (in *LimitRangesSpec) DeepCopyInto(out *LimitRangesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceRuleBodyNamespace ¶ added in v0.13.0
type NamespaceRuleBodyNamespace struct {
// Enforcement for given rule
//+optional
Enforce NamespaceRuleEnforceBody `json:"enforce,omitzero"`
}
For future inmplementatiosn where users might manage RuleStatus CRs tehmselves +kubebuilder:object:generate=true
func (*NamespaceRuleBodyNamespace) DeepCopy ¶ added in v0.13.0
func (in *NamespaceRuleBodyNamespace) DeepCopy() *NamespaceRuleBodyNamespace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRuleBodyNamespace.
func (*NamespaceRuleBodyNamespace) DeepCopyInto ¶ added in v0.13.0
func (in *NamespaceRuleBodyNamespace) DeepCopyInto(out *NamespaceRuleBodyNamespace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceRuleBodyTenant ¶ added in v0.13.0
type NamespaceRuleBodyTenant struct {
NamespaceRuleBodyNamespace `json:",inline"`
// Select namespaces which are going to be targeted with this rule
NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
// Permissions for given rule
//+optional
Permissions NamespaceRulePermissionBody `json:"permissions,omitzero"`
}
Rules Distributed via Tenants +kubebuilder:object:generate=true
func (*NamespaceRuleBodyTenant) DeepCopy ¶ added in v0.13.0
func (in *NamespaceRuleBodyTenant) DeepCopy() *NamespaceRuleBodyTenant
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRuleBodyTenant.
func (*NamespaceRuleBodyTenant) DeepCopyInto ¶ added in v0.13.0
func (in *NamespaceRuleBodyTenant) DeepCopyInto(out *NamespaceRuleBodyTenant)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceRuleEnforceBody ¶ added in v0.13.0
type NamespaceRuleEnforceBody struct {
// Define registries which are allowed to be used within this tenant
// The rules are aggregated, since you can use Regular Expressions the match registry endpoints
Registries []OCIRegistry `json:"registries,omitempty"`
}
+kubebuilder:object:generate=true
func (*NamespaceRuleEnforceBody) DeepCopy ¶ added in v0.13.0
func (in *NamespaceRuleEnforceBody) DeepCopy() *NamespaceRuleEnforceBody
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRuleEnforceBody.
func (*NamespaceRuleEnforceBody) DeepCopyInto ¶ added in v0.13.0
func (in *NamespaceRuleEnforceBody) DeepCopyInto(out *NamespaceRuleEnforceBody)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceRulePermissionBody ¶ added in v0.13.0
type NamespaceRulePermissionBody struct {
// Define Promotion Rules which distributed additional ClusterRoles across the Tenant
// for promoted ServiceAccounts.
Promotions []*NamespaceRulePromotionRule `json:"rules,omitempty"`
}
+kubebuilder:object:generate=true
func (*NamespaceRulePermissionBody) DeepCopy ¶ added in v0.13.0
func (in *NamespaceRulePermissionBody) DeepCopy() *NamespaceRulePermissionBody
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRulePermissionBody.
func (*NamespaceRulePermissionBody) DeepCopyInto ¶ added in v0.13.0
func (in *NamespaceRulePermissionBody) DeepCopyInto(out *NamespaceRulePermissionBody)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceRulePromotionRule ¶ added in v0.13.0
type NamespaceRulePromotionRule struct {
// ClusterRoles granted to the promoted ServiceAccounts across the Tenant
// kubebuilder:validation:Minimum=1
ClusterRoles []string `json:"clusterRoles,omitempty"`
// Match ServiceAccounts which are promoted which are granted these additional ClusterRoles
// across the Tenant
Selector *metav1.LabelSelector `json:"selector,omitempty"`
}
+kubebuilder:object:generate=true
func (*NamespaceRulePromotionRule) DeepCopy ¶ added in v0.13.0
func (in *NamespaceRulePromotionRule) DeepCopy() *NamespaceRulePromotionRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceRulePromotionRule.
func (*NamespaceRulePromotionRule) DeepCopyInto ¶ added in v0.13.0
func (in *NamespaceRulePromotionRule) DeepCopyInto(out *NamespaceRulePromotionRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkPolicySpec ¶
type NetworkPolicySpec struct {
Items []networkingv1.NetworkPolicySpec `json:"items,omitempty"`
}
func (*NetworkPolicySpec) DeepCopy ¶
func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.
func (*NetworkPolicySpec) DeepCopyInto ¶
func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OCIRegistry ¶ added in v0.13.0
type OCIRegistry struct {
// OCI Registry endpoint, is treated as regular expression.
Registry string `json:"url,omitzero"`
// Allowed PullPolicy for the given registry. Supplying no value allows all policies.
// +optional
// +kubebuilder:validation:Items:Enum=Always;Never;IfNotPresent
Policy []corev1.PullPolicy `json:"policy,omitempty"`
// Requesting Resources
//+kubebuilder:default:={pod/images,pod/volumes}
Validation []RegistryValidationTarget `json:"validation,omitempty"`
}
+kubebuilder:object:generate=true
func (*OCIRegistry) DeepCopy ¶ added in v0.13.0
func (in *OCIRegistry) DeepCopy() *OCIRegistry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OCIRegistry.
func (*OCIRegistry) DeepCopyInto ¶ added in v0.13.0
func (in *OCIRegistry) DeepCopyInto(out *OCIRegistry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodOptions ¶ added in v0.5.0
type PodOptions struct {
// Specifies additional labels and annotations the Capsule operator places on any Pod resource in the Tenant. Optional.
AdditionalMetadata *AdditionalMetadataSpec `json:"additionalMetadata,omitempty"`
}
func (*PodOptions) DeepCopy ¶ added in v0.5.0
func (in *PodOptions) DeepCopy() *PodOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOptions.
func (*PodOptions) DeepCopyInto ¶ added in v0.5.0
func (in *PodOptions) DeepCopyInto(out *PodOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PoolExhaustionResource ¶ added in v0.10.1
type PoolExhaustionResource struct {
// Available Resources to be claimed
// +optional
Available resource.Quantity `json:"available,omitzero"`
// Requesting Resources
// +optional
Requesting resource.Quantity `json:"requesting,omitzero"`
}
+kubebuilder:object:generate=true
func (*PoolExhaustionResource) DeepCopy ¶ added in v0.10.1
func (in *PoolExhaustionResource) DeepCopy() *PoolExhaustionResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolExhaustionResource.
func (*PoolExhaustionResource) DeepCopyInto ¶ added in v0.10.1
func (in *PoolExhaustionResource) DeepCopyInto(out *PoolExhaustionResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistryValidationTarget ¶ added in v0.13.0
type RegistryValidationTarget string
+kubebuilder:validation:Enum=pod/images;pod/volumes
const ( ValidateImages RegistryValidationTarget = "pod/images" ValidateVolumes RegistryValidationTarget = "pod/volumes" )
type ResourceQuotaScope ¶
type ResourceQuotaScope string
+kubebuilder:validation:Enum=Tenant;Namespace
const ( ResourceQuotaScopeTenant ResourceQuotaScope = "Tenant" ResourceQuotaScopeNamespace ResourceQuotaScope = "Namespace" )
type ResourceQuotaSpec ¶
type ResourceQuotaSpec struct {
// +kubebuilder:default=Tenant
// Define if the Resource Budget should compute resource across all Namespaces in the Tenant or individually per cluster. Default is Tenant
Scope ResourceQuotaScope `json:"scope,omitempty"`
Items []corev1.ResourceQuotaSpec `json:"items,omitempty"`
}
func (*ResourceQuotaSpec) DeepCopy ¶
func (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaSpec.
func (*ResourceQuotaSpec) DeepCopyInto ¶
func (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceScope ¶ added in v0.13.0
type ResourceScope string
+kubebuilder:validation:Enum=Namespace;Tenant;None
const ( ResourceScopeNamespace ResourceScope = "Namespace" ResourceScopeTenant ResourceScope = "Tenant" ResourceScopeNone ResourceScope = "None" )
func (ResourceScope) String ¶ added in v0.13.0
func (p ResourceScope) String() string
type SelectionListWithDefaultSpec ¶ added in v0.10.0
type SelectionListWithDefaultSpec struct {
SelectionListWithSpec `json:",inline"`
// Default class for tenant, when no class is set. This may overwrite even the global default.
Default string `json:"default,omitempty"`
}
+kubebuilder:object:generate=true
func (*SelectionListWithDefaultSpec) DeepCopy ¶ added in v0.10.0
func (in *SelectionListWithDefaultSpec) DeepCopy() *SelectionListWithDefaultSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelectionListWithDefaultSpec.
func (*SelectionListWithDefaultSpec) DeepCopyInto ¶ added in v0.10.0
func (in *SelectionListWithDefaultSpec) DeepCopyInto(out *SelectionListWithDefaultSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SelectionListWithDefaultSpec) MatchDefault ¶ added in v0.10.0
func (in *SelectionListWithDefaultSpec) MatchDefault(value string) bool
type SelectionListWithSpec ¶ added in v0.10.0
type SelectionListWithSpec struct {
metav1.LabelSelector `json:",inline"`
}
func (*SelectionListWithSpec) DeepCopy ¶ added in v0.10.0
func (in *SelectionListWithSpec) DeepCopy() *SelectionListWithSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelectionListWithSpec.
func (*SelectionListWithSpec) DeepCopyInto ¶ added in v0.10.0
func (in *SelectionListWithSpec) DeepCopyInto(out *SelectionListWithSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SelectionListWithSpec) SelectorMatch ¶ added in v0.10.0
func (in *SelectionListWithSpec) SelectorMatch(obj client.Object) bool
type SelectorAllowedListSpec ¶
type SelectorAllowedListSpec struct {
AllowedListSpec `json:",inline"`
metav1.LabelSelector `json:",inline"`
}
func (*SelectorAllowedListSpec) DeepCopy ¶
func (in *SelectorAllowedListSpec) DeepCopy() *SelectorAllowedListSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelectorAllowedListSpec.
func (*SelectorAllowedListSpec) DeepCopyInto ¶
func (in *SelectorAllowedListSpec) DeepCopyInto(out *SelectorAllowedListSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SelectorAllowedListSpec) MatchSelectByName ¶
func (in *SelectorAllowedListSpec) MatchSelectByName(obj client.Object) bool
func (*SelectorAllowedListSpec) SelectorMatch ¶
func (in *SelectorAllowedListSpec) SelectorMatch(obj client.Object) bool
type ServiceOptions ¶
type ServiceOptions struct {
// Specifies additional labels and annotations the Capsule operator places on any Service resource in the Tenant. Optional.
AdditionalMetadata *AdditionalMetadataSpec `json:"additionalMetadata,omitempty"`
// Block or deny certain type of Services. Optional.
AllowedServices *AllowedServices `json:"allowedServices,omitempty"`
// Specifies the external IPs that can be used in Services with type ClusterIP. An empty list means no IPs are allowed. Optional.
ExternalServiceIPs *ExternalServiceIPsSpec `json:"externalIPs,omitempty"`
// Define the labels that a Tenant Owner cannot set for their Service resources.
// +optional
ForbiddenLabels ForbiddenListSpec `json:"forbiddenLabels,omitzero"`
// Define the annotations that a Tenant Owner cannot set for their Service resources.
// +optional
ForbiddenAnnotations ForbiddenListSpec `json:"forbiddenAnnotations,omitzero"`
}
func (*ServiceOptions) DeepCopy ¶
func (in *ServiceOptions) DeepCopy() *ServiceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceOptions.
func (*ServiceOptions) DeepCopyInto ¶
func (in *ServiceOptions) DeepCopyInto(out *ServiceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- additional_metadata.go
- allowed_list.go
- exhaustion.go
- external_service_ips.go
- forbidden_list.go
- hostname_collision_scope.go
- limit_ranges.go
- namespace_rule_type.go
- network_policy.go
- pod_options.go
- registry.go
- resource_quota.go
- scope.go
- service_allowed_types.go
- service_options.go
- status_namespaces.go
- zz_generated.deepcopy.go