kube

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2021 License: MPL-2.0 Imports: 30 Imported by: 14

Documentation

Index

Constants

View Source
const FluxNamespace = "flux-system"
View Source
const WeGOCRDName = "apps.wego.weave.works"
View Source
const WeGONamespace = "wego-system"

Variables

View Source
var (
	GVRSecret         schema.GroupVersionResource = corev1.SchemeGroupVersion.WithResource("secrets")
	GVRApp            schema.GroupVersionResource = wego.GroupVersion.WithResource("apps")
	GVRKustomization  schema.GroupVersionResource = kustomizev1.GroupVersion.WithResource("kustomizations")
	GVRGitRepository  schema.GroupVersionResource = sourcev1.GroupVersion.WithResource("gitrepositories")
	GVRHelmRepository schema.GroupVersionResource = helmv2.GroupVersion.WithResource("helmrepositories")
	GVRHelmRelease    schema.GroupVersionResource = helmv2.GroupVersion.WithResource("helmreleases")
)

Functions

func CreateScheme added in v0.2.0

func CreateScheme() *apiruntime.Scheme

Types

type ClusterStatus

type ClusterStatus int
const (
	Unknown ClusterStatus = iota
	Unmodified
	FluxInstalled
	WeGOInstalled
)

func (ClusterStatus) String

func (cs ClusterStatus) String() string

Function to translate ClusterStatus to a string

type Kube

type Kube interface {
	Apply(ctx context.Context, manifest []byte, namespace string) error
	Delete(ctx context.Context, manifest []byte) error
	DeleteByName(ctx context.Context, name string, gvr schema.GroupVersionResource, namespace string) error
	SecretPresent(ctx context.Context, string, namespace string) (bool, error)
	GetApplications(ctx context.Context, namespace string) ([]wego.Application, error)
	FluxPresent(ctx context.Context) (bool, error)
	GetClusterName(ctx context.Context) (string, error)
	GetClusterStatus(ctx context.Context) ClusterStatus
	GetApplication(ctx context.Context, name types.NamespacedName) (*wego.Application, error)
	GetResource(ctx context.Context, name types.NamespacedName, resource Resource) error
	GetSecret(ctx context.Context, name types.NamespacedName) (*corev1.Secret, error)
}

func NewKubeHTTPClient added in v0.2.0

func NewKubeHTTPClient() (Kube, client.Client, error)

type KubeClient

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

func New

func New(cliRunner runner.Runner) *KubeClient

func (*KubeClient) Apply

func (k *KubeClient) Apply(_ context.Context, manifests []byte, namespace string) error

func (*KubeClient) Delete

func (k *KubeClient) Delete(_ context.Context, manifest []byte) error

func (*KubeClient) DeleteByName added in v0.2.3

func (k *KubeClient) DeleteByName(_ context.Context, name string, gvr schema.GroupVersionResource, namespace string) error

func (*KubeClient) FluxPresent

func (k *KubeClient) FluxPresent(ctx context.Context) (bool, error)

FluxPresent checks flux presence in the cluster

func (*KubeClient) GetApplication

func (k *KubeClient) GetApplication(ctx context.Context, name types.NamespacedName) (*wego.Application, error)

func (*KubeClient) GetApplications added in v0.2.0

func (k *KubeClient) GetApplications(ctx context.Context, ns string) ([]wego.Application, error)

func (*KubeClient) GetClusterName

func (k *KubeClient) GetClusterName(ctx context.Context) (string, error)

func (*KubeClient) GetClusterStatus

func (k *KubeClient) GetClusterStatus(ctx context.Context) ClusterStatus

func (*KubeClient) GetResource added in v0.2.1

func (k *KubeClient) GetResource(ctx context.Context, name types.NamespacedName, resource Resource) error

func (*KubeClient) GetSecret added in v0.2.5

func (k *KubeClient) GetSecret(ctx context.Context, name types.NamespacedName) (*corev1.Secret, error)

func (*KubeClient) SecretPresent

func (k *KubeClient) SecretPresent(ctx context.Context, secretName, namespace string) (bool, error)

SecretPresent checks for a specific secret within a specified namespace

type KubeHTTP added in v0.2.0

type KubeHTTP struct {
	Client      client.Client
	ClusterName string
	DynClient   dynamic.Interface
	RestMapper  *restmapper.DeferredDiscoveryRESTMapper
}

This is an alternative implementation of the kube.Kube interface, specifically designed to query the K8s API directly instead of relying on `kubectl` to be present in the PATH.

func (*KubeHTTP) Apply added in v0.2.0

func (k *KubeHTTP) Apply(ctx context.Context, manifest []byte, namespace string) error

func (*KubeHTTP) Delete added in v0.2.0

func (k *KubeHTTP) Delete(ctx context.Context, manifest []byte) error

func (*KubeHTTP) DeleteByName added in v0.2.3

func (c *KubeHTTP) DeleteByName(ctx context.Context, name string, gvr schema.GroupVersionResource, namespace string) error

func (*KubeHTTP) FluxPresent added in v0.2.0

func (k *KubeHTTP) FluxPresent(ctx context.Context) (bool, error)

func (*KubeHTTP) GetApplication added in v0.2.0

func (k *KubeHTTP) GetApplication(ctx context.Context, name types.NamespacedName) (*wego.Application, error)

func (*KubeHTTP) GetApplications added in v0.2.0

func (k *KubeHTTP) GetApplications(ctx context.Context, namespace string) ([]wego.Application, error)

func (*KubeHTTP) GetClusterName added in v0.2.0

func (k *KubeHTTP) GetClusterName(ctx context.Context) (string, error)

func (*KubeHTTP) GetClusterStatus added in v0.2.0

func (k *KubeHTTP) GetClusterStatus(ctx context.Context) ClusterStatus

func (*KubeHTTP) GetResource added in v0.2.1

func (k *KubeHTTP) GetResource(ctx context.Context, name types.NamespacedName, resource Resource) error

func (KubeHTTP) GetSecret added in v0.2.5

func (k KubeHTTP) GetSecret(ctx context.Context, name types.NamespacedName) (*corev1.Secret, error)

func (*KubeHTTP) SecretPresent added in v0.2.0

func (k *KubeHTTP) SecretPresent(ctx context.Context, secretName string, namespace string) (bool, error)

type Resource added in v0.2.1

type Resource interface {
	metav1.Object
	runtime.Object
}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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