remote

package
v0.0.0-...-711b949 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2026 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFoundAndKCPKymaUnderDeleting = errors.New("not found and kcp kyma under deleting")
View Source
var ErrSkrClientContextNotFound = errors.New("skr client context not found")

Functions

func CRDNotFoundErr

func CRDNotFoundErr(err error) bool

func ContainsLatestVersion

func ContainsLatestVersion(crdFromRuntime *apiextensionsv1.CustomResourceDefinition, latestVersion string) bool

func FilterAllowedModuleTemplates

func FilterAllowedModuleTemplates(
	moduleTemplates []v1beta2.ModuleTemplate,
	moduleReleaseMetas []v1beta2.ModuleReleaseMeta,
	kyma *v1beta2.Kyma,
) []v1beta2.ModuleTemplate

FilterAllowedModuleTemplates filters out ModuleTemplates that are not allowed. A ModuleTemplate is allowed if it is not mandatory, does not have sync disabled, and if it is referenced by a ModuleReleaseMeta that is synced.

func IsAllowedModuleVersion

func IsAllowedModuleVersion(kyma *v1beta2.Kyma, moduleTemplateList *v1beta2.ModuleTemplateList,
	moduleName, version string,
) bool

func ReplaceSpec

func ReplaceSpec(controlPlaneKyma *v1beta2.Kyma, remoteKyma *v1beta2.Kyma)

ReplaceSpec replaces 'spec' attributes in control plane Kyma with values from Remote Kyma.

Types

type ClientCache

type ClientCache struct {
	// contains filtered or unexported fields
}

func NewClientCache

func NewClientCache() *ClientCache

func (*ClientCache) Add

func (c *ClientCache) Add(key client.ObjectKey, value client.Client)

func (*ClientCache) Contains

func (c *ClientCache) Contains(key client.ObjectKey) bool

func (*ClientCache) Delete

func (c *ClientCache) Delete(key client.ObjectKey)

func (*ClientCache) Get

func (*ClientCache) Size

func (c *ClientCache) Size() int

type CrdType

type CrdType string
const (
	KCP CrdType = "KCP"
	SKR CrdType = "SKR"
)

type KymaSkrContextProvider

type KymaSkrContextProvider struct {
	// contains filtered or unexported fields
}

func NewKymaSkrContextProvider

func NewKymaSkrContextProvider(kcpClient client.Client,
	clientCache *ClientCache,
	event event.Event,
	accessManagerService *accessmanager.Service,
	skrQps int,
	skrBurst int,
) *KymaSkrContextProvider

func (*KymaSkrContextProvider) Get

func (*KymaSkrContextProvider) Init

func (*KymaSkrContextProvider) InvalidateCache

func (k *KymaSkrContextProvider) InvalidateCache(kyma types.NamespacedName)

type RemoteCatalog

type RemoteCatalog struct {
	// contains filtered or unexported fields
}

func NewRemoteCatalogFromKyma

func NewRemoteCatalogFromKyma(kcpClient client.Client, skrContextFactory SkrContextProvider,
	remoteSyncNamespace string, restrictedModules []string,
) *RemoteCatalog

func (*RemoteCatalog) Delete

func (c *RemoteCatalog) Delete(
	ctx context.Context,
	kyma types.NamespacedName,
) error

func (*RemoteCatalog) GetModuleReleaseMetasToSync

func (c *RemoteCatalog) GetModuleReleaseMetasToSync(
	ctx context.Context,
	kyma *v1beta2.Kyma,
	moduleTemplateList *v1beta2.ModuleTemplateList,
) ([]v1beta2.ModuleReleaseMeta, error)

GetModuleReleaseMetasToSync returns a list of ModuleReleaseMetas that should be synced to the SKR. A ModuleReleaseMeta is synced if it has at least one channel-version pair whose ModuleTemplate is allowed to be synced. Restricted modules (in the restrictedModules list) are only synced if the MRM's kymaSelector matches the Kyma. Non-restricted modules with a kymaSelector are skipped.

func (*RemoteCatalog) GetModuleTemplatesToSync

func (c *RemoteCatalog) GetModuleTemplatesToSync(
	moduleReleaseMetas []v1beta2.ModuleReleaseMeta,
	kyma *v1beta2.Kyma,
	moduleTemplateList *v1beta2.ModuleTemplateList,
) ([]v1beta2.ModuleTemplate, error)

GetModuleTemplatesToSync returns a list of ModuleTemplates that should be synced to the SKR. A ModuleTemplate is synced if it is not mandatory and does not have sync disabled, and if it is referenced by a ModuleReleaseMeta that is synced.

func (*RemoteCatalog) SyncModuleCatalog

func (c *RemoteCatalog) SyncModuleCatalog(ctx context.Context, kyma *v1beta2.Kyma) error

type Settings

type Settings struct {
	// this namespace flag can be used to override the namespace in which all ModuleTemplates should be applied.
	Namespace       string
	SSAPatchOptions *client.PatchOptions
}

type SkrContext

type SkrContext struct {
	client.Client
	// contains filtered or unexported fields
}

func NewSkrContext

func NewSkrContext(client client.Client, event event.Event) *SkrContext

func (*SkrContext) CreateKymaNamespace

func (s *SkrContext) CreateKymaNamespace(ctx context.Context) error

func (*SkrContext) CreateOrFetchKyma

func (s *SkrContext) CreateOrFetchKyma(
	ctx context.Context, kcpClient client.Client, kyma *v1beta2.Kyma,
) (*v1beta2.Kyma, error)

func (*SkrContext) DeleteKyma

func (s *SkrContext) DeleteKyma(ctx context.Context) error

func (*SkrContext) RemoveFinalizersFromKyma

func (s *SkrContext) RemoveFinalizersFromKyma(ctx context.Context) error

func (*SkrContext) SynchronizeKymaMetadata

func (s *SkrContext) SynchronizeKymaMetadata(ctx context.Context, kcpKyma, skrKyma *v1beta2.Kyma) error

SynchronizeKymaMetadata synchronizes the metadata to the SKR Kyma CR . It sets the required labels and annotations.

func (*SkrContext) SynchronizeKymaStatus

func (s *SkrContext) SynchronizeKymaStatus(ctx context.Context, kcpKyma, skrKyma *v1beta2.Kyma) error

SynchronizeKymaStatus synchronizes the status to the SKR Kyma CR.

type SkrContextProvider

type SkrContextProvider interface {
	Get(kyma types.NamespacedName) (*SkrContext, error)
	Init(ctx context.Context, kyma types.NamespacedName) error
	InvalidateCache(kyma types.NamespacedName)
}

type SyncCrdsUseCase

type SyncCrdsUseCase struct {
	// contains filtered or unexported fields
}

func NewSyncCrdsUseCase

func NewSyncCrdsUseCase(kcpClient client.Client, skrContextFactory SkrContextProvider,
	cache *crd.Cache,
) SyncCrdsUseCase

func (*SyncCrdsUseCase) Execute

func (s *SyncCrdsUseCase) Execute(ctx context.Context, kyma *v1beta2.Kyma) (bool, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL