kube

package
v1.12.1 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2021 License: MIT Imports: 31 Imported by: 29

Documentation

Index

Constants

View Source
const (
	RadixBranchAnnotation          = "radix-branch"
	RadixComponentImagesAnnotation = "radix-component-images"
	RadixDeploymentNameAnnotation  = "radix-deployment-name"

	// See https://github.com/equinor/radix-velero-plugin/blob/master/velero-plugins/deployment/restore.go
	RestoredStatusAnnotation = "equinor.com/velero-restored-status"
)

Radix Annotations

View Source
const (
	RadixAppLabel                = "radix-app"
	RadixEnvLabel                = "radix-env"
	RadixComponentLabel          = "radix-component"
	RadixComponentTypeLabel      = "radix-component-type"
	RadixJobNameLabel            = "radix-job-name"
	RadixBuildLabel              = "radix-build"
	RadixCommitLabel             = "radix-commit"
	RadixImageTagLabel           = "radix-image-tag"
	RadixJobTypeLabel            = "radix-job-type"
	RadixJobTypeJob              = "job" // Outer job
	RadixJobTypeBuild            = "build"
	RadixJobTypeCloneConfig      = "clone-config"
	RadixJobTypeJobSchedule      = "job-scheduler"
	RadixAppAliasLabel           = "radix-app-alias"
	RadixExternalAliasLabel      = "radix-app-external-alias"
	RadixActiveClusterAliasLabel = "radix-app-active-cluster-alias"
	RadixMountTypeLabel          = "mount-type"
	RadixGpuLabel                = "radix-node-gpu"
	RadixGpuCountLabel           = "radix-node-gpu-count"

	// Only for backward compatibility
	RadixBranchDeprecated = "radix-branch"
)

Radix Labels

Variables

This section is empty.

Functions

func CreateManageSecretRole added in v1.3.0

func CreateManageSecretRole(appName, roleName string, secretNames []string, customLabels *map[string]string) *auth.Role

CreateManageSecretRole creates a role that can manage a secret with predifined set of verbs

func GetRoleBindingGroups

func GetRoleBindingGroups(groups []string) []auth.Subject

GetRoleBindingGroups Get subjects for list of ad groups

func GetRolebindingToClusterRole added in v1.3.0

func GetRolebindingToClusterRole(appName, roleName string, groups []string) *auth.RoleBinding

GetRolebindingToClusterRole Get role binding object

func GetRolebindingToClusterRoleForServiceAccountWithLabels added in v1.3.0

func GetRolebindingToClusterRoleForServiceAccountWithLabels(roleName, serviceAccountName, serviceAccountNamespace string, labels map[string]string) *auth.RoleBinding

GetRolebindingToClusterRoleForServiceAccountWithLabels Get role binding object

func GetRolebindingToClusterRoleForSubjects added in v1.5.0

func GetRolebindingToClusterRoleForSubjects(appName, roleName string, subjects []auth.Subject) *auth.RoleBinding

GetRolebindingToClusterRoleForSubjects Get role binding object for list of subjects

func GetRolebindingToClusterRoleForSubjectsWithLabels added in v1.5.0

func GetRolebindingToClusterRoleForSubjectsWithLabels(roleName string, subjects []auth.Subject, labels map[string]string) *auth.RoleBinding

GetRolebindingToClusterRoleForSubjectsWithLabels Get role binding object for list of subjects with labels set

func GetRolebindingToClusterRoleWithLabels added in v1.3.0

func GetRolebindingToClusterRoleWithLabels(roleName string, groups []string, labels map[string]string) *auth.RoleBinding

GetRolebindingToClusterRoleWithLabels Get role binding object

func GetRolebindingToRole added in v1.3.0

func GetRolebindingToRole(appName, roleName string, groups []string) *auth.RoleBinding

GetRolebindingToRole Get role binding object

func GetRolebindingToRoleForServiceAccountWithLabels added in v1.3.0

func GetRolebindingToRoleForServiceAccountWithLabels(roleName, serviceAccountName, serviceAccountNamespace string, labels map[string]string) *auth.RoleBinding

GetRolebindingToRoleForServiceAccountWithLabels Get role binding object

func GetRolebindingToRoleForSubjectsWithLabels added in v1.5.0

func GetRolebindingToRoleForSubjectsWithLabels(appName, roleName string, subjects []auth.Subject, labels map[string]string) *auth.RoleBinding

GetRolebindingToRoleForSubjectsWithLabels Get role binding object for list of subjects with labels set

func GetRolebindingToRoleWithLabels added in v1.3.0

func GetRolebindingToRoleWithLabels(roleName string, groups []string, labels map[string]string) *auth.RoleBinding

GetRolebindingToRoleWithLabels Get role binding object

func GetRolebindingToRoleWithLabelsForSubjects added in v1.5.0

func GetRolebindingToRoleWithLabelsForSubjects(roleName string, subjects []auth.Subject, labels map[string]string) *auth.RoleBinding

GetRolebindingToRoleWithLabelsForSubjects Get rolebinding object with subjects as input

Types

type Kube

type Kube struct {
	RrLister                 v1Lister.RadixRegistrationLister
	ReLister                 v1Lister.RadixEnvironmentLister
	RdLister                 v1Lister.RadixDeploymentLister
	NamespaceLister          coreListers.NamespaceLister
	ConfigMapLister          coreListers.ConfigMapLister
	SecretLister             coreListers.SecretLister
	DeploymentLister         appsv1Listers.DeploymentLister
	IngressLister            networkingListers.IngressLister
	ServiceLister            coreListers.ServiceLister
	RoleBindingLister        rbacListers.RoleBindingLister
	ClusterRoleBindingLister rbacListers.ClusterRoleBindingLister
	RoleLister               rbacListers.RoleLister
	ClusterRoleLister        rbacListers.ClusterRoleLister
	ServiceAccountLister     coreListers.ServiceAccountLister
	LimitRangeLister         coreListers.LimitRangeLister
	JobLister                batchListers.JobLister
	// contains filtered or unexported fields
}

Kube Stuct for accessing lower level kubernetes functions

func New

func New(client kubernetes.Interface, radixClient radixclient.Interface) (*Kube, error)

New Constructor

func NewWithListers

func NewWithListers(client kubernetes.Interface,
	radixclient radixclient.Interface,
	kubeInformerFactory kubeinformers.SharedInformerFactory,
	radixInformerFactory informers.SharedInformerFactory) (*Kube, error)

NewWithListers Constructor

func (*Kube) ApplyClusterRole

func (k *Kube) ApplyClusterRole(clusterrole *auth.ClusterRole) error

ApplyClusterRole Creates or updates cluster-role

func (*Kube) ApplyClusterRoleBinding

func (k *Kube) ApplyClusterRoleBinding(clusterrolebinding *auth.ClusterRoleBinding) error

ApplyClusterRoleBinding Creates or updates cluster-role-binding

func (*Kube) ApplyClusterRoleToServiceAccount

func (k *Kube) ApplyClusterRoleToServiceAccount(roleName string, serviceAccount *corev1.ServiceAccount, ownerReference []metav1.OwnerReference) error

ApplyClusterRoleToServiceAccount Creates cluster-role-binding as a link between role and service account

func (*Kube) ApplyDeployment

func (kubeutil *Kube) ApplyDeployment(namespace string, currentDeployment *appsv1.Deployment, desiredDeployment *appsv1.Deployment) error

ApplyDeployment Create or update deployment in provided namespace

func (*Kube) ApplyIngress

func (kubeutil *Kube) ApplyIngress(namespace string, ingress *networkingv1beta1.Ingress) error

ApplyIngress Will create or update ingress in provided namespace

func (*Kube) ApplyLimitRange

func (k *Kube) ApplyLimitRange(namespace string, limitRange *corev1.LimitRange) error

ApplyLimitRange Applies limit range to namespace

func (*Kube) ApplyNamespace

func (kubeutil *Kube) ApplyNamespace(name string, labels map[string]string, ownerRefs []metav1.OwnerReference) error

ApplyNamespace Creates a new namespace, if not exists allready

func (*Kube) ApplyRole

func (k *Kube) ApplyRole(namespace string, role *auth.Role) error

ApplyRole Creates or updates role

func (*Kube) ApplyRoleBinding

func (k *Kube) ApplyRoleBinding(namespace string, role *auth.RoleBinding) error

ApplyRoleBinding Creates or updates role

func (*Kube) ApplySecret

func (k *Kube) ApplySecret(namespace string, secret *corev1.Secret) (savedSecret *corev1.Secret, err error)

ApplySecret Creates or updates secret to namespace

func (*Kube) ApplyService added in v1.4.1

func (k *Kube) ApplyService(namespace string, service *corev1.Service) error

ApplyService Will create or update service in provided namespace

func (*Kube) ApplyServiceAccount

func (kubeutil *Kube) ApplyServiceAccount(serviceAccount corev1.ServiceAccount) (*corev1.ServiceAccount, error)

ApplyServiceAccount Creates or updates service account

func (*Kube) BuildLimitRange

func (k *Kube) BuildLimitRange(namespace, name, appName string,
	defaultResourceCPU, defaultResourceMemory, defaultRequestCPU, defaultRequestMemory resource.Quantity) *corev1.LimitRange

BuildLimitRange Builds a limit range spec

func (*Kube) DeleteClusterRoleBinding added in v1.5.0

func (k *Kube) DeleteClusterRoleBinding(name string) error

DeleteClusterRoleBinding Deletes a clusterrolebinding

func (*Kube) DeleteRole added in v1.5.0

func (k *Kube) DeleteRole(namespace, name string) error

DeleteRole Deletes a role in a namespace

func (*Kube) DeleteRoleBinding added in v1.5.0

func (k *Kube) DeleteRoleBinding(namespace, name string) error

DeleteRoleBinding Deletes a rolebinding in a namespace

func (*Kube) DeleteSecret added in v1.5.2

func (k *Kube) DeleteSecret(namespace, secretName string) error

DeleteSecret Deletes a secret in a namespace

func (*Kube) DeleteServiceAccount added in v1.5.0

func (kubeutil *Kube) DeleteServiceAccount(namespace, name string) error

DeleteServiceAccount Deletes service account

func (*Kube) GetClusterName

func (kubeutil *Kube) GetClusterName() (string, error)

GetClusterName Gets the global name of the cluster from config map in default namespace

func (*Kube) GetClusterRole added in v1.4.2

func (k *Kube) GetClusterRole(name string) (*auth.ClusterRole, error)

GetClusterRole Gets cluster role

func (*Kube) GetConfigMap

func (kubeutil *Kube) GetConfigMap(namespace, name string) (*corev1.ConfigMap, error)

GetConfigMap Gets config map by name

func (*Kube) GetContainerRegistry

func (kubeutil *Kube) GetContainerRegistry() (string, error)

GetContainerRegistry Gets the container registry from config map in default namespace

func (*Kube) GetDeployment added in v1.5.17

func (kubeutil *Kube) GetDeployment(namespace, name string) (*appsv1.Deployment, error)

func (*Kube) GetEnvironment added in v1.5.5

func (kubeutil *Kube) GetEnvironment(name string) (*v1.RadixEnvironment, error)

GetEnvironment Gets environment using lister from cache if present

func (*Kube) GetRadixDeployment

func (kubeutil *Kube) GetRadixDeployment(namespace, name string) (*v1.RadixDeployment, error)

GetRadixDeployment Gets deployment using lister if present

func (*Kube) GetRegistration

func (kubeutil *Kube) GetRegistration(name string) (*v1.RadixRegistration, error)

GetRegistration Gets registration using lister if present

func (*Kube) GetRole added in v1.4.2

func (k *Kube) GetRole(namespace, name string) (*auth.Role, error)

GetRole Gets role

func (*Kube) GetRoleBinding added in v1.5.2

func (k *Kube) GetRoleBinding(namespace, name string) (*auth.RoleBinding, error)

GetRoleBinding Gets rolebinding

func (*Kube) GetSecret added in v1.4.3

func (k *Kube) GetSecret(namespace, name string) (*corev1.Secret, error)

GetSecret Get secret from cache, if lister exist

func (*Kube) ListClusterRoleBindings added in v1.4.2

func (k *Kube) ListClusterRoleBindings(namespace string) ([]*auth.ClusterRoleBinding, error)

ListClusterRoleBindings List cluster roles

func (*Kube) ListClusterRoles added in v1.4.2

func (k *Kube) ListClusterRoles(namespace string) ([]*auth.ClusterRole, error)

ListClusterRoles List cluster roles

func (*Kube) ListDeployments added in v1.4.2

func (kubeutil *Kube) ListDeployments(namespace string) ([]*appsv1.Deployment, error)

ListDeployments List deployments

func (*Kube) ListEnvironments added in v1.5.5

func (kubeutil *Kube) ListEnvironments() ([]*v1.RadixEnvironment, error)

ListEnvironments lists environments from cache if lister is present

func (*Kube) ListIngresses added in v1.4.0

func (kubeutil *Kube) ListIngresses(namespace string) ([]*networkingv1beta1.Ingress, error)

ListIngresses lists ingresses

func (*Kube) ListIngressesWithSelector added in v1.4.0

func (kubeutil *Kube) ListIngressesWithSelector(namespace string, labelSelectorString *string) ([]*networkingv1beta1.Ingress, error)

ListIngressesWithSelector lists ingresses

func (*Kube) ListJobs added in v1.10.2

func (k *Kube) ListJobs(namespace string) ([]*batchv1.Job, error)

ListJobs Lists jobs from cache or from cluster

func (*Kube) ListRadixDeployments

func (kubeutil *Kube) ListRadixDeployments(namespace string) ([]*v1.RadixDeployment, error)

ListRadixDeployments Gets deployments using lister if present

func (*Kube) ListRegistrations

func (kubeutil *Kube) ListRegistrations() ([]*v1.RadixRegistration, error)

ListRegistrations lists registrations

func (*Kube) ListRoleBindings added in v1.4.1

func (k *Kube) ListRoleBindings(namespace string) ([]*auth.RoleBinding, error)

ListRoleBindings Lists role bindings from cache or from cluster

func (*Kube) ListRoleBindingsWithSelector added in v1.4.1

func (k *Kube) ListRoleBindingsWithSelector(namespace string, labelSelectorString *string) ([]*auth.RoleBinding, error)

ListRoleBindingsWithSelector Lists role bindings from cache or from cluster using a selector

func (*Kube) ListRoles added in v1.4.2

func (k *Kube) ListRoles(namespace string) ([]*auth.Role, error)

ListRoles List roles

func (*Kube) ListRolesWithSelector added in v1.4.2

func (k *Kube) ListRolesWithSelector(namespace string, labelSelectorString *string) ([]*auth.Role, error)

ListRolesWithSelector List roles

func (*Kube) ListSecrets added in v1.4.3

func (k *Kube) ListSecrets(namespace string) ([]*v1.Secret, error)

ListSecrets secrets in namespace

func (*Kube) ListSecretsWithSelector added in v1.4.3

func (k *Kube) ListSecretsWithSelector(namespace string, labelSelectorString *string) ([]*v1.Secret, error)

ListSecretsWithSelector secrets in namespace

func (*Kube) ListServices added in v1.4.1

func (k *Kube) ListServices(namespace string) ([]*corev1.Service, error)

ListServices Lists services from cache or from cluster

func (*Kube) SecretExists

func (k *Kube) SecretExists(namespace, secretName string) bool

SecretExists Checks if secret already exists

func (*Kube) WaitForCompletionOf added in v1.4.0

func (kubeutil *Kube) WaitForCompletionOf(job *batchv1.Job) error

WaitForCompletionOf Will wait for job to complete

type NamespaceWatcher

type NamespaceWatcher interface {
	WaitFor(namespace string) error
}

NamespaceWatcher Watcher to wait for namespace to be created

type NamespaceWatcherImpl

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

NamespaceWatcherImpl Implementation of watcher

func NewNamespaceWatcherImpl

func NewNamespaceWatcherImpl(client kubernetes.Interface) NamespaceWatcherImpl

NewNamespaceWatcherImpl Constructor

func (NamespaceWatcherImpl) WaitFor

func (watcher NamespaceWatcherImpl) WaitFor(namespace string) error

WaitFor Waits for namespace to appear

Jump to

Keyboard shortcuts

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