Documentation
¶
Index ¶
- Constants
- func AddNamespaceNameLabels(labels map[string]string, ns *corev1.Namespace)
- func AddTenantNameLabel(labels map[string]string, tnt *capsulev1beta2.Tenant)
- func BuildInstanceMetadataForNamespace(ns *corev1.Namespace, tnt *capsulev1beta2.Tenant) (labels map[string]string, annotations map[string]string)
- func BuildNamespaceAnnotationsForTenant(tnt *capsulev1beta2.Tenant) map[string]string
- func BuildNamespaceLabelsForTenant(tnt *capsulev1beta2.Tenant) map[string]string
- func BuildNamespaceMetadataForTenant(ns *corev1.Namespace, tnt *capsulev1beta2.Tenant) (labels map[string]string, annotations map[string]string, err error)
- func BuildNamespaceRuleBodyStatus(scheme *runtime.Scheme, ns *corev1.Namespace, tnt *capsulev1beta2.Tenant) ([]*rules.NamespaceRuleBodyNamespace, error)
- func CollectOwners(ctx context.Context, c client.Reader, tnt *capsulev1beta2.Tenant, ...) (rbac.OwnerStatusListSpec, error)
- func CollectPromotions(ctx context.Context, c client.Client, tnt *capsulev1beta2.Tenant, ...) (promotions rbac.PromotionStatusListSpec, err error)
- func CollectTenantNamespaceByLabel(ctx context.Context, c client.Client, tnt capsulev1beta2.Tenant, ...) (namespaces []corev1.Namespace, err error)
- func FastContextForTenantAndNamespace(tnt *capsulev1beta2.Tenant, ns *corev1.Namespace) map[string]string
- func GetManagedRuleStatus(ctx context.Context, c client.Reader, ns *corev1.Namespace) (*capsulev1beta2.RuleStatus, error)
- func GetOwnersWithKinds(tenant *capsulev1beta2.Tenant) (owners []string)
- func GetTenantByLabels(ctx context.Context, c client.Reader, ns *corev1.Namespace) (*capsulev1beta2.Tenant, error)
- func GetTenantByLabelsAndUser(ctx context.Context, c client.Reader, cfg configuration.Configuration, ...) (*capsulev1beta2.Tenant, error)
- func GetTenantByNamespace(ctx context.Context, r client.Reader, namespace string) (*capsulev1beta2.Tenant, error)
- func GetTenantByOwnerreferences(ctx context.Context, c client.Reader, refs []metav1.OwnerReference) (tnt *capsulev1beta2.Tenant, err error)
- func GetTenantByUserInfo(ctx context.Context, c client.Client, cfg configuration.Configuration, ...) (sortedTenants, error)
- func GetTenantNameByNamespace(ctx context.Context, c client.Reader, namespace string) (tnt string, err error)
- func GetTenantNameByOwnerreferences(refs []metav1.OwnerReference) (string, bool)
- func GetTenantNameByStatusNamespace(ctx context.Context, c client.Client, namespace string) (string, error)
- func HasCustomResourceQuotaAnnotation(tenant *capsulev1beta2.Tenant) bool
- func HasTenantOwnership(ns *corev1.Namespace) bool
- func HasTenantReference(ns *corev1.Namespace) bool
- func IsNamespaceInTenant(ctx context.Context, c client.Client, namespace string) (bool, error)
- func IsTenantOwnerReference(or metav1.OwnerReference) bool
- func IsTenantOwnerReferenceForTenant(or metav1.OwnerReference, tnt *capsulev1beta2.Tenant) bool
- func NamespaceIsOwned(ctx context.Context, c client.Reader, cfg configuration.Configuration, ...) bool
- func NamespaceIsPendingPodTerminating(ctx context.Context, c client.Reader, ns *corev1.Namespace) (pending bool, err error)
- func NamespaceIsPendingUnmanagedTerminationByStatus(ctx context.Context, c client.Reader, ns *corev1.Namespace) (bool, error)
- func NamespacedCascadingCleanup(ctx context.Context, c client.Reader, disco discovery.DiscoveryInterface, ...) (cleaned bool, err error)
- func NewTenantContext(tnt *capsulev1beta2.Tenant, scheme *runtime.Scheme, ...) (map[string]any, error)
- func NewTenantNamespaceContext(tnt *capsulev1beta2.Tenant, ns *corev1.Namespace, scheme *runtime.Scheme, ...) (map[string]any, error)
- func OwnerKindIndexKey(kind, name string) string
- func ResolveNamespaceTenant(ctx context.Context, reader client.Reader, ns *corev1.Namespace) (*capsulev1beta2.Tenant, error)
- func TenanLabelValue(ns *corev1.Namespace) string
- func TenantByStatusNamespace(ctx context.Context, c client.Client, namespace string) (*capsulev1beta2.Tenant, error)
- func TenantOwnerReferenceName(ns *corev1.Namespace) string
- func TenantOwnerReferences(ns *corev1.Namespace) []metav1.OwnerReference
- func TenantOwnershipChanged(oldNs, newNs *corev1.Namespace) bool
- func ValidateTenantOwner(owner rbac.UserSpec) error
- type NamespacedResourceCache
Constants ¶
const (
ObjectReferenceTenantKind = "Tenant"
)
Variables ¶
This section is empty.
Functions ¶
func AddNamespaceNameLabels ¶
func AddTenantNameLabel ¶
func AddTenantNameLabel(labels map[string]string, tnt *capsulev1beta2.Tenant)
func BuildNamespaceAnnotationsForTenant ¶
func BuildNamespaceAnnotationsForTenant(tnt *capsulev1beta2.Tenant) map[string]string
func BuildNamespaceLabelsForTenant ¶
func BuildNamespaceLabelsForTenant(tnt *capsulev1beta2.Tenant) map[string]string
func BuildNamespaceRuleBodyStatus ¶
func BuildNamespaceRuleBodyStatus( scheme *runtime.Scheme, ns *corev1.Namespace, tnt *capsulev1beta2.Tenant, ) ([]*rules.NamespaceRuleBodyNamespace, error)
BuildNamespaceRuleBodyStatus returns the aggregated rule bodies that apply to ns. - Rules with nil NamespaceSelector match all namespaces. - Matching rules are returned in the order they appear in tnt.Spec.Rules. - Order is important because registry/QoS evaluation uses "later allow/deny wins" semantics.
func CollectOwners ¶
func CollectOwners( ctx context.Context, c client.Reader, tnt *capsulev1beta2.Tenant, cfg configuration.Configuration, ) (rbac.OwnerStatusListSpec, error)
func CollectPromotions ¶
func CollectPromotions( ctx context.Context, c client.Client, tnt *capsulev1beta2.Tenant, cfg configuration.Configuration, ) (promotions rbac.PromotionStatusListSpec, err error)
func FastContextForTenantAndNamespace ¶
func FastContextForTenantAndNamespace(tnt *capsulev1beta2.Tenant, ns *corev1.Namespace) map[string]string
TemplateForTenantAndNamespace applies templatingto the provided string.
func GetManagedRuleStatus ¶
func GetManagedRuleStatus( ctx context.Context, c client.Reader, ns *corev1.Namespace, ) (*capsulev1beta2.RuleStatus, error)
func GetOwnersWithKinds ¶
func GetOwnersWithKinds(tenant *capsulev1beta2.Tenant) (owners []string)
func GetTenantByLabels ¶
func GetTenantByLabels( ctx context.Context, c client.Reader, ns *corev1.Namespace, ) (*capsulev1beta2.Tenant, error)
getTenantByLabels returns tenant from labels.
func GetTenantByLabelsAndUser ¶
func GetTenantByLabelsAndUser( ctx context.Context, c client.Reader, cfg configuration.Configuration, ns *corev1.Namespace, user users.AdmissionUser, ) (*capsulev1beta2.Tenant, error)
func GetTenantByNamespace ¶
func GetTenantByOwnerreferences ¶
func GetTenantByOwnerreferences( ctx context.Context, c client.Reader, refs []metav1.OwnerReference, ) (tnt *capsulev1beta2.Tenant, err error)
getNamespaceTenant returns namespace owner tenant.
func GetTenantByUserInfo ¶
func GetTenantByUserInfo( ctx context.Context, c client.Client, cfg configuration.Configuration, ns *corev1.Namespace, user users.AdmissionUser, ) (sortedTenants, error)
func GetTenantNameByOwnerreferences ¶
func GetTenantNameByOwnerreferences( refs []metav1.OwnerReference, ) (string, bool)
func HasCustomResourceQuotaAnnotation ¶
func HasCustomResourceQuotaAnnotation(tenant *capsulev1beta2.Tenant) bool
func HasTenantOwnership ¶
func HasTenantReference ¶
func IsNamespaceInTenant ¶
func IsTenantOwnerReference ¶
func IsTenantOwnerReference(or metav1.OwnerReference) bool
func IsTenantOwnerReferenceForTenant ¶
func IsTenantOwnerReferenceForTenant(or metav1.OwnerReference, tnt *capsulev1beta2.Tenant) bool
func NamespaceIsOwned ¶
func NamespaceIsOwned( ctx context.Context, c client.Reader, cfg configuration.Configuration, ns *corev1.Namespace, tnt *capsulev1beta2.Tenant, user users.AdmissionUser, ) bool
func NamespacedCascadingCleanup ¶
func NamespacedCascadingCleanup( ctx context.Context, c client.Reader, disco discovery.DiscoveryInterface, resourceCache NamespacedResourceCache, dyn dynamic.Interface, ns *corev1.Namespace, ) (cleaned bool, err error)
First deletes (remove finalizers and deleted) all resources which are not managed by capsule Once fulfilled, remove all managed resources.
func NewTenantContext ¶
func NewTenantContext(tnt *capsulev1beta2.Tenant, scheme *runtime.Scheme, opts sanitize.SanitizeOptions) (map[string]any, error)
NewTenantContext returns the context for the tenant.
func NewTenantNamespaceContext ¶ added in v0.13.7
func NewTenantNamespaceContext( tnt *capsulev1beta2.Tenant, ns *corev1.Namespace, scheme *runtime.Scheme, opts sanitize.SanitizeOptions, ) (map[string]any, error)
NewTenantNamespaceContext returns the context for the tenant and a given namespace.
func OwnerKindIndexKey ¶ added in v0.13.2
func ResolveNamespaceTenant ¶
func TenanLabelValue ¶
func TenantByStatusNamespace ¶
func TenantOwnerReferences ¶
func TenantOwnerReferences(ns *corev1.Namespace) []metav1.OwnerReference
func TenantOwnershipChanged ¶
func ValidateTenantOwner ¶ added in v0.13.6
Types ¶
type NamespacedResourceCache ¶
type NamespacedResourceCache interface {
Get(disco discovery.DiscoveryInterface) ([]schema.GroupVersionResource, error)
}