kube

package
v1.3.926 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2019 License: Apache-2.0 Imports: 69 Imported by: 26

Documentation

Index

Constants

View Source
const (
	OpenApiDir              = "openapi"
	SchemaWriterSrcFileName = "schema_writer_generated.go"
	OpenApiV2JSON           = "openapiv2.json"
	OpenApiV2YAML           = "openapiv2.yaml"
)
View Source
const (
	// DefaultNamespace the standard namespace for Jenkins X
	DefaultNamespace = "jx"

	// PodNamespaceFile the file path and name for pod namespace
	PodNamespaceFile = "/var/run/secrets/kubernetes.io/serviceaccount/namespace"
)
View Source
const (
	// DefaultChartMuseumURL default URL for Jenkins X Charts
	DefaultChartMuseumURL = "http://chartmuseum.jenkins-x.io"

	// ChartAmbassador the default chart for ambassador
	ChartAmbassador = "datawire/ambassador"

	// ChartAnchore the default chart for the Anchore plugin
	ChartAnchore = "stable/anchore-engine"

	// ChartCloudBees the default name of the CloudBees addon chart
	ChartCloudBees = "cb/core"

	// ChartExposecontrollerService the default name of the Exposecontroller Service chart for Edit environments
	ChartExposecontrollerService = "jenkins-x/exposecontroller-service"

	// ChartAnchore the default chart for the Anchore plugin
	ChartPipelineEvent = "jenkins-x/pipeline-events-addon"

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

	// ChartFlagger the default chart for the Flagger chart
	ChartFlagger              = "flagger/flagger"
	ChartFlaggerGrafana       = "flagger/grafana"
	DefaultFlaggerReleaseName = "flagger"

	// ChartIstio the default chart for the Istio chart
	ChartIstio = "install/kubernetes/helm/istio"

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

	// ChartProw the default chart for Prow
	ChartProw = "jenkins-x/prow"

	// ChartKnative the default chart for knative
	ChartKnativeBuild = "jenkins-x/knative-build"

	// ChartBuildTemplates the build templates for Knative Build
	ChartBuildTemplates = "jenkins-x/jx-build-templates"

	// ChartTekton the default chart for tekton
	ChartTekton = "jenkins-x/tekton"

	// DefaultProwReleaseName the default helm release name for Prow
	DefaultProwReleaseName = "jx-prow"

	// DefaultKnativeBuildReleaseName the default helm release name for knative build
	DefaultKnativeBuildReleaseName = "knative-build"

	// DefaultTektonReleaseName the default helm release name for tekton
	DefaultTektonReleaseName = "tekton"

	// DefaultBuildTemplatesReleaseName the default helm release name for the knative build templates
	DefaultBuildTemplatesReleaseName = "jx-build-templates"

	// Charts Single Sign-On addon
	ChartSsoOperator              = "jenkins-x/sso-operator"
	DefaultSsoOperatorReleaseName = "jx-sso-operator"
	ChartSsoDex                   = "jenkins-x/dex"
	DefaultSsoDexReleaseName      = "jx-sso-dex"

	// ChartVaultOperator the default chart for vault opeator
	ChartVaultOperator              = "jenkins-x/vault-operator"
	DefaultVaultOperatorReleaseName = "vault-operator"

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

	// SecretJenkins is the name of the Jenkins secret
	SecretJenkins = "jenkins"

	// ServiceCloudBees the service name of the CloudBees app for Kubernetes
	ServiceCloudBees = "cb-core"

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

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

	// SecretJenkinsChartMuseum the chart museum secret
	SecretJenkinsChartMuseum = "jenkins-x-chartmuseum"

	// SecretJenkinsReleaseGPG the GPG secrets for doing releases
	SecretJenkinsReleaseGPG = "jenkins-release-gpg"

	// SecretJenkinsPipelinePrefix prefix for a jenkins pipeline secret name
	SecretJenkinsPipelinePrefix = "jx-pipeline-"

	// 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-"

	// ConfigMapExposecontroller the name of the ConfigMap with the Exposecontroller configuration
	ConfigMapExposecontroller = "exposecontroller"

	// ConfigMapIngressConfig the new name of the ConfigMap with the Exposecontroller configuration
	ConfigMapIngressConfig = "ingress-config"

	// ConfigMapJenkinsX the name of the ConfigMap with the Jenkins configuration
	ConfigMapJenkinsX = "jenkins"

	// ConfigMapJenkinsPodTemplates is the ConfigMap containing all the Pod Templates available
	ConfigMapJenkinsPodTemplates = "jenkins-x-pod-templates"

	// ConfigMapJenkinsTeamController is the ConfigMap containing the TeamController config files
	ConfigMapJenkinsTeamController = "jenkins-x-team-controller"

	// ConfigMapJenkinsDockerRegistry is the ConfigMap containing the Docker Registry configuration
	ConfigMapJenkinsDockerRegistry = "jenkins-x-docker-registry"

	// ConfigMapNameJXInstallConfig is the ConfigMap containing the jx installation's CA and server url. Used by jx login
	ConfigMapNameJXInstallConfig = "jx-install-config"

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

	// DeploymentTektonController the name of the Deployment for the Tekton Pipeline controller
	DeploymentTektonController = "tekton-pipelines-controller"

	// DeploymentExposecontrollerService the name of the Deployment for the Exposecontroller Service
	DeploymentExposecontrollerService = "exposecontroller-service"

	// DeploymentProwBuild the name of the Deployment for the Prow webhook engine
	DeploymentProwBuild = "prow-build"

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

	DefaultOrganisationGitRepoURL = "https://github.com/jenkins-x/default-organisation.git"

	// AnnotationTitle the human readable name of a resource which can include mixed case, spaces and punctuation
	AnnotationTitle = "title"

	// AnnotationDescription the tooltip / texual description of an resource
	AnnotationDescription = "description"

	// 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"

	// ValueKindCVE an CVS App secret/credentials
	ValueKindCVE = "cve"

	// ValueKindEnvironmentRole to indicate a Role which maps to an EnvironmentRoleBinding
	ValueKindEnvironmentRole = "EnvironmentRole"

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

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

	// ValueKindJenkins an Jenkins App secret/credentials
	ValueKindJenkins = "jenkins"

	// ValueKindCVE an addon auth PipelineEvent
	ValueKindPipelineEvent = "PipelineEvent"

	// ValueKindCVE an addon auth PipelineEvent
	ValueKindRelease = "Release"

	// ValueKindEditNamespace for edit namespace
	ValueKindEditNamespace = "editspace"

	// 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"

	// LabelPodTemplate the name of the pod template for a DevPod
	LabelPodTemplate = "jenkins.io/pod_template"

	// LabelDevPodName the name of a dev pod
	LabelDevPodName = "jenkins.io/devpod"

	// LabelDevPodUsername the user name owner of the DeVPod
	LabelDevPodUsername = "jenkins.io/devpod_user"

	// LabelUsername the user name owner of a namespace or resource
	LabelUsername = "jenkins.io/user"

	// 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"

	// ValueCredentialTypeSecretFile for secret files
	ValueCredentialTypeSecretFile = "secretFile"

	// LabelTeam indicates the team name an environment belongs to
	LabelTeam = "team"

	// LabelEnvironment indicates the name of the environment
	LabelEnvironment = "env"

	// LabelValueDevEnvironment is the value of the LabelTeam label for Development environments (system namespace)
	LabelValueDevEnvironment = "dev"

	// LabelJobKind the kind of job
	LabelJobKind = "jenkins.io/job-kind"

	// ValueJobKindPostPreview
	ValueJobKindPostPreview = "post-preview-step"

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

	// AnnotationExpose used to expose service using exposecontroller
	AnnotationExpose = "fabric8.io/expose"

	// AnnotationIngress tells exposecontroller to annotate generated ingress rule with values
	AnnotationIngress = "fabric8.io/ingress.annotations"

	// AnnotationExposePort indicates to the exposecontroller which service port to expose
	//in case a service has multiple prots
	AnnotationExposePort = "fabric8.io/exposePort"

	// 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 Credential on a Secret
	AnnotationCredentialsDescription = "jenkins.io/credentials-description"

	// AnnotationWorkingDir the working directory, such as for a DevPod
	AnnotationWorkingDir = "jenkins.io/working-dir"
	// AnnotationLocalDir the local directory that is sync'd to the DevPod
	AnnotationLocalDir = "jenkins.io/local-dir"

	// AnnotationIsDefaultStorageClass used to indicate a storageclass is default
	AnnotationIsDefaultStorageClass = "storageclass.kubernetes.io/is-default-class"

	// AnnotationReleaseName is the name of the annotation that stores the release name in the preview environment
	AnnotationReleaseName = "jenkins.io/chart-release"

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

	// SecretDataPassword the password in a Secret/Credentials
	SecretDataPassword = "password"

	// SecretBasicAuth the name for the Jenkins X basic auth secret
	SecretBasicAuth = "jx-basic-auth"

	JenkinsAdminApiToken = "jenkins-admin-api-token"

	JenkinsAdminUserField = "jenkins-admin-user"

	JenkinsBearTokenField = "jenkins-bearer-token"

	AUTH = "auth"

	// Region stores the cloud region the cluster is installed on
	Region = "region"

	// Zone stores the cloud zone of the install
	Zone = "zone"

	// ProjectID stores the project ID used to install the cluster (a GKE thing mostly)
	ProjectID = "projectID"

	// ClusterName stores the name of the cluster that is created
	ClusterName = "clusterName"
)
View Source
const (
	IngressConfigConfigmap = "ingress-config"
	Domain                 = "domain"
	Email                  = "email"
	TLS                    = "tls"
	Issuer                 = "issuer"
	Exposer                = "exposer"
	UrlTemplate            = "urltemplate"
)
View Source
const (
	BitbucketConfigMapKey = "com.cloudbees.jenkins.plugins.bitbucket.endpoints.BitbucketEndpointConfiguration.xml"
	GiteaConfigMapKey     = "org.jenkinsci.plugin.gitea.servers.GiteaServers.xml"
	GithubConfigMapKey    = "org.jenkinsci.plugins.github_branch_source.GitHubConfiguration.xml"
)
View Source
const (
	// ClassificationLogs stores build logs
	ClassificationLogs = "logs"

	// ClassificationTest stores test results/rports
	ClassificationTests = "tests"

	// ClassificationCoverage stores code coverage results/reports
	ClassificationCoverage = "coverage"
)
View Source
const (
	OptionName      = "name"
	OptionNamespace = "namespace"
)

Variables

View Source
var (
	AddonCharts = map[string]string{
		"ambassador":                    ChartAmbassador,
		"anchore":                       ChartAnchore,
		"cb":                            ChartCloudBees,
		DefaultFlaggerReleaseName:       ChartFlagger,
		"gitea":                         ChartGitea,
		"istio":                         ChartIstio,
		"kubeless":                      ChartKubeless,
		"prometheus":                    "stable/prometheus",
		"grafana":                       "stable/grafana",
		"jx-build-templates":            "jenkins-x/jx-build-templates",
		DefaultProwReleaseName:          ChartProw,
		DefaultKnativeBuildReleaseName:  ChartKnativeBuild,
		DefaultTektonReleaseName:        ChartTekton,
		DefaultSsoDexReleaseName:        ChartSsoDex,
		DefaultSsoOperatorReleaseName:   ChartSsoOperator,
		DefaultVaultOperatorReleaseName: ChartVaultOperator,
	}

	AddonServices = map[string]string{
		"anchore":         "anchore-anchore-engine",
		"pipeline-events": "jx-pipeline-events-elasticsearch-client",
		"grafana":         "grafana",
	}
)
View Source
var (
	// Classifications the common classification names
	Classifications = []string{
		ClassificationCoverage, ClassificationTests, ClassificationLogs,
	}

	// ClassificationValues the classification values as a string
	ClassificationValues = strings.Join(Classifications, ", ")
)
View Source
var AllGenerators = map[string]string{
	"defaulter": "defaulter-gen",
	"clientset": "client-gen",
	"listers":   "lister-gen",
	"informers": "informer-gen",
	"deepcopy":  "deepcopy-gen",
}

AllGenerators is a list of all the generators provide by kubernetes code-generator

View Source
var (
	DefaultQuickstartLocations = []v1.QuickStartLocation{
		{
			GitURL:   gits.GitHubURL,
			GitKind:  gits.KindGitHub,
			Owner:    "jenkins-x-quickstarts",
			Includes: []string{"*"},
			Excludes: []string{"WIP-*"},
		},
	}
)

Functions

func AddUserToConfig

func AddUserToConfig(user string, token string, config *api.Config) (*api.Config, error)

AddUserToConfig adds the given user to the config

func AssembleApiDocs added in v1.3.818

func AssembleApiDocs(srcDir string, outputDir string) error

AssembleApiDocs copies the generated html files and the static files from srcDir into outputDir

func AssembleApiDocsStatic added in v1.3.818

func AssembleApiDocsStatic(referenceDocsRepo string, outputDir string) error

AssembleApiDocsStatic copies the static files from the referenceDocsRepo to the outputDir. It also downloads from CDN jquery and bootstrap js

func CertificateAuthorityData

func CertificateAuthorityData(config *api.Config, context *api.Context) []byte

CertificateAuthorityData returns the certificate authority data for the given context

func ClusterRoleBindingYaml

func ClusterRoleBindingYaml(user string) string

func ClusterRoleYaml

func ClusterRoleYaml(user string) string

func CombineVolumes added in v1.3.819

func CombineVolumes(volumes []corev1.Volume, otherVolumes ...corev1.Volume) []corev1.Volume

CombineVolumes combines all the given volumes together ignoring duplicates

func CompletePromote

func CompletePromote(p *v1.PromoteActivityStep) error

func ContainsVolume added in v1.3.819

func ContainsVolume(volumes []corev1.Volume, volume corev1.Volume) bool

ContainsVolume returns true if the given volume slice contains the given volume

func ContainsVolumeMount added in v1.3.819

func ContainsVolumeMount(volumes []corev1.VolumeMount, volume corev1.VolumeMount) bool

ContainsVolumeMount returns true if the given volume mount slice contains the given volume

func CreateClusterRole

func CreateClusterRole(kubeClient kubernetes.Interface, namesapce string, name string,
	apiGroups []string, resources []string, verbs []string) error

CreateClusterRole creates a new cluster role

func CreateClusterRoleBinding

func CreateClusterRoleBinding(kubeClient kubernetes.Interface, namespace string, name string,
	serviceAccountName string, clusterRoleName string) error

CreateClusterRoleBinding creates acluster role binding in a given namespace for a service account

func CreateDefaultDevEnvironment

func CreateDefaultDevEnvironment(ns string) *v1.Environment

CreateDefaultDevEnvironment creates a default development environment

func CreateEnvGitRepository

func CreateEnvGitRepository(batchMode bool, authConfigSvc auth.ConfigService, devEnv *v1.Environment, data *v1.Environment, config *v1.Environment, forkEnvGitURL string, envDir string, gitRepoOptions *gits.GitRepositoryOptions, helmValues config.HelmValuesConfig, prefix string, git gits.Gitter, in terminal.FileReader, out terminal.FileWriter, errOut io.Writer) (*gits.GitRepository, gits.GitProvider, error)

CreateEnvGitRepository creates the git repository for the given Environment

func CreateEnvironmentSurvey

func CreateEnvironmentSurvey(batchMode bool, authConfigSvc auth.ConfigService, devEnv *v1.Environment, data *v1.Environment,
	config *v1.Environment, forkEnvGitURL string, ns string, jxClient versioned.Interface, kubeClient kubernetes.Interface, envDir string,
	gitRepoOptions *gits.GitRepositoryOptions, helmValues config.HelmValuesConfig, prefix string, git gits.Gitter, in terminal.FileReader, out terminal.FileWriter, errOut io.Writer) (gits.GitProvider, error)

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

func CreateKubeClient

func CreateKubeClient(kubeconfig *string) (kubernetes.Interface, error)

CreateKubeClient creates a new Kubernetes client

func CreatePatchBytes

func CreatePatchBytes(op string, path string, value interface{}) ([]byte, error)

CreatePatchBytes creates a kubernetes PATCH block

func CreateTeam

func CreateTeam(ns string, name string, members []string) *v1.Team

CreateTeam creates a new default Team

func CurrentCluster

func CurrentCluster(config *api.Config) (string, *api.Cluster)

CurrentCluster returns the current cluster

func CurrentContext

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

CurrentContext returns the current context

func CurrentContextName

func CurrentContextName(config *api.Config) string

CurrentContextName returns the current context name

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 DefaultModifyConfigMap

func DefaultModifyConfigMap(kubeClient kubernetes.Interface, ns string, name string, fn func(env *v1.ConfigMap) error, defaultConfigMap *v1.ConfigMap) (*v1.ConfigMap, error)

DefaultModifyConfigMap default implementation of a function to modify

func DefaultModifySecret

func DefaultModifySecret(kubeClient kubernetes.Interface, ns string, name string, fn func(env *v1.Secret) error, defaultSecret *v1.Secret) (*v1.Secret, error)

DefaultModifySecret default implementation of a function to modify

func DeleteClusterRole

func DeleteClusterRole(kubeClient kubernetes.Interface, name string) error

DeleteClusterRole deletes a cluster role if exists

func DeleteClusterRoleBinding

func DeleteClusterRoleBinding(kubeClient kubernetes.Interface, name string) error

DeleteClusterRoleBinding deltes a cluster role binding

func DeleteIngress

func DeleteIngress(client kubernetes.Interface, ns, name string) error

DeleteIngress removes an ingress by name

func DeleteJob

func DeleteJob(client kubernetes.Interface, namespace, name string) error

func DeleteTeam

func DeleteTeam(jxClient versioned.Interface, ns string, teamName string) error

DeleteTeam deletes the team resource but does not uninstall the underlying namespaces

func DeploymentPodCount

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

func EmailToK8sID

func EmailToK8sID(email string) string

EmailToK8sID converts the provided email address to a valid Kubernetes resource name, converting the @ to a .

func EnableInsecureRegistry

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

EnableInsecureRegistry appends the Docker Registry

func EnsureDevEnvironmentSetup

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

EnsureDevEnvironmentSetup ensures that the Environment is created in the given namespace

func EnsureDevNamespaceCreatedWithoutEnvironment

func EnsureDevNamespaceCreatedWithoutEnvironment(kubeClient kubernetes.Interface, ns string) error

EnsureDevNamespaceCreatedWithoutEnvironment ensures that there is a development namespace created

func EnsureEditEnvironmentSetup

func EnsureEditEnvironmentSetup(kubeClient kubernetes.Interface, jxClient versioned.Interface, ns string, username string) (*v1.Environment, error)

EnsureEditEnvironmentSetup ensures that the Environment is created in the given namespace

func EnsureEnvironmentNamespaceSetup

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

func EnsureGitServiceExistsForHost

func EnsureGitServiceExistsForHost(jxClient versioned.Interface, 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

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

Ensure that the namespace exists for the given name

func EnvironmentMatches

func EnvironmentMatches(env *v1.Environment, filter *v1.EnvironmentFilter) bool

EnvironmentMatches returns true if the environment matches the given filter

func EnvironmentMatchesAny

func EnvironmentMatchesAny(env *v1.Environment, filters []v1.EnvironmentFilter) bool

EnvironmentMatchesAny returns true if the list of filters is empty or one of the filters matches the given environment

func ExtensionOwnerRef

func ExtensionOwnerRef(ext *jenkinsv1.Extension) metav1.OwnerReference

func ExtractDomainValue

func ExtractDomainValue(data map[string]string) (string, error)

ExtractDomainValue returns the domain value

func FailedPromote

func FailedPromote(p *v1.PromoteActivityStep) error

func FixSchema added in v1.3.818

func FixSchema(schema spec.Schema, ref common.ReferenceCallback) (spec.Schema, error)

FixSchema walks the schema and automatically fixes it up to be better supported by Kubernetes. Current automatic fixes are: * resolving $ref * remove unresolved $ref * clear additionalProperties (this is unsupported in older kubernetes, when we drop them, we can investigate adding support, for now use patternProperties)

as these are all unsupported

func GenerateApiDocs added in v1.3.818

func GenerateApiDocs(configDir string, verbose bool) error

GenerateApiDocs runs the apidocs-gen tool against configDirectory which includes the openapi-spec dir, the config.yaml file, static content and the static_includes

func GenerateBuildNumber

func GenerateBuildNumber(activities typev1.PipelineActivityInterface, pipelines []*v1.PipelineActivity, pn PipelineID) (string, *v1.PipelineActivity, error)

GenerateBuildNumber generates a new build number for the given pipeline

func GenerateClient added in v1.3.818

func GenerateClient(generators []string, groupsWithVersions []string, inputPackage string, outputPackage string,
	outputBase string, boilerplateFile string, verbose bool) error

GenerateClient runs the generators specified. It looks at the specified groupsWithVersions in inputPackage and generates to outputPackage ( // relative to the module outputBase). A boilerplateFile is written to the top of any generated files.

func GenerateOpenApi added in v1.3.818

func GenerateOpenApi(groupsWithVersions []string, inputPackage string, outputPackage string, relativePackage string,
	outputBase string, openApiDependencies []string, moduleDir string, moduleName string, gitter gits.Gitter,
	boilerplateFile string,
	verbose bool) error

GenerateOpenApi generateds the OpenAPI structs and schema files. It looks at the specified groupsWithVersions in inputPackage and generates to outputPackage ( relative to the module outputBase). Any openApiDependencies also have OpenAPI structs generated. A boilerplateFile is written to the top of any generated files. The gitter client is used to ensure the correct versions of dependencies are loaded.

func GenerateSchema added in v1.3.818

func GenerateSchema(outputDir string, inputPackage string, inputBase string, title string, version string) error

GenerateSchema calls the generated schema writer and then loads the output and also writes out a yaml version. The outputDir is the base directory for writing the schemas to (they get put in the openapi-spec subdir), inputPackage is the packge in which generated code lives, inputBase is the path to the module, title and version are used in the OpenAPI spec files.

func GetAdminNamespace

func GetAdminNamespace(kubeClient kubernetes.Interface, teamNs string) (string, error)

GetAdminNamespace tries to find the admin namespace that corresponds to this team. in other words this is the namespace where the team CRD was initially created when this team was created, or the current team namespace for the case where this team was just created with a standalone `jx install`

func GetAppName

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

GetAppName returns the app name

func GetBoilerplateFile added in v1.3.818

func GetBoilerplateFile(fileName string, verbose bool) (string, error)

GetBoilerplateFile is responsible for canonicalizing the name of the boilerplate file

func GetCommitSha

func GetCommitSha(r *metav1.ObjectMeta) string

GetCommitSha returns the git commit sha

func GetCommitURL

func GetCommitURL(r *metav1.ObjectMeta) string

GetCommitURL returns the git commit URL

func GetConfigMap

func GetConfigMap(client kubernetes.Interface, ns string, name string) (*v1.ConfigMap, error)

GetConfigMap gets a named configmap

func GetConfigMapData

func GetConfigMapData(client kubernetes.Interface, name, ns string) (map[string]string, error)

GetConfigMapData gets config map data

func GetConfigMaps

func GetConfigMaps(kubeClient kubernetes.Interface, ns string) (map[string]*v1.ConfigMap, []string, error)

GetConfigMaps returns a map of the ConfigMaps along with a sorted list of names

func GetCurrentDomain

func GetCurrentDomain(client kubernetes.Interface, ns string) (string, error)

GetCurrentDomain gets the current domain

func GetDeploymentByRepo

func GetDeploymentByRepo(client kubernetes.Interface, ns string, repoName string) (*v1beta1.Deployment, error)

func GetDeploymentNames

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

func GetDeploymentPods

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

func GetDeployments

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

func GetDevEnvGitOwner

func GetDevEnvGitOwner(jxClient versioned.Interface) (string, error)

GetDevEnvGitOwner gets the default GitHub owner/organisation to use for Environment repos. This takes the setting from the 'jx' Dev Env to get the one that was selected at installation time.

func GetDevEnvironment

func GetDevEnvironment(jxClient versioned.Interface, ns string) (*v1.Environment, error)

GetDevEnvironment returns the current development environment using the jxClient for the given ns. If the Dev Environment cannot be found, returns nil Environment (rather than an error). A non-nil error is only returned if there is an error fetching the Dev Environment.

func GetDevNamespace

func GetDevNamespace(kubeClient kubernetes.Interface, 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 GetDevPodNames

func GetDevPodNames(client kubernetes.Interface, ns string, username string) ([]string, map[string]*v1.Pod, error)

GetDevPodNames returns the users dev pod names. If username is blank, all devpod names will be returned

func GetEditAppName

func GetEditAppName(name string) string

func GetEditEnvironmentNamespace

func GetEditEnvironmentNamespace(jxClient versioned.Interface, ns string) (string, error)

GetEditEnvironmentNamespace returns the namespace of the current users edit environment

func GetEnrichedDevEnvironment

func GetEnrichedDevEnvironment(kubeClient kubernetes.Interface, jxClient versioned.Interface, ns string) (*v1.Environment, error)

GetEnrichedDevEnvironment lazily creates the dev namespace if it does not already exist and auto-detects the webhook engine if its not specified

func GetEnvVar

func GetEnvVar(container *corev1.Container, name string) *corev1.EnvVar

GetEnvVar returns the env var if its defined for the given name

func GetEnvironment

func GetEnvironment(jxClient versioned.Interface, ns string, name string) (*v1.Environment, error)

GetEnvironment find an environment by name

func GetEnvironmentNames

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

GetEnvironmentNames returns the sorted list of environment names

func GetEnvironmentNamespace

func GetEnvironmentNamespace(jxClient versioned.Interface, ns, environment string) (string, error)

GetEnvironments returns the namespace name for a given environment

func GetEnvironmentRoles

func GetEnvironmentRoles(jxClient versioned.Interface, ns string) (map[string]*v1.EnvironmentRoleBinding, []string, error)

GetEnvironmentRoles returns all the environment role binding names and details

func GetEnvironments

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

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

func GetEnvironmentsByPrURL

func GetEnvironmentsByPrURL(jxClient versioned.Interface, ns string, prURL string) (*v1.Environment, error)

GetEnvironmentsByPrURL find an environment by a pull request URL

func GetFilteredEnvironmentNames

func GetFilteredEnvironmentNames(jxClient versioned.Interface, ns string, fn func(environment *v1.Environment) bool) ([]string, error)

GetFilteredEnvironmentNames returns the sorted list of environment names

func GetGitServiceKind

func GetGitServiceKind(jxClient versioned.Interface, kubeClient kubernetes.Interface, devNs string, gitServiceURL string) (string, error)

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

func GetIngress

func GetIngress(client kubernetes.Interface, ns, name string) (string, error)

func GetName

func GetName(r *metav1.ObjectMeta) string

GetName returns the app name

func GetOrCreateRelease

func GetOrCreateRelease(jxClient versioned.Interface, ns string, release *v1.Release) (*v1.Release, error)

GetOrCreateRelease creates or updates the given release resource

func GetOrCreateStage

func GetOrCreateStage(a *v1.PipelineActivity, stageName string) (*v1.PipelineActivityStep, *v1.StageActivityStep, bool)

GetOrCreateStage gets or creates the stage for the given name

func GetOrCreateStepInStage added in v1.3.921

func GetOrCreateStepInStage(stage *v1.StageActivityStep, stepName string) (*v1.CoreActivityStep, bool)

GetOrCreateStepInStage gets or creates the step for the given name in the given stage

func GetOrderedEnvironments

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

GetOrderedEnvironments returns a map of the environments along with the correctly ordered names

func GetOrderedReleases

func GetOrderedReleases(jxClient versioned.Interface, ns string, filter string) ([]v1.Release, error)

GetOrderedReleases returns the releases sorted in newest release first

func GetPendingTeams

func GetPendingTeams(jxClient versioned.Interface, ns string) (map[string]*v1.Team, []string, error)

GetPendingTeams returns the pending teams with the sorted order of names

func GetPermanentEnvironments added in v1.3.845

func GetPermanentEnvironments(jxClient versioned.Interface, ns string) ([]*v1.Environment, error)

GetPermanentEnvironments returns a list with the current permanent environments

func GetPodCondition

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 GetPodNames

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

func GetPodReadyCondition

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 GetPodRestarts

func GetPodRestarts(pod *v1.Pod) int32

GetPodRestars returns the number of restarts of a POD

func GetPodVersion

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

GetPodVersion returns the version for the given app name

func GetPods

func GetPods(client kubernetes.Interface, ns string, filter string) ([]string, map[string]*v1.Pod, error)

func GetPodsWithLabels

func GetPodsWithLabels(client kubernetes.Interface, ns string, selector string) ([]string, map[string]*v1.Pod, error)

func GetPreviewEnvironmentReleaseName

func GetPreviewEnvironmentReleaseName(env *v1.Environment) string

GetPreviewEnvironmentReleaseName returns the (helm) release name for the given (preview) environment or the empty string is the environment is not a preview environment, or has no release name associated with it

func GetQuickstartLocations

func GetQuickstartLocations(jxClient versioned.Interface, ns string) ([]v1.QuickStartLocation, error)

GetQuickstartLocations returns the current quickstart locations. If no locations are defined yet lets return the defaults

func GetReadyPodNames

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

func GetSecrets

func GetSecrets(kubeClient kubernetes.Interface, ns string) (map[string]*v1.Secret, []string, error)

GetSecrets returns a map of the Secrets along with a sorted list of names

func GetServiceKindFromSecrets

func GetServiceKindFromSecrets(kubeClient kubernetes.Interface, ns string, gitServiceURL string) (string, error)

GetServiceKindFromSecrets gets the kind of service from secrets

func GetSliceEnvVar added in v1.3.819

func GetSliceEnvVar(envVars []corev1.EnvVar, name string) *corev1.EnvVar

GetSliceEnvVar returns the EnvVar for the given name or nil if none exists in the slice

func GetTeamRoles

func GetTeamRoles(kubeClient kubernetes.Interface, ns string) (map[string]*rbacv1.Role, []string, error)

GetTeamRoles returns the roles for the given team dev namespace

func GetTeams

func GetTeams(kubeClient kubernetes.Interface) ([]*corev1.Namespace, []string, error)

GetTeams returns the Teams the user is a member of

func GetUserRoles

func GetUserRoles(jxClient versioned.Interface, ns string, userKind string, userName string) ([]string, error)

UpdateUserRoles updates the EnvironmentRoleBinding values based on the given userRoles userKind is "User" or "ServiceAccount"

func GetVersion

func GetVersion(r *metav1.ObjectMeta) string

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

func GetVolume

func GetVolume(volumes *[]corev1.Volume, name string) *corev1.Volume

func GetVolumeMount

func GetVolumeMount(volumenMounts *[]corev1.VolumeMount, name string) *corev1.VolumeMount

func HasInitContainerStarted

func HasInitContainerStarted(pod *v1.Pod, idx int) bool

HasInitContainerStarted returns true if the given InitContainer has started running

func InstallGen added in v1.3.818

func InstallGen(version string, gitter gits.Gitter) error

InstallGen installs a number of generator tools from kubernetes/code-generator using the gitter client. A version ( really commit-ish) is specified.

func InstallGenApiDocs added in v1.3.818

func InstallGenApiDocs(version string, gitter gits.Gitter) (string, error)

InstallGenApiDocs installs the gen-apidocs tool from the kubernetes-incubator/reference-docs repository. It takes a version (really a commit-ish) and the gitter client

func InstallOpenApiGen added in v1.3.818

func InstallOpenApiGen(version string, gitter gits.Gitter) error

InstallOpenApiGen installs the openapi-gen tool from kubernetes/kube-openapi using the gitter client. A version ( really commit-ish) is specified.

func IsClusterRole

func IsClusterRole(kubeClient kubernetes.Interface, name string) bool

IsClusterRole checks if a cluster role exists

func IsClusterRoleBinding

func IsClusterRoleBinding(kubeClient kubernetes.Interface, name string) bool

IsClusterRoleBinding checks if the cluster role binding exists

func IsDaemonSetExists

func IsDaemonSetExists(client kubernetes.Interface, name, namespace string) (bool, error)

func IsDeploymentRunning

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

func IsJobFinished

func IsJobFinished(job *batchv1.Job) bool

IsJobFinished returns true if the job has completed

func IsJobSucceeded

func IsJobSucceeded(job *batchv1.Job) bool

IsJobSucceeded returns true if the job completed and did not fail

func IsPermanentEnvironment added in v1.3.845

func IsPermanentEnvironment(env *v1.Environment) bool

IsPermanentEnvironment indicates if an environment is permanent

func IsPodReady

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

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 IsPreviewEnvironment

func IsPreviewEnvironment(env *v1.Environment) bool

func IsProwEnabled

func IsProwEnabled(kubeClient kubernetes.Interface, ns string) (bool, error)

IsProwEnabled returns true if Prow is enabled in the given development namespace

func IsResourceVersionNewer

func IsResourceVersionNewer(v1 string, v2 string) bool

IsResourceVersionNewer returns true if the first resource version is newer than the second

func IsTektonEnabled added in v1.3.921

func IsTektonEnabled(kubeClient kubernetes.Interface, ns string) (bool, error)

IsTektonEnabled returns true if Build Pipeline is enabled in the given development namespace

func ModifyNamespace

func ModifyNamespace(out io.Writer, dir string, env *v1.Environment, git gits.Gitter) error

ModifyNamespace modifies the namespace

func NewPermanentEnvironment

func NewPermanentEnvironment(name string) *v1.Environment

NewPermanentEnvironment creates a new permanent environment for testing

func NewPermanentEnvironmentWithGit

func NewPermanentEnvironmentWithGit(name string, gitUrl string) *v1.Environment

NewPermanentEnvironment creates a new permanent environment for testing

func NewPreviewEnvironment

func NewPreviewEnvironment(name string) *v1.Environment

NewPreviewEnvironment creates a new preview environment for testing

func ParseXml

func ParseXml(xml string) (*etree.Document, string, error)

ParseXml parses XML

func PickEnvironment

func PickEnvironment(envNames []string, defaultEnv string, in terminal.FileReader, out terminal.FileWriter, errOut io.Writer) (string, error)

func PodOwnerRef

func PodOwnerRef(pod *corev1.Pod) metav1.OwnerReference

func PodRequestsAndLimits

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

func PodStatus

func PodStatus(pod *v1.Pod) string

func ReadInstallValues

func ReadInstallValues(kubeClient kubernetes.Interface, namespace string) (map[string]string, error)

ReadInstallValues reads the installed configuration values from the installation namespace

Empty map is returned if: - jx-install-config config map doesn't exist - kube client returns error on Config Map read operation

Error is returned if: - jx-install-config config map doesn't exist - kube client returns error on Config Map read operation

func ReadRegion

func ReadRegion(kubeClient kubernetes.Interface, namespace string) (string, error)

ReadRegion allows to read cloud region from Config Map (jx-install-config). Region value is usually written using RememberRegion function.

Empty string is returned if: - region value doesn't exist - has empty value - jx-install-config config map doesn't exist - kube client returns error on Config Map read operation

Error is returned if: - jx-install-config config map doesn't exist - kube client returns error on Config Map read operation

func RegisterAllCRDs

func RegisterAllCRDs(apiClient apiextensionsclientset.Interface) error

RegisterAllCRDs ensures that all Jenkins-X CRDs are registered

func RegisterAppCRD

func RegisterAppCRD(apiClient apiextensionsclientset.Interface) error

RegisterAppCRD ensures that the CRD is registered for App

func RegisterBuildPackCRD

func RegisterBuildPackCRD(apiClient apiextensionsclientset.Interface) error

RegisterBuildPackCRD ensures that the CRD is registered for BuildPack

func RegisterCRD

func RegisterCRD(apiClient apiextensionsclientset.Interface, name string,
	names *v1beta1.CustomResourceDefinitionNames, columns []v1beta1.CustomResourceColumnDefinition, groupName string,
	pkg string, version string) error

RegisterCRD allows new custom resources to be registered using apiClient under a particular name. Various forms of the name are provided using names. In Kubernetes 1.11 and later a custom display format for kubectl is used, which is specified using columns.

func RegisterCommitStatusCRD

func RegisterCommitStatusCRD(apiClient apiextensionsclientset.Interface) error

RegisterCommitStatusCRD ensures that the CRD is registered for CommitStatus

func RegisterEnvironmentCRD

func RegisterEnvironmentCRD(apiClient apiextensionsclientset.Interface) error

RegisterEnvironmentCRD ensures that the CRD is registered for Environments

func RegisterEnvironmentRoleBindingCRD

func RegisterEnvironmentRoleBindingCRD(apiClient apiextensionsclientset.Interface) error

RegisterEnvironmentRoleBindingCRD ensures that the CRD is registered for Environments

func RegisterExtensionCRD

func RegisterExtensionCRD(apiClient apiextensionsclientset.Interface) error

RegisterExtensionCRD ensures that the CRD is registered for Extension

func RegisterFactCRD added in v1.3.886

func RegisterFactCRD(apiClient apiextensionsclientset.Interface) error

RegisterFactCRD ensures that the CRD is registered for Fact

func RegisterGitServiceCRD

func RegisterGitServiceCRD(apiClient apiextensionsclientset.Interface) error

RegisterGitServiceCRD ensures that the CRD is registered for GitServices

func RegisterPipelineActivityCRD

func RegisterPipelineActivityCRD(apiClient apiextensionsclientset.Interface) error

RegisterPipelineActivityCRD ensures that the CRD is registered for PipelineActivity

func RegisterPipelineStructureCRD added in v1.3.896

func RegisterPipelineStructureCRD(apiClient apiextensionsclientset.Interface) error

RegisterPipelineStructureCRD ensures that the CRD is registered for PipelineStructure

func RegisterPluginCRD

func RegisterPluginCRD(apiClient apiextensionsclientset.Interface) error

RegisterPluginCRD ensures that the CRD is registered for Plugin

func RegisterReleaseCRD

func RegisterReleaseCRD(apiClient apiextensionsclientset.Interface) error

RegisterReleaseCRD ensures that the CRD is registered for Release

func RegisterSourceRepositoryCRD

func RegisterSourceRepositoryCRD(apiClient apiextensionsclientset.Interface) error

RegisterSourceRepositoryCRD ensures that the CRD is registered for Applications

func RegisterTeamCRD

func RegisterTeamCRD(apiClient apiextensionsclientset.Interface) error

RegisterTeamCRD ensures that the CRD is registered for Team

func RegisterUserCRD

func RegisterUserCRD(apiClient apiextensionsclientset.Interface) error

RegisterUserCRD ensures that the CRD is registered for User

func RegisterWorkflowCRD

func RegisterWorkflowCRD(apiClient apiextensionsclientset.Interface) error

RegisterWorkflowCRD ensures that the CRD is registered for Environments

func RememberInstallValues

func RememberInstallValues(kubeClient kubernetes.Interface, namespace string, values map[string]string) error

RememberInstallValues remembers any non-blank installation values in the Kubernetes Config Map (jx-install-config), so jx can access this information later. Usually executed when provisioning new Kubernetes cluster.

If jx-install-config config map doesn't exist, it will be created. If region value is already saved, it will be overridden by this function call.

func RememberRegion

func RememberRegion(kubeClient kubernetes.Interface, namespace string, region string) error

RememberRegion remembers cloud providers region in Kubernetes Config Map (jx-install-config), so jx can access this information later. Usually executed when provisioning new Kubernetes cluster.

If jx-install-config config map doesn't exist, it will be created. If region value is already saved, it will be overridden by this function call.

func ReplaceMakeVariable

func ReplaceMakeVariable(lines []string, name string, value string) error

ReplaceMakeVariable needs a description

func RoleBindingKubeSystemYaml

func RoleBindingKubeSystemYaml(user string) string

func RoleBindings

func RoleBindings(client kubernetes.Interface, namespace string) (string, error)

func RoleKubeSystemYaml

func RoleKubeSystemYaml(user string) string

func SaveAsConfigMap

func SaveAsConfigMap(c kubernetes.Interface, configMapName string, ns string, obj interface{}) (*v1.ConfigMap, error)

SaveAsConfigMap to the specified namespace as a config map.

func Server

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

Server returns the server of the given context

func ServiceOwnerRef

func ServiceOwnerRef(svc *corev1.Service) metav1.OwnerReference

func SetAdminNamespace

func SetAdminNamespace(kubeClient kubernetes.Interface, teamNs string, adminNs string) error

SetAdminNamespace annotates the given namespace with a backlink to the admin namespace. it does not make any changes if the current annotation points to the same admin namespace

func SortEnvironments

func SortEnvironments(environments []v1.Environment)

func SortListWatchByName

func SortListWatchByName(listWatch *cache.ListWatch)

func SortReleases

func SortReleases(releases []v1.Release)

SortReleases sorts the releases in name order then latest version first

func SortRuntimeObjectsByName

func SortRuntimeObjectsByName(objects []runtime.Object)

func StartPromote

func StartPromote(p *v1.PromoteActivityStep) error

func ToMetaTime

func ToMetaTime(t *time.Time) *metav1.Time

ToMetaTime converts the go time pointer to a meta time

func ToValidName

func ToValidName(name string) string

ToValidName converts the given string into a valid Kubernetes resource name

func ToValidNameTruncated added in v1.3.862

func ToValidNameTruncated(name string, maxLength int) string

ToValidNameTruncated converts the given string into a valid Kubernetes resource name, truncating the result if it is more than maxLength characters.

func ToValidNameWithDots

func ToValidNameWithDots(name string) string

ToValidNameWithDots converts the given string into a valid Kubernetes resource name

func UpdateJenkinsGitServers

func UpdateJenkinsGitServers(cm *corev1.ConfigMap, server *auth.AuthServer, userAuth *auth.UserAuth, credentials string) (bool, error)

UpdateJenkinsGitServers update the Jenkins ConfigMap with any missing Git server configurations for the given server and token

func UpdateUserRoles

func UpdateUserRoles(kubeClient kubernetes.Interface, jxClient versioned.Interface, ns string, userKind string, userName string, userRoles []string, roles map[string]*rbacv1.Role) error

UpdateUserRoles updates the EnvironmentRoleBinding values based on the given userRoles. userKind is "User" or "ServiceAccount"

func ValidNameOption

func ValidNameOption(option string, value string) error

func ValidSubDomainOption

func ValidSubDomainOption(option string, value string) error

func ValidateEnvironmentDoesNotExist

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

func ValidateName

func ValidateName(val interface{}) error

func ValidateSubDomain

func ValidateSubDomain(val interface{}) error

func WaitForAllDeploymentsToBeReady

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

func WaitForDeploymentToBeCreatedAndReady

func WaitForDeploymentToBeCreatedAndReady(client kubernetes.Interface, name, namespace string, timeoutPerDeploy time.Duration) error

func WaitForDeploymentToBeReady

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

WaitForDeploymentToBeReady waits for the pods of a deployment to become ready

func WaitForJobToSucceeded

func WaitForJobToSucceeded(client kubernetes.Interface, namespace, jobName string, timeout time.Duration) error

waits for the job to complete

func WaitForJobToTerminate

func WaitForJobToTerminate(client kubernetes.Interface, namespace, jobName string, timeout time.Duration) error

waits for the job to terminate

func WaitForPodNameToBeReady

func WaitForPodNameToBeReady(client kubernetes.Interface, namespace string, name string, timeout time.Duration) error

waits for the pod to become ready using the pod name

func WaitForPodToBeReady

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

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

func WriteSchemaToDisk added in v1.3.818

func WriteSchemaToDisk(outputDir string, title string, version string, definitions common.GetOpenAPIDefinitions,
	names []string) error

WriteSchemaToDisk is called by the code generated main function to marshal the contents of the OpenAPI structs and write them to disk. outputDir is the dir to write the json and yaml files to, you can also provide the title and version for the OpenAPI spec. definitions is the function that returns all the openapi definitions. WriteSchemaToDisk will rewrite the definitions to a dot-separated notation, reversing the initial domain name

Types

type ByName

type ByName []runtime.Object

func (ByName) Len

func (a ByName) Len() int

func (ByName) Less

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

func (ByName) Swap

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

type ByOrder

type ByOrder []v1.Environment

func (ByOrder) Len

func (a ByOrder) Len() int

func (ByOrder) Less

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

func (ByOrder) Swap

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

type ClusterStatus

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

func GetClusterStatus

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

func (*ClusterStatus) AverageCpuPercent

func (clusterStatus *ClusterStatus) AverageCpuPercent() int

func (*ClusterStatus) AverageMemPercent

func (clusterStatus *ClusterStatus) AverageMemPercent() int

func (*ClusterStatus) CheckResource

func (clusterStatus *ClusterStatus) CheckResource() string

func (*ClusterStatus) Info

func (clusterStatus *ClusterStatus) Info() string

func (*ClusterStatus) MinimumResourceLimit

func (clusterStatus *ClusterStatus) MinimumResourceLimit() int

func (*ClusterStatus) NodeCount

func (clusterStatus *ClusterStatus) NodeCount() int

type EnvironmentNamespaceCache

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

EnvironmentNamespaceCache caches the Environments for a single namespace

func CreateEnvironmentCache

func CreateEnvironmentCache(jxClient versioned.Interface, ns string) *EnvironmentNamespaceCache

CreateEnvironmentCache creates a cache for the given namespace of Environments

func (*EnvironmentNamespaceCache) Item

Item returns the Environment for the tiven name

func (*EnvironmentNamespaceCache) Items

Items returns the Environments in this namespace sorted in name order

type HeapterConfig

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

func (*HeapterConfig) GetPodMetrics

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

type IngressConfig

type IngressConfig struct {
	Email       string `structs:"email" yaml:"email" json:"email"`
	Domain      string `structs:"domain" yaml:"domain" json:"domain"`
	Issuer      string `structs:"issuer" yaml:"issuer" json:"issuer"`
	Exposer     string `structs:"exposer" yaml:"exposer" json:"exposer"`
	UrlTemplate string `structs:"urltemplate" yaml:"urltemplate" json:"urltemplate"`
	TLS         bool   `structs:"tls" yaml:"tls" json:"tls"`
}

func GetIngressConfig

func GetIngressConfig(c kubernetes.Interface, ns string) (IngressConfig, error)

type JXInstallConfig

type JXInstallConfig struct {
	Server       string `structs:"server" yaml:"server" json:"server"`
	CA           []byte `structs:"ca.crt" yaml:"ca.crt" json:"ca.crt"`
	KubeProvider string `structs:"kubeProvider" yaml:"kubeProvider" json:"kubeProvider"`
}

JXInstallConfig is the struct used to create the jx-install-config configmap

type KubeConfig

type KubeConfig struct{}

KubeConfig implements kube interactions

func (*KubeConfig) LoadConfig

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

LoadConfig loads the Kubernetes configuration

func (*KubeConfig) UpdateConfig

func (k *KubeConfig) UpdateConfig(namespace string, server string, caData string, user string, token string) error

UpdateConfig defines new config entries for jx

type Kuber

type Kuber interface {
	// LoadConfig loads the Kubernetes configuration
	LoadConfig() (*api.Config, *clientcmd.PathOptions, error)

	// UpdateConfig defines new config entries for jx
	UpdateConfig(namespace string, server string, caData string, user string, token string) error
}

Kuber defines common kube actions used within Jenkins X

func NewKubeConfig

func NewKubeConfig() Kuber

NewKubeConfig creates a new KubeConfig struct to be used to interact with the underlying kube system

type NodeStatus

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

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

type ObjectReference added in v1.3.820

type ObjectReference struct {
	APIVersion string `json:"apiVersion" protobuf:"bytes,5,opt,name=apiVersion"`
	// Kind of the referent.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
	Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"`
	// Name of the referent.
	// More info: http://kubernetes.io/docs/user-guide/identifiers#names
	Name string `json:"name" protobuf:"bytes,3,opt,name=name"`
}

ObjectReference represents a reference to a k8s resource

func CreateObjectReference added in v1.3.820

func CreateObjectReference(t metav1.TypeMeta, o metav1.ObjectMeta) ObjectReference

CreateObjectReference create an ObjectReference from the typed and object meta stuff

type PatchRow

type PatchRow struct {
	Op    string      `json:"op"`
	Path  string      `json:"path"`
	Value interface{} `json:"value"`
}

PatchRow used to generate the patch JSON for patching

type PipelineActivityKey

type PipelineActivityKey struct {
	Name              string
	Pipeline          string
	Build             string
	Version           string
	BuildURL          string
	BuildLogsURL      string
	ReleaseNotesURL   string
	LastCommitSHA     string
	LastCommitMessage string
	LastCommitURL     string
	GitInfo           *gits.GitRepository
}

func (*PipelineActivityKey) GetOrCreate

func (k *PipelineActivityKey) GetOrCreate(jxClient versioned.Interface, ns string) (*v1.PipelineActivity, bool, error)

GetOrCreate gets or creates the pipeline activity

func (*PipelineActivityKey) GitOwner added in v1.3.839

func (k *PipelineActivityKey) GitOwner() string

GitOwner returns the git owner (person / organisation) or blank string if it cannot be found

func (*PipelineActivityKey) GitRepository added in v1.3.839

func (k *PipelineActivityKey) GitRepository() string

GitRepository returns the git repository name or blank string if it cannot be found

func (*PipelineActivityKey) GitURL added in v1.3.839

func (k *PipelineActivityKey) GitURL() string

GitURL returns the git URL or blank string if it cannot be found

func (*PipelineActivityKey) IsValid

func (k *PipelineActivityKey) IsValid() bool

type PipelineDetails

type PipelineDetails struct {
	GitOwner      string
	GitRepository string
	BranchName    string
	Pipeline      string
	Build         string
}

func CreatePipelineDetails

func CreatePipelineDetails(activity *v1.PipelineActivity) *PipelineDetails

CreatePipelineDetails creates a PipelineDetails object populated from the activity

type PipelineID

type PipelineID struct {
	ID   string
	Name string
}

PipelineID is an identifier for a Pipeline. A pipeline is typically identified by its owner, repository, and branch with the ID field taking the form `<owner>/>repository>/<branch>`

func NewPipelineID

func NewPipelineID(owner string, repository string, branch string) PipelineID

NewPipelineID creates a new PipelineID for a given owner, repository, and branch.

func NewPipelineIDFromString

func NewPipelineIDFromString(id string) PipelineID

NewPipelineIDFromString creates a new PipelineID, given a pre-built string identifier. The string identifier is expected to follow the format `<owner>/>repository>/<branch>`, though this isn't actually validated/mandated here.

func (*PipelineID) GetActivityName

func (p *PipelineID) GetActivityName(activity string) string

GetActivityName Builds a Kubernetes-friendly (i.e. a-z,-,. only) name for a specific activity, within a pipeline.

type PipelineNamespaceCache

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

PipelineNamespaceCache caches the pipelines for a single namespace

func NewPipelineCache

func NewPipelineCache(jxClient versioned.Interface, ns string) *PipelineNamespaceCache

NewPipelineCache creates a cache of pipelines for a namespace

func (*PipelineNamespaceCache) ForEach added in v1.3.814

func (c *PipelineNamespaceCache) ForEach(callback func(*v1.PipelineActivity))

ForEach runs the supplied function on every element in the Map. In no particular order.

func (*PipelineNamespaceCache) Pipelines

func (c *PipelineNamespaceCache) Pipelines() []*v1.PipelineActivity

Pipelines returns the pipelines in this namespace sorted in name order

func (*PipelineNamespaceCache) Ready added in v1.3.814

func (c *PipelineNamespaceCache) Ready() bool

Ready returns true if this cache has done its initial load and is in sync.

func (*PipelineNamespaceCache) Stop

func (c *PipelineNamespaceCache) Stop()

Stop closes the underlying chanel processing events which stops consuming watch events

type PromoteStepActivityKey

type PromoteStepActivityKey struct {
	PipelineActivityKey

	Environment    string
	ApplicationURL string
}

func (*PromoteStepActivityKey) GetOrCreatePreview

GetOrCreatePreview gets or creates the Preview step for the key

func (*PromoteStepActivityKey) GetOrCreatePromote

GetOrCreatePromote gets or creates the Promote step for the key

func (*PromoteStepActivityKey) GetOrCreatePromotePullRequest

GetOrCreatePromotePullRequest gets or creates the PromotePullRequest for the key

func (*PromoteStepActivityKey) GetOrCreatePromoteUpdate

GetOrCreatePromoteUpdate gets or creates the Promote for the key

func (*PromoteStepActivityKey) OnPromotePullRequest

func (k *PromoteStepActivityKey) OnPromotePullRequest(jxClient versioned.Interface, ns string, fn PromotePullRequestFn) error

OnPromotePullRequest updates activities on a Promote PR

func (*PromoteStepActivityKey) OnPromoteUpdate

func (k *PromoteStepActivityKey) OnPromoteUpdate(jxClient versioned.Interface, ns string, fn PromoteUpdateFn) error

OnPromoteUpdate updates activities on a Promote Update

type ReleaseOrder

type ReleaseOrder []v1.Release

func (ReleaseOrder) Len

func (a ReleaseOrder) Len() int

func (ReleaseOrder) Less

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

func (ReleaseOrder) Swap

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

type SourceRepoer

type SourceRepoer interface {
	// CreateOrUpdateSourceRepository creates or updates a source repository
	CreateOrUpdateSourceRepository(name, organisation, providerUrl string) error

	// CreateSourceRepository creates an source repository. If a source repository already exists, it will return an error
	CreateSourceRepository(name, organisation, providerUrl string) error

	// DeleteSourceRepository deletes a source repository
	DeleteSourceRepository(name string) error

	// GetSourceRepository gets an source repository, if it exists and returns an error otherwise
	GetSourceRepository(name string) (*v1.SourceRepository, error)

	// ListSourceRepositories gets a list of all the source repositorys
	ListSourceRepositories() (*v1.SourceRepositoryList, error)
}

SourceRepoer is responsible for storing information about Source Repositories (aka Applications, Projects) go:generate pegomock generate github.com/jenkins-x/jx/pkg/kube SourceRepoer -o mocks/sourcerepoer.go --generate-matchers

func NewSourceRepositoryService

func NewSourceRepositoryService(client versioned.Interface, namespace string) SourceRepoer

NewSourceRepositoryService creates a new Service for interacting with the Source Repository Custom Resource

type SourceRepositoryService

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

SourceRepositoryService is the implementation of SourceRepoer

func (*SourceRepositoryService) CreateOrUpdateSourceRepository

func (service *SourceRepositoryService) CreateOrUpdateSourceRepository(name, organisation, providerURL string) error

CreateOrUpdateSourceRepository creates a repo if it doesn't exist or updates it if the URL has changed

func (*SourceRepositoryService) CreateSourceRepository

func (service *SourceRepositoryService) CreateSourceRepository(name, organisation, providerURL string) error

CreateSourceRepository creates a repo. If a repo already exists, it will return an error

func (*SourceRepositoryService) DeleteSourceRepository

func (service *SourceRepositoryService) DeleteSourceRepository(name string) error

DeleteSourceRepository deletes a repo

func (*SourceRepositoryService) GetSourceRepository

func (service *SourceRepositoryService) GetSourceRepository(name string) (*v1.SourceRepository, error)

GetSourceRepository gets repo, if it exists and returns an error otherwise

func (*SourceRepositoryService) ListSourceRepositories

func (service *SourceRepositoryService) ListSourceRepositories() (*v1.SourceRepositoryList, error)

ListSourceRepositories gets a list of all the repos

Directories

Path Synopsis
matchers
Code generated by pegomock.
Code generated by pegomock.

Jump to

Keyboard shortcuts

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