Documentation
¶
Index ¶
- type BaseKubernetesManager
- func (k *BaseKubernetesManager) ApplyConfigMap(name, namespace string, data map[string]string) error
- func (k *BaseKubernetesManager) ApplyGitRepository(repo *sourcev1.GitRepository) error
- func (k *BaseKubernetesManager) ApplyKustomization(kustomization kustomizev1.Kustomization) error
- func (k *BaseKubernetesManager) ApplyOCIRepository(repo *sourcev1.OCIRepository) error
- func (k *BaseKubernetesManager) CheckGitRepositoryStatus() error
- func (k *BaseKubernetesManager) CreateNamespace(name string) error
- func (k *BaseKubernetesManager) DeleteKustomization(name, namespace string) error
- func (k *BaseKubernetesManager) DeleteNamespace(name string) error
- func (k *BaseKubernetesManager) GetHelmReleasesForKustomization(name, namespace string) ([]helmv2.HelmRelease, error)
- func (k *BaseKubernetesManager) GetKustomizationStatus(names []string) (map[string]bool, error)
- func (k *BaseKubernetesManager) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
- func (k *BaseKubernetesManager) Initialize() error
- func (k *BaseKubernetesManager) SuspendHelmRelease(name, namespace string) error
- func (k *BaseKubernetesManager) SuspendKustomization(name, namespace string) error
- func (k *BaseKubernetesManager) WaitForKubernetesHealthy(ctx context.Context, endpoint string, outputFunc func(string), ...) error
- func (k *BaseKubernetesManager) WaitForKustomizations(message string, names ...string) error
- type DynamicKubernetesClient
- func (c *DynamicKubernetesClient) ApplyResource(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, ...) (*unstructured.Unstructured, error)
- func (c *DynamicKubernetesClient) CheckHealth(ctx context.Context, endpoint string) error
- func (c *DynamicKubernetesClient) DeleteResource(gvr schema.GroupVersionResource, namespace, name string, ...) error
- func (c *DynamicKubernetesClient) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
- func (c *DynamicKubernetesClient) GetResource(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
- func (c *DynamicKubernetesClient) ListResources(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
- func (c *DynamicKubernetesClient) PatchResource(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, ...) (*unstructured.Unstructured, error)
- type KubernetesClient
- type KubernetesManager
- type MockKubernetesClient
- func (m *MockKubernetesClient) ApplyResource(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, ...) (*unstructured.Unstructured, error)
- func (m *MockKubernetesClient) CheckHealth(ctx context.Context, endpoint string) error
- func (m *MockKubernetesClient) DeleteResource(gvr schema.GroupVersionResource, namespace, name string, ...) error
- func (m *MockKubernetesClient) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
- func (m *MockKubernetesClient) GetResource(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
- func (m *MockKubernetesClient) ListResources(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
- func (m *MockKubernetesClient) PatchResource(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, ...) (*unstructured.Unstructured, error)
- type MockKubernetesManager
- func (m *MockKubernetesManager) ApplyConfigMap(name, namespace string, data map[string]string) error
- func (m *MockKubernetesManager) ApplyGitRepository(repo *sourcev1.GitRepository) error
- func (m *MockKubernetesManager) ApplyKustomization(kustomization kustomizev1.Kustomization) error
- func (m *MockKubernetesManager) ApplyOCIRepository(repo *sourcev1.OCIRepository) error
- func (m *MockKubernetesManager) CheckGitRepositoryStatus() error
- func (m *MockKubernetesManager) CreateNamespace(name string) error
- func (m *MockKubernetesManager) DeleteKustomization(name, namespace string) error
- func (m *MockKubernetesManager) DeleteNamespace(name string) error
- func (m *MockKubernetesManager) GetHelmReleasesForKustomization(name, namespace string) ([]helmv2.HelmRelease, error)
- func (m *MockKubernetesManager) GetKustomizationStatus(names []string) (map[string]bool, error)
- func (m *MockKubernetesManager) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
- func (m *MockKubernetesManager) Initialize() error
- func (m *MockKubernetesManager) SuspendHelmRelease(name, namespace string) error
- func (m *MockKubernetesManager) SuspendKustomization(name, namespace string) error
- func (m *MockKubernetesManager) WaitForKubernetesHealthy(ctx context.Context, endpoint string, outputFunc func(string), ...) error
- func (m *MockKubernetesManager) WaitForKustomizations(message string, names ...string) error
- type Shims
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseKubernetesManager ¶
type BaseKubernetesManager struct {
// contains filtered or unexported fields
}
BaseKubernetesManager implements KubernetesManager interface
func NewKubernetesManager ¶
func NewKubernetesManager(injector di.Injector) *BaseKubernetesManager
NewKubernetesManager creates a new instance of BaseKubernetesManager
func (*BaseKubernetesManager) ApplyConfigMap ¶
func (k *BaseKubernetesManager) ApplyConfigMap(name, namespace string, data map[string]string) error
ApplyConfigMap creates or updates a ConfigMap using SSA
func (*BaseKubernetesManager) ApplyGitRepository ¶
func (k *BaseKubernetesManager) ApplyGitRepository(repo *sourcev1.GitRepository) error
ApplyGitRepository creates or updates a GitRepository resource using SSA
func (*BaseKubernetesManager) ApplyKustomization ¶
func (k *BaseKubernetesManager) ApplyKustomization(kustomization kustomizev1.Kustomization) error
ApplyKustomization creates or updates a Kustomization resource using SSA
func (*BaseKubernetesManager) ApplyOCIRepository ¶
func (k *BaseKubernetesManager) ApplyOCIRepository(repo *sourcev1.OCIRepository) error
ApplyOCIRepository creates or updates an OCIRepository resource using SSA
func (*BaseKubernetesManager) CheckGitRepositoryStatus ¶
func (k *BaseKubernetesManager) CheckGitRepositoryStatus() error
CheckGitRepositoryStatus checks the status of all GitRepository and OCIRepository resources
func (*BaseKubernetesManager) CreateNamespace ¶
func (k *BaseKubernetesManager) CreateNamespace(name string) error
CreateNamespace creates a new namespace
func (*BaseKubernetesManager) DeleteKustomization ¶
func (k *BaseKubernetesManager) DeleteKustomization(name, namespace string) error
DeleteKustomization removes a Kustomization resource using background deletion. Background deletion allows the kustomization to enter "Terminating" state while its children are deleted in the background. The method waits for the deletion to complete.
func (*BaseKubernetesManager) DeleteNamespace ¶
func (k *BaseKubernetesManager) DeleteNamespace(name string) error
DeleteNamespace deletes the specified namespace using foreground deletion. Foreground deletion ensures all resources in the namespace are removed before the namespace is deleted. This method waits for the deletion to complete before returning. Returns nil if the namespace is deleted successfully, or an error if deletion fails or times out.
func (*BaseKubernetesManager) GetHelmReleasesForKustomization ¶
func (k *BaseKubernetesManager) GetHelmReleasesForKustomization(name, namespace string) ([]helmv2.HelmRelease, error)
GetHelmReleasesForKustomization gets HelmReleases associated with a Kustomization
func (*BaseKubernetesManager) GetKustomizationStatus ¶
func (k *BaseKubernetesManager) GetKustomizationStatus(names []string) (map[string]bool, error)
GetKustomizationStatus returns a map indicating readiness for each specified kustomization in the default Flux system namespace. If a kustomization is not found, its status is set to false. If any kustomization has a Ready condition with Status False and Reason "ReconciliationFailed", an error is returned with the failure message.
func (*BaseKubernetesManager) GetNodeReadyStatus ¶
func (k *BaseKubernetesManager) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
GetNodeReadyStatus returns a map of node names to their Ready condition status. Returns a map of node names to Ready status (true if Ready, false if NotReady), or an error if listing fails.
func (*BaseKubernetesManager) Initialize ¶
func (k *BaseKubernetesManager) Initialize() error
Initialize sets up the BaseKubernetesManager by resolving dependencies
func (*BaseKubernetesManager) SuspendHelmRelease ¶
func (k *BaseKubernetesManager) SuspendHelmRelease(name, namespace string) error
SuspendHelmRelease applies a JSON merge patch to set spec.suspend=true on the specified HelmRelease.
func (*BaseKubernetesManager) SuspendKustomization ¶
func (k *BaseKubernetesManager) SuspendKustomization(name, namespace string) error
SuspendKustomization applies a JSON merge patch to set spec.suspend=true on the specified Kustomization.
func (*BaseKubernetesManager) WaitForKubernetesHealthy ¶
func (k *BaseKubernetesManager) WaitForKubernetesHealthy(ctx context.Context, endpoint string, outputFunc func(string), nodeNames ...string) error
WaitForKubernetesHealthy waits for the Kubernetes API to become healthy within the context deadline. If nodeNames are provided, verifies all specified nodes reach Ready state before returning. Returns an error if the API is unreachable or any specified nodes are not Ready within the deadline.
func (*BaseKubernetesManager) WaitForKustomizations ¶
func (k *BaseKubernetesManager) WaitForKustomizations(message string, names ...string) error
WaitForKustomizations waits for kustomizations to be ready
type DynamicKubernetesClient ¶
type DynamicKubernetesClient struct {
// contains filtered or unexported fields
}
DynamicKubernetesClient implements KubernetesClient using dynamic client
func NewDynamicKubernetesClient ¶
func NewDynamicKubernetesClient() *DynamicKubernetesClient
NewDynamicKubernetesClient creates a new DynamicKubernetesClient
func (*DynamicKubernetesClient) ApplyResource ¶
func (c *DynamicKubernetesClient) ApplyResource(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, opts metav1.ApplyOptions) (*unstructured.Unstructured, error)
ApplyResource applies a resource using server-side apply
func (*DynamicKubernetesClient) CheckHealth ¶
func (c *DynamicKubernetesClient) CheckHealth(ctx context.Context, endpoint string) error
CheckHealth verifies Kubernetes API connectivity by listing nodes using the dynamic client. If an endpoint is specified, it overrides the default kubeconfig for this check. Returns an error if the client cannot be initialized or the API is unreachable.
func (*DynamicKubernetesClient) DeleteResource ¶
func (c *DynamicKubernetesClient) DeleteResource(gvr schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) error
DeleteResource deletes a resource
func (*DynamicKubernetesClient) GetNodeReadyStatus ¶
func (c *DynamicKubernetesClient) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
GetNodeReadyStatus returns a map of node names to their Ready condition status. It checks the Ready condition for each specified node using the dynamic client. If nodeNames is empty, all nodes are checked. Nodes not found are omitted from the result. Returns a map of node names to Ready status (true if Ready, false if NotReady), or an error if listing fails.
func (*DynamicKubernetesClient) GetResource ¶
func (c *DynamicKubernetesClient) GetResource(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
GetResource gets a resource by name and namespace
func (*DynamicKubernetesClient) ListResources ¶
func (c *DynamicKubernetesClient) ListResources(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
ListResources lists resources in a namespace
func (*DynamicKubernetesClient) PatchResource ¶
func (c *DynamicKubernetesClient) PatchResource(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (*unstructured.Unstructured, error)
PatchResource patches a resource
type KubernetesClient ¶
type KubernetesClient interface {
// Resource operations
GetResource(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
ListResources(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
ApplyResource(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, opts metav1.ApplyOptions) (*unstructured.Unstructured, error)
DeleteResource(gvr schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) error
PatchResource(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (*unstructured.Unstructured, error)
CheckHealth(ctx context.Context, endpoint string) error
// Node health operations
GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
}
KubernetesClient defines methods for Kubernetes resource operations
type KubernetesManager ¶
type KubernetesManager interface {
Initialize() error
ApplyKustomization(kustomization kustomizev1.Kustomization) error
DeleteKustomization(name, namespace string) error
WaitForKustomizations(message string, names ...string) error
CreateNamespace(name string) error
DeleteNamespace(name string) error
ApplyConfigMap(name, namespace string, data map[string]string) error
GetHelmReleasesForKustomization(name, namespace string) ([]helmv2.HelmRelease, error)
SuspendKustomization(name, namespace string) error
SuspendHelmRelease(name, namespace string) error
ApplyGitRepository(repo *sourcev1.GitRepository) error
ApplyOCIRepository(repo *sourcev1.OCIRepository) error
CheckGitRepositoryStatus() error
GetKustomizationStatus(names []string) (map[string]bool, error)
WaitForKubernetesHealthy(ctx context.Context, endpoint string, outputFunc func(string), nodeNames ...string) error
GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
}
KubernetesManager defines methods for Kubernetes resource management
type MockKubernetesClient ¶
type MockKubernetesClient struct {
GetResourceFunc func(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
ListResourcesFunc func(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
ApplyResourceFunc func(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, opts metav1.ApplyOptions) (*unstructured.Unstructured, error)
DeleteResourceFunc func(gvr schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) error
PatchResourceFunc func(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (*unstructured.Unstructured, error)
CheckHealthFunc func(ctx context.Context, endpoint string) error
GetNodeReadyStatusFunc func(ctx context.Context, nodeNames []string) (map[string]bool, error)
}
MockKubernetesClient is a mock implementation of KubernetesClient interface for testing
func NewMockKubernetesClient ¶
func NewMockKubernetesClient() *MockKubernetesClient
NewMockKubernetesClient creates a new MockKubernetesClient
func (*MockKubernetesClient) ApplyResource ¶
func (m *MockKubernetesClient) ApplyResource(gvr schema.GroupVersionResource, obj *unstructured.Unstructured, opts metav1.ApplyOptions) (*unstructured.Unstructured, error)
ApplyResource implements KubernetesClient interface
func (*MockKubernetesClient) CheckHealth ¶
func (m *MockKubernetesClient) CheckHealth(ctx context.Context, endpoint string) error
CheckHealth implements KubernetesClient interface
func (*MockKubernetesClient) DeleteResource ¶
func (m *MockKubernetesClient) DeleteResource(gvr schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) error
DeleteResource implements KubernetesClient interface
func (*MockKubernetesClient) GetNodeReadyStatus ¶
func (m *MockKubernetesClient) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
GetNodeReadyStatus implements KubernetesClient interface
func (*MockKubernetesClient) GetResource ¶
func (m *MockKubernetesClient) GetResource(gvr schema.GroupVersionResource, namespace, name string) (*unstructured.Unstructured, error)
GetResource implements KubernetesClient interface
func (*MockKubernetesClient) ListResources ¶
func (m *MockKubernetesClient) ListResources(gvr schema.GroupVersionResource, namespace string) (*unstructured.UnstructuredList, error)
ListResources implements KubernetesClient interface
func (*MockKubernetesClient) PatchResource ¶
func (m *MockKubernetesClient) PatchResource(gvr schema.GroupVersionResource, namespace, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (*unstructured.Unstructured, error)
PatchResource implements KubernetesClient interface
type MockKubernetesManager ¶
type MockKubernetesManager struct {
InitializeFunc func() error
ApplyKustomizationFunc func(kustomization kustomizev1.Kustomization) error
DeleteKustomizationFunc func(name, namespace string) error
WaitForKustomizationsFunc func(message string, names ...string) error
GetKustomizationStatusFunc func(names []string) (map[string]bool, error)
CreateNamespaceFunc func(name string) error
DeleteNamespaceFunc func(name string) error
ApplyConfigMapFunc func(name, namespace string, data map[string]string) error
GetHelmReleasesForKustomizationFunc func(name, namespace string) ([]helmv2.HelmRelease, error)
SuspendKustomizationFunc func(name, namespace string) error
SuspendHelmReleaseFunc func(name, namespace string) error
ApplyGitRepositoryFunc func(repo *sourcev1.GitRepository) error
ApplyOCIRepositoryFunc func(repo *sourcev1.OCIRepository) error
CheckGitRepositoryStatusFunc func() error
WaitForKubernetesHealthyFunc func(ctx context.Context, endpoint string, outputFunc func(string), nodeNames ...string) error
GetNodeReadyStatusFunc func(ctx context.Context, nodeNames []string) (map[string]bool, error)
}
MockKubernetesManager is a mock implementation of KubernetesManager interface for testing
func NewMockKubernetesManager ¶
func NewMockKubernetesManager(injector di.Injector) *MockKubernetesManager
NewMockKubernetesManager creates a new instance of MockKubernetesManager
func (*MockKubernetesManager) ApplyConfigMap ¶
func (m *MockKubernetesManager) ApplyConfigMap(name, namespace string, data map[string]string) error
ApplyConfigMap implements KubernetesManager interface
func (*MockKubernetesManager) ApplyGitRepository ¶
func (m *MockKubernetesManager) ApplyGitRepository(repo *sourcev1.GitRepository) error
ApplyGitRepository implements KubernetesManager interface
func (*MockKubernetesManager) ApplyKustomization ¶
func (m *MockKubernetesManager) ApplyKustomization(kustomization kustomizev1.Kustomization) error
ApplyKustomization implements KubernetesManager interface
func (*MockKubernetesManager) ApplyOCIRepository ¶
func (m *MockKubernetesManager) ApplyOCIRepository(repo *sourcev1.OCIRepository) error
ApplyOCIRepository implements KubernetesManager interface
func (*MockKubernetesManager) CheckGitRepositoryStatus ¶
func (m *MockKubernetesManager) CheckGitRepositoryStatus() error
CheckGitRepositoryStatus checks the status of all GitRepository resources
func (*MockKubernetesManager) CreateNamespace ¶
func (m *MockKubernetesManager) CreateNamespace(name string) error
CreateNamespace implements KubernetesManager interface
func (*MockKubernetesManager) DeleteKustomization ¶
func (m *MockKubernetesManager) DeleteKustomization(name, namespace string) error
DeleteKustomization implements KubernetesManager interface
func (*MockKubernetesManager) DeleteNamespace ¶
func (m *MockKubernetesManager) DeleteNamespace(name string) error
DeleteNamespace implements KubernetesManager interface
func (*MockKubernetesManager) GetHelmReleasesForKustomization ¶
func (m *MockKubernetesManager) GetHelmReleasesForKustomization(name, namespace string) ([]helmv2.HelmRelease, error)
GetHelmReleasesForKustomization implements KubernetesManager interface
func (*MockKubernetesManager) GetKustomizationStatus ¶
func (m *MockKubernetesManager) GetKustomizationStatus(names []string) (map[string]bool, error)
GetKustomizationStatus implements KubernetesManager interface
func (*MockKubernetesManager) GetNodeReadyStatus ¶
func (m *MockKubernetesManager) GetNodeReadyStatus(ctx context.Context, nodeNames []string) (map[string]bool, error)
GetNodeReadyStatus returns a map of node names to their Ready condition status.
func (*MockKubernetesManager) Initialize ¶
func (m *MockKubernetesManager) Initialize() error
Initialize implements KubernetesManager interface
func (*MockKubernetesManager) SuspendHelmRelease ¶
func (m *MockKubernetesManager) SuspendHelmRelease(name, namespace string) error
SuspendHelmRelease implements KubernetesManager interface
func (*MockKubernetesManager) SuspendKustomization ¶
func (m *MockKubernetesManager) SuspendKustomization(name, namespace string) error
SuspendKustomization implements KubernetesManager interface
func (*MockKubernetesManager) WaitForKubernetesHealthy ¶
func (m *MockKubernetesManager) WaitForKubernetesHealthy(ctx context.Context, endpoint string, outputFunc func(string), nodeNames ...string) error
WaitForKubernetesHealthy waits for the Kubernetes API endpoint to be healthy with polling and timeout
func (*MockKubernetesManager) WaitForKustomizations ¶
func (m *MockKubernetesManager) WaitForKustomizations(message string, names ...string) error
WaitForKustomizations implements KubernetesManager interface
type Shims ¶
type Shims struct {
// Other operations
RegexpMatchString func(pattern string, s string) (bool, error)
YamlMarshal func(v any) ([]byte, error)
YamlUnmarshal func(data []byte, v any, opts ...yaml.JSONOpt) error
K8sYamlUnmarshal func(data []byte, v any, opts ...yaml.JSONOpt) error
TimeSleep func(d time.Duration)
ToUnstructured func(obj any) (map[string]any, error)
FromUnstructured func(obj map[string]any, target any) error
}
Shims provides testable interfaces for external dependencies