kube

package
v1.1.71 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2018 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ChartAnchore the default chart for the Anchore plugin
	ChartAnchore = "stable/anchore-engine"

	// ChartCDX the default name of the CDX chart
	ChartCDX = "jenkins-x/cdx"

	// ChartGitea the default name of the gitea chart
	ChartGitea = "jenkins-x/gitea"

	// ChartKubeless the default chart for kubeless
	ChartKubeless = "incubator/kubeless"

	// ServiceJenkins is the name of the Jenkins Service
	ServiceJenkins = "jenkins"

	// SeriviceCDX the service name of the Helm Chart Museum service
	ServiceCDX = "cdx-cdx"

	// ServiceChartMuseum the service name of the Helm Chart Museum service
	ServiceChartMuseum = "jenkins-x-chartmuseum"

	// ServiceKubernetesDashboard the kubernetes dashboard
	ServiceKubernetesDashboard = "jenkins-x-kubernetes-dashboard"

	// SecretJenkinsGitCredentials the git credentials secret
	SecretJenkinsGitCredentials = "jenkins-git-credentials"

	// SecretJenkinsPipelineAddonCredentials the chat credentials secret
	SecretJenkinsPipelineAddonCredentials = "jx-pipeline-addon-"

	// SecretJenkinsPipelineChatCredentials the chat credentials secret
	SecretJenkinsPipelineChatCredentials = "jx-pipeline-chat-"

	// SecretJenkinsPipelineGitCredentials the git credentials secret
	SecretJenkinsPipelineGitCredentials = "jx-pipeline-git-"

	// SecretJenkinsPipelineIssueCredentials the issue tracker credentials secret
	SecretJenkinsPipelineIssueCredentials = "jx-pipeline-issues-"

	// ConfigMapJenkinsXGitKinds the name of the ConfigMap in the development namespace that maps kinds to URLs
	ConfigMapJenkinsXGitKinds = "jenkins-x-git-kinds"

	// LocalHelmRepoName is the default name of the local chart repository where CI/CD releases go to
	LocalHelmRepoName = "releases"

	DefaultEnvironmentGitRepoURL = "https://github.com/jenkins-x/default-environment-charts.git"

	// LabelKind to indicate the kind of auth, such as Git or Issue
	LabelKind = "jenkins.io/kind"

	// ValueKindAddon an addon auth secret/credentials
	ValueKindAddon = "addon"

	// ValueKindChat a chat auth secret/credentials
	ValueKindChat = "chat"

	// ValueKindGit a git auth secret/credentials
	ValueKindGit = "git"

	// ValueKindIssue an issue auth secret/credentials
	ValueKindIssue = "issue"

	// LabelServiceKind the label to indicate the auto Server's Kind
	LabelServiceKind = "jenkins.io/service-kind"

	// LabelCreatedBy indicates the service that created this resource
	LabelCreatedBy = "jenkins.io/created-by"

	// ValueCreatedByJX for resources created by the Jenkins X CLI
	ValueCreatedByJX = "jx"

	// LabelCredentialsType the kind of jenkins credential for a secret
	LabelCredentialsType = "jenkins.io/credentials-type"

	// ValueCredentialTypeUsernamePassword for user password credential secrets
	ValueCredentialTypeUsernamePassword = "usernamePassword"

	// AnnotationURL indicates a service/server's URL
	AnnotationURL = "jenkins.io/url"

	// AnnotationName indicates a service/server's textual name (can be mixed case, contain spaces unlike kubernetes resources)
	AnnotationName = "jenkins.io/name"

	// AnnotationCredentialsDescription the description text for a Credentian on a Secret
	AnnotationCredentialsDescription = "jenkins.io/credentials-description"

	// SecretDataUsername the username in a Secret/Credentials
	SecretDataUsername = "username"

	// SecretDataPassword the password in a Secret/Credentials
	SecretDataPassword = "password"
)
View Source
const (
	LabelValueDevEnvironment = "dev"

	LabelTeam        = "team"
	LabelEnvironment = "env"
)
View Source
const (
	OptionName      = "name"
	OptionNamespace = "namespace"
)
View Source
const (
	DefaultNamespace = "jx"
)
View Source
const (
	ExposeURLAnnotation = "fabric8.io/exposeUrl"
)
View Source
const (
	Exposecontroller = "exposecontroller"
)

Variables

View Source
var (
	AddonCharts = map[string]string{
		"anchore":    ChartAnchore,
		"cdx":        ChartCDX,
		"gitea":      ChartGitea,
		"kubeless":   ChartKubeless,
		"prometheus": "stable/prometheus",
		"grafana":    "stable/grafana",
	}
)

Functions

func ClusterRoleBindingYaml added in v1.1.4

func ClusterRoleBindingYaml(user string) string

func ClusterRoleYaml added in v1.1.4

func ClusterRoleYaml(user string) string

func CompletePromote added in v1.0.87

func CompletePromote(p *v1.PromoteActivityStep) error

func CompletePromotionPullRequest added in v1.0.87

func CompletePromotionPullRequest(a *v1.PipelineActivity, s *v1.PipelineActivityStep, ps *v1.PromoteActivityStep, p *v1.PromotePullRequestStep) error

func CompletePromotionUpdate added in v1.0.87

func CreateClient

func CreateClient(kubeconfig *string) (*kubernetes.Clientset, error)

CreateClient creates a new kubernetes client

func CreateEnvironmentSurvey added in v1.0.2

func CreateEnvironmentSurvey(out io.Writer, batchMode bool, authConfigSvc auth.AuthConfigService, devEnv *v1.Environment, data *v1.Environment, config *v1.Environment, forkEnvGitURL string, ns string, jxClient *versioned.Clientset, kubeClient *kubernetes.Clientset, envDir string, gitRepoOptions *gits.GitRepositoryOptions, helmValues config.HelmValuesConfig, prefix string) (gits.GitProvider, error)

CreateEnvironmentSurvey creates a Survey on the given environment using the default options from the CLI

func CurrentContext

func CurrentContext(config *api.Config) *api.Context

CurrentContext returns the current context

func CurrentNamespace

func CurrentNamespace(config *api.Config) string

CurrentNamespace returns the current namespace in the context

func CurrentServer

func CurrentServer(config *api.Config) string

CurrentServer returns the current context's server

func DeploymentPodCount added in v1.1.4

func DeploymentPodCount(client *kubernetes.Clientset, name, namespace string) (int, error)

func EnableInsecureRegistry added in v1.1.4

func EnableInsecureRegistry(iqJson string, dockerRegistry string) (string, error)

EnableInsecureRegistry appends the Docker Registry

func EnsureDevEnvironmentSetup added in v1.0.58

func EnsureDevEnvironmentSetup(jxClient *versioned.Clientset, ns string) (*v1.Environment, error)

EnsureDevEnvironmentSetup ensures that the Environment is created in the given namespace

func EnsureEnvironmentNamespaceSetup added in v1.0.2

func EnsureEnvironmentNamespaceSetup(kubeClient *kubernetes.Clientset, jxClient *versioned.Clientset, env *v1.Environment, ns string) error

func EnsureGitServiceExistsForHost added in v1.0.114

func EnsureGitServiceExistsForHost(jxClient *versioned.Clientset, devNs string, kind string, name string, gitUrl string, out io.Writer) error

EnsureGitServiceExistsForHost ensures that there is a GitService CRD for the given host and kind

func EnsureNamespaceCreated added in v1.0.2

func EnsureNamespaceCreated(kubeClient *kubernetes.Clientset, name string, labels map[string]string, annotations map[string]string) error

Ensure that the namespace exists for the given name

func FailedPromote added in v1.0.87

func FailedPromote(p *v1.PromoteActivityStep) error

func FailedPromotionPullRequest added in v1.0.87

func FailedPromotionUpdate added in v1.0.87

func FindServiceURL

func FindServiceURL(client *kubernetes.Clientset, namespace string, name string) (string, error)

func GetAppName added in v1.0.69

func GetAppName(name string, namespaces ...string) string

GetAppName returns the app name

func GetCommitSha added in v1.0.18

func GetCommitSha(r *metav1.ObjectMeta) string

GetCommitSha returns the git commit sha

func GetCommitURL added in v1.0.18

func GetCommitURL(r *metav1.ObjectMeta) string

GetCommitURL returns the git commit URL

func GetConfigmapData added in v1.0.135

func GetConfigmapData(client *kubernetes.Clientset, name, ns string) (map[string]string, error)

func GetCurrentDomain added in v1.0.135

func GetCurrentDomain(client *kubernetes.Clientset, ns string) (string, error)

func GetDeploymentNames added in v1.0.10

func GetDeploymentNames(client *kubernetes.Clientset, ns string, filter string) ([]string, error)

func GetDeploymentPods added in v1.0.66

func GetDeploymentPods(client *kubernetes.Clientset, name, namespace string) ([]v1.Pod, error)

func GetDeployments added in v1.0.17

func GetDeployments(kubeClient *kubernetes.Clientset, ns string) (map[string]v1beta1.Deployment, error)

func GetDevNamespace added in v1.0.2

func GetDevNamespace(kubeClient *kubernetes.Clientset, ns string) (string, string, error)

GetDevNamespace returns the developer environment namespace which is the namespace that contains the Environments and the developer tools like Jenkins

func GetEnvironmentNames added in v1.0.2

func GetEnvironmentNames(jxClient *versioned.Clientset, ns string) ([]string, error)

GetEnvironmentNames returns the sorted list of environment names

func GetEnvironments added in v1.0.2

func GetEnvironments(jxClient *versioned.Clientset, ns string) (map[string]*v1.Environment, []string, error)

GetEnvironments returns a map of the enviroments along with a sorted list of names

func GetGitServiceKind added in v1.0.114

func GetGitServiceKind(jxClient *versioned.Clientset, kubeClient *kubernetes.Clientset, devNs string, gitServiceUrl string) (string, error)

GetGitServiceKind returns the kind of the given host if one can be found or ""

func GetGitServiceKindFromConfigMap added in v1.1.44

func GetGitServiceKindFromConfigMap(cm *corev1.ConfigMap, gitServiceUrl string) string

func GetName added in v1.0.18

func GetName(r *metav1.ObjectMeta) string

GetName returns the app name

func GetPodCondition added in v1.0.2

func GetPodCondition(status *v1.PodStatus, conditionType v1.PodConditionType) (int, *v1.PodCondition)

credit https://github.com/kubernetes/kubernetes/blob/8719b4a/pkg/api/v1/pod/util.go GetPodCondition extracts the provided condition from the given status and returns that. Returns nil and -1 if the condition is not present, and the index of the located condition.

func GetPodMetrics added in v1.0.25

func GetPodMetrics(client *metricsclient.Clientset, ns string) (*metricsv1beta1.PodMetricsList, error)

func GetPodNames added in v1.0.10

func GetPodNames(client *kubernetes.Clientset, ns string, filter string) ([]string, error)

func GetPodReadyCondition added in v1.0.2

func GetPodReadyCondition(status v1.PodStatus) *v1.PodCondition

credit https://github.com/kubernetes/kubernetes/blob/8719b4a/pkg/api/v1/pod/util.go Extracts the pod ready condition from the given status and returns that. Returns nil if the condition is not present.

func GetPodVersion added in v1.0.28

func GetPodVersion(pod *corev1.Pod, appName string) string

GetPodVersion returns the version for the given app name

func GetReadyPodNames added in v1.0.10

func GetReadyPodNames(client *kubernetes.Clientset, ns string, filter string) ([]string, error)

func GetServiceNames added in v1.0.10

func GetServiceNames(client *kubernetes.Clientset, ns string, filter string) ([]string, error)

func GetServiceURL added in v1.0.83

func GetServiceURL(svc *v1.Service) string

func GetServiceURLFromMap added in v1.0.83

func GetServiceURLFromMap(services map[string]*v1.Service, name string) string

func GetServices added in v1.0.83

func GetServices(client *kubernetes.Clientset, ns string) (map[string]*v1.Service, error)

func GetVersion added in v1.0.2

func GetVersion(r *metav1.ObjectMeta) string

GetVersion returns the version from the labels on the deployment if it can be deduced

func HasExternalAddress added in v1.0.29

func HasExternalAddress(svc *v1.Service) bool

func IsDeploymentRunning added in v1.0.2

func IsDeploymentRunning(client *kubernetes.Clientset, name, namespace string) (bool, error)

func IsPodReady added in v1.0.2

func IsPodReady(pod *v1.Pod) bool

credit https://github.com/kubernetes/kubernetes/blob/8719b4a/pkg/api/v1/pod/util.go IsPodReady returns true if a pod is ready; false otherwise.

func IsPodReadyConditionTrue added in v1.0.2

func IsPodReadyConditionTrue(status v1.PodStatus) bool

credit https://github.com/kubernetes/kubernetes/blob/8719b4a/pkg/api/v1/pod/util.go IsPodReady retruns true if a pod is ready; false otherwise.

func LoadConfig

func LoadConfig() (*api.Config, *clientcmd.PathOptions, error)

LoadConfig loads the kubernetes configuration

func MergeMaps added in v1.1.56

func MergeMaps(maps ...map[string]string) map[string]string

MergeMaps merges all the maps together with the entries in the last map overwriting any earlier values

so if you want to add some annotations to a resource you can do resource.Annotations = kube.MergeMaps(resource.Annotations, myAnnotations)

func PickEnvironment added in v1.0.2

func PickEnvironment(envNames []string, defaultEnv string) (string, error)

func PodRequestsAndLimits added in v1.1.41

func PodRequestsAndLimits(pod *v1.Pod) (reqs map[v1.ResourceName]resource.Quantity, limits map[v1.ResourceName]resource.Quantity)

func RegisterEnvironmentCRD added in v1.0.2

func RegisterEnvironmentCRD(apiClient *apiextensionsclientset.Clientset) error

RegisterEnvironmentCRD ensures that the CRD is registered for Environments

func RegisterGitServiceCRD added in v1.0.114

func RegisterGitServiceCRD(apiClient *apiextensionsclientset.Clientset) error

RegisterGitServiceCRD ensures that the CRD is registered for GitServices

func RegisterPipelineActivityCRD added in v1.0.84

func RegisterPipelineActivityCRD(apiClient *apiextensionsclientset.Clientset) error

RegisterPipelineActivityCRD ensures that the CRD is registered for PipelineActivity

func RegisterReleaseCRD added in v1.0.90

func RegisterReleaseCRD(apiClient *apiextensionsclientset.Clientset) error

RegisterReleaseCRD ensures that the CRD is registered for Release

func RoleBindingKubeSystemYaml added in v1.1.4

func RoleBindingKubeSystemYaml(user string) string

func RoleBindings added in v1.1.65

func RoleBindings(client *kubernetes.Clientset, namespace string) (string, error)

func RoleKubeSystemYaml added in v1.1.4

func RoleKubeSystemYaml(user string) string

func Server

func Server(config *api.Config, context *api.Context) string

Server returns the server of the given context

func SortEnvironments added in v1.0.2

func SortEnvironments(environments []v1.Environment)

func SortListWatchByName added in v1.1.32

func SortListWatchByName(listWatch *cache.ListWatch)

func SortRuntimeObjectsByName added in v1.1.32

func SortRuntimeObjectsByName(objects []runtime.Object)

func StartPromote added in v1.0.87

func StartPromote(p *v1.PromoteActivityStep) error

func StartPromotionPullRequest added in v1.0.87

func StartPromotionUpdate added in v1.0.87

func ToValidName added in v1.0.84

func ToValidName(name string) string

ToValidName converts the given string into a valid kubernetes resource name

func ToValidNameWithDots added in v1.0.93

func ToValidNameWithDots(name string) string

ToValidNameWithDots converts the given string into a valid kubernetes resource name

func ValidNameOption added in v1.0.2

func ValidNameOption(option string, value string) error

func ValidSubDomainOption added in v1.0.2

func ValidSubDomainOption(option string, value string) error

func ValidateEnvironmentDoesNotExist added in v1.0.2

func ValidateEnvironmentDoesNotExist(jxClient *versioned.Clientset, ns string, str string) error

func ValidateName added in v1.0.2

func ValidateName(val interface{}) error

func ValidateSubDomain added in v1.0.2

func ValidateSubDomain(val interface{}) error

func WaitForAllDeploymentsToBeReady added in v1.0.2

func WaitForAllDeploymentsToBeReady(client *kubernetes.Clientset, namespace string, timeoutPerDeploy time.Duration) error

func WaitForDeploymentToBeReady added in v1.0.2

func WaitForDeploymentToBeReady(client *kubernetes.Clientset, name, namespace string, timeout time.Duration) error

waits for the pods of a deployment to become ready

func WaitForExternalIP added in v1.0.29

func WaitForExternalIP(client *kubernetes.Clientset, name, namespace string, timeout time.Duration) error

waits for the pods of a deployment to become ready

func WaitForPodToBeReady added in v1.0.2

func WaitForPodToBeReady(client *kubernetes.Clientset, selector labels.Selector, namespace string, timeout time.Duration) error

waits for the pod to become ready using label selector to match the pod

Types

type ByName added in v1.1.32

type ByName []runtime.Object

func (ByName) Len added in v1.1.32

func (a ByName) Len() int

func (ByName) Less added in v1.1.32

func (a ByName) Less(i, j int) bool

func (ByName) Swap added in v1.1.32

func (a ByName) Swap(i, j int)

type ByOrder added in v1.0.2

type ByOrder []v1.Environment

func (ByOrder) Len added in v1.0.2

func (a ByOrder) Len() int

func (ByOrder) Less added in v1.0.2

func (a ByOrder) Less(i, j int) bool

func (ByOrder) Swap added in v1.0.2

func (a ByOrder) Swap(i, j int)

type ClusterStatus added in v1.1.41

type ClusterStatus struct {
	Name string
	// contains filtered or unexported fields
}

func GetClusterStatus added in v1.1.41

func GetClusterStatus(client *kubernetes.Clientset, namespace string) (ClusterStatus, error)

func (*ClusterStatus) AverageCpuPercent added in v1.1.41

func (clusterStatus *ClusterStatus) AverageCpuPercent() int

func (*ClusterStatus) AverageMemPercent added in v1.1.41

func (clusterStatus *ClusterStatus) AverageMemPercent() int

func (*ClusterStatus) CheckResource added in v1.1.41

func (clusterStatus *ClusterStatus) CheckResource() string

func (*ClusterStatus) Info added in v1.1.45

func (clusterStatus *ClusterStatus) Info() string

func (*ClusterStatus) MinimumResourceLimit added in v1.1.45

func (clusterStatus *ClusterStatus) MinimumResourceLimit() int

func (*ClusterStatus) NodeCount added in v1.1.49

func (clusterStatus *ClusterStatus) NodeCount() int

type HeapterConfig added in v1.0.26

type HeapterConfig struct {
	KubeClient        *kubernetes.Clientset
	HeapsterNamespace string
	HeapsterScheme    string
	HeapsterPort      string
	HeapsterService   string
	// contains filtered or unexported fields
}

func (*HeapterConfig) GetPodMetrics added in v1.0.26

func (q *HeapterConfig) GetPodMetrics(ns string, pod string, selector string, metric string, start string, end string) ([]byte, error)

type NodeStatus added in v1.1.41

type NodeStatus struct {
	Name            string
	AllocatedMemory *resource.Quantity
	AllocatedCPU    *resource.Quantity
	CpuReqs         resource.Quantity
	CpuLimits       resource.Quantity

	MemReqs   resource.Quantity
	MemLimits resource.Quantity
	// contains filtered or unexported fields
}

func Status added in v1.1.41

func Status(client *kubernetes.Clientset, namespace string, node v1.Node) (NodeStatus, error)

type PipelineActivityKey added in v1.0.84

type PipelineActivityKey struct {
	Name            string
	Pipeline        string
	Build           string
	BuildURL        string
	BuildLogsURL    string
	ReleaseNotesURL string
	GitInfo         *gits.GitRepositoryInfo
}

func (*PipelineActivityKey) GetOrCreate added in v1.0.84

GetOrCreate gets or creates the pipeline activity

func (*PipelineActivityKey) IsValid added in v1.0.84

func (k *PipelineActivityKey) IsValid() bool

type PromoteStepActivityKey added in v1.0.87

type PromoteStepActivityKey struct {
	PipelineActivityKey

	Environment    string
	ApplicationURL string
}

func (*PromoteStepActivityKey) GetOrCreatePromote added in v1.0.87

GetOrCreatePromote gets or creates the Promote step for the key

func (*PromoteStepActivityKey) GetOrCreatePromotePullRequest added in v1.0.87

GetOrCreatePromotePullRequest gets or creates the PromotePullRequest for the key

func (*PromoteStepActivityKey) GetOrCreatePromoteUpdate added in v1.0.87

GetOrCreatePromoteUpdate gets or creates the Promote for the key

func (*PromoteStepActivityKey) OnPromotePullRequest added in v1.0.87

func (k *PromoteStepActivityKey) OnPromotePullRequest(activities typev1.PipelineActivityInterface, fn PromotePullRequestFn) error

func (*PromoteStepActivityKey) OnPromoteUpdate added in v1.0.87

type PromoteUpdateFn added in v1.0.87

type ServiceURL

type ServiceURL struct {
	Name string
	URL  string
}

func FindServiceURLs

func FindServiceURLs(client *kubernetes.Clientset, namespace string) ([]ServiceURL, error)

Jump to

Keyboard shortcuts

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