jx: github.com/jenkins-x/jx/pkg/kube Index | Files | Directories

package kube

import "github.com/jenkins-x/jx/pkg/kube"

Index

Package Files

activity.go activity_functions.go clients.go cluster_status.go config.go configmap.go constants.go containers.go crds.go daemonsets.go deployments.go env.go env_cache.go envrolebindings.go envvar.go git_services.go ingress.go install_rbac.go interface.go jenkins.go job.go jx_install_config.go kops.go log_masker.go logs.go metadata.go metrics.go namespaces.go owners.go patch.go pipeline_cache.go pod.go pod_templates.go quickstarts.go releases.go roles.go runtime_objects.go secrets.go sourcerepositories.go storage.go teams.go times.go validate.go version.go volumes.go

Constants

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"
)
const (
    // DefaultChartMuseumURL default URL for Jenkins X Charts
    DefaultChartMuseumURL = "https://storage.googleapis.com/chartmuseum.jenkins-x.io"
    // DefaultChartMuseumJxRepoName default repo name for Jenkins X Charts
    DefaultChartMuseumJxRepoName = "jenkins-x"

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

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

    //ChartExternalDNS the default chart for external-dns
    ChartOwnerExternalDNS         = "bitnami"
    ChartURLExternalDNS           = "https://charts.bitnami.com/bitnami"
    ChartExternalDNS              = "bitnami/external-dns"
    DefaultExternalDNSReleaseName = "external-dns"
    DefaultExternalDNSTag         = "1.5.2"

    // SecretKaniko the name of the secret containing the kaniko service account
    SecretKaniko = "kaniko-secret"

    // SecretVelero the name of the secret containing the velero service account
    SecretVelero = "velero-secret"

    // 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 UI for Jenkins X
    ServiceCloudBees = "cb-jxui"

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

    // LabelGitSync to indicate whether or not to sync this resource to GitOps
    LabelGitSync = "jenkins.io/gitSync"

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

    // ValueKindPodTemplate a PodTemplate in a ConfigMap
    ValueKindPodTemplate = "podTemplate"

    // ValueKindPodTemplateXML a PodTemplate XML in a ConfigMap
    ValueKindPodTemplateXML = "podTemplateXml"

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

    // LabelDevPodGitPrefix used to label a devpod with the repository host, owner, repo
    LabelDevPodGitPrefix = "jenkins.io/repo"

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

    // LabelValueThisEnvironment is the value of the LabelTeam label for the current environment in remote clusters
    LabelValueThisEnvironment = "this"

    // 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"
    // AnnotationGitURLs the newline separated list of git URLs of the DevPods
    AnnotationGitURLs = "jenkins.io/git-urls"
    // AnnotationGitReportState used to annotate what state has been reported to git
    AnnotationGitReportState = "jenkins.io/git-report-state"

    // 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 the API token
    JenkinsAdminApiToken = "jenkins-admin-api-token"

    // JenkinsAdminUserField the admin user name
    JenkinsAdminUserField = "jenkins-admin-user"

    // JenkinsAdminPasswordField the password field
    JenkinsAdminPasswordField = "jenkins-admin-password"

    // JenkinsBearTokenField the bearer token
    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"

    // KubeProvider stores the kubernetes provider name
    KubeProvider = "kubeProvider"

    // SystemVaultName stores the name of the system Vault created on install
    SystemVaultName = "systemVaultName"
)
const (
    IngressConfigConfigmap = "ingress-config"
    Domain                 = "domain"
    Email                  = "email"
    TLS                    = "tls"
    Issuer                 = "issuer"
    ClusterIssuer          = "clusterissuer"
    Exposer                = "exposer"
    UrlTemplate            = "urltemplate"
)
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"
)
const (
    // ClassificationLogs stores build logs
    ClassificationLogs = "logs"

    // ClassificationTests stores test results/reports
    ClassificationTests = "tests"

    // ClassificationCoverage stores code coverage results/reports
    ClassificationCoverage = "coverage"

    // ClassificationReports stores test results, coverage & quality reports
    ClassificationReports = "reports"
)
const (
    OptionName      = "name"
    OptionNamespace = "namespace"
)

Variables

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",
    }
)
var (
    // Classifications the common classification names
    Classifications = []string{
        ClassificationCoverage, ClassificationTests, ClassificationLogs, ClassificationReports,
    }

    // ClassificationValues the classification values as a string
    ClassificationValues = strings.Join(Classifications, ", ")
)
var (
    DefaultQuickstartLocations = []v1.QuickStartLocation{
        {
            GitURL:   gits.GitHubURL,
            GitKind:  gits.KindGitHub,
            Owner:    "jenkins-x-quickstarts",
            Includes: []string{"*"},
            Excludes: []string{"WIP-*"},
        },
    }
)

func AddUserToConfig Uses

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

AddUserToConfig adds the given user to the config

func BuildJSONPatch Uses

func BuildJSONPatch(obj interface{}, mutate PatchModifier) ([]byte, error)

BuildJSONPatch builds JSON patch data for an entity mutation, that can then be applied to K8S as a Patch update. The mutation is applied via the supplied callback, which modifies the entity it is given. If the supplied mutate method returns an error then the process is aborted and the error returned.

func CertificateAuthorityData Uses

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

CertificateAuthorityData returns the certificate authority data for the given context

func Cluster Uses

func Cluster(config *api.Config) string

Cluster returns the cluster of the given config

func ClusterRoleBindingYaml Uses

func ClusterRoleBindingYaml(user string) string

func ClusterRoleYaml Uses

func ClusterRoleYaml(user string) string

func CombineVolumes Uses

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

CombineVolumes combines all the given volumes together ignoring duplicates

func CompletePromote Uses

func CompletePromote(p *v1.PromoteActivityStep) error

func CompletePromotionPullRequest Uses

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

func CompletePromotionUpdate Uses

func CompletePromotionUpdate(a *v1.PipelineActivity, s *v1.PipelineActivityStep, ps *v1.PromoteActivityStep, p *v1.PromoteUpdateStep) error

func ContainsVolume Uses

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

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

func ContainsVolumeMount Uses

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

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

func CreateClusterRole Uses

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

CreateClusterRole creates a new cluster role

func CreateClusterRoleBinding Uses

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 Uses

func CreateDefaultDevEnvironment(ns string) *v1.Environment

CreateDefaultDevEnvironment creates a default development environment

func CreateEnvGitRepository Uses

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, chartMusemFn ResolveChartMuseumURLFn, 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 Uses

func CreateEnvironmentSurvey(batchMode bool, authConfigSvc auth.ConfigService, devEnv *v1.Environment, data *v1.Environment,
    config *v1.Environment, update bool, forkEnvGitURL string, ns string, jxClient versioned.Interface, kubeClient kubernetes.Interface, envDir string,
    gitRepoOptions *gits.GitRepositoryOptions, helmValues config.HelmValuesConfig, prefix string, git gits.Gitter, chartMusemFn ResolveChartMuseumURLFn, 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 Uses

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

CreateKubeClient creates a new Kubernetes client

func CreatePatchBytes Uses

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

CreatePatchBytes creates a kubernetes PATCH block

func CreateSourceRepository Uses

func CreateSourceRepository(client versioned.Interface, namespace string, name, organisation, providerURL string) error

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

func CreateTeam Uses

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

CreateTeam creates a new default Team

func CurrentCluster Uses

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

CurrentCluster returns the current cluster

func CurrentContext Uses

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

CurrentContext returns the current context

func CurrentContextName Uses

func CurrentContextName(config *api.Config) string

CurrentContextName returns the current context name

func CurrentNamespace Uses

func CurrentNamespace(config *api.Config) string

CurrentNamespace returns the current namespace in the context

func CurrentServer Uses

func CurrentServer(config *api.Config) string

CurrentServer returns the current context's server

func DefaultModifyConfigMap Uses

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 Uses

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 Uses

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

DeleteClusterRole deletes a cluster role if exists

func DeleteClusterRoleBinding Uses

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

DeleteClusterRoleBinding deltes a cluster role binding

func DeleteIngress Uses

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

DeleteIngress removes an ingress by name

func DeleteJob Uses

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

func DeleteTeam Uses

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

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

func DeploymentPodCount Uses

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

func DoCreateEnvironmentGitRepo Uses

func DoCreateEnvironmentGitRepo(batchMode bool, authConfigSvc auth.ConfigService, env *v1.Environment, forkEnvGitURL string,
    environmentsDir string, gitRepoOptions *gits.GitRepositoryOptions, helmValues config.HelmValuesConfig, prefix string,
    git gits.Gitter, chartMuseumFn ResolveChartMuseumURLFn, in terminal.FileReader, out terminal.FileWriter, outErr io.Writer) (*gits.GitRepository, gits.GitProvider, error)

DoCreateEnvironmentGitRepo actually creates the git repository for the environment

func EnableInsecureRegistry Uses

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

EnableInsecureRegistry appends the Docker Registry

func EnsureDevEnvironmentSetup Uses

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

EnsureDevEnvironmentSetup ensures that the Environment is created in the given namespace

func EnsureDevNamespaceCreatedWithoutEnvironment Uses

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

EnsureDevNamespaceCreatedWithoutEnvironment ensures that there is a development namespace created

func EnsureEditEnvironmentSetup Uses

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 Uses

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

func EnsureGitServiceExistsForHost Uses

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 Uses

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 Uses

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

EnvironmentMatches returns true if the environment matches the given filter

func EnvironmentMatchesAny Uses

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 Uses

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

func ExtractDomainValue Uses

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

ExtractDomainValue returns the domain value

func FailedPromote Uses

func FailedPromote(p *v1.PromoteActivityStep) error

func FailedPromotionPullRequest Uses

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

func FailedPromotionUpdate Uses

func FailedPromotionUpdate(a *v1.PipelineActivity, s *v1.PipelineActivityStep, ps *v1.PromoteActivityStep, p *v1.PromoteUpdateStep) error

func FindGitCredentials Uses

func FindGitCredentials(gitProvider gits.GitProvider, secrets *v12.SecretList) string

FindGitCredentials finds the credential name from the pipeline git Secrets

func FindSourceRepository Uses

func FindSourceRepository(jxClient versioned.Interface, ns string, owner string, name string) (*v1.SourceRepository, error)

FindSourceRepository returns a SourceRepository for the given namespace, owner and name or returns an error if it cannot be found

func FixSchema Uses

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 GenerateBuildNumber Uses

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 GetAdminNamespace Uses

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 Uses

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

GetAppName returns the app name

func GetCommandAndArgs Uses

func GetCommandAndArgs(container *corev1.Container, isInit bool) ([]string, []string)

GetCommandAndArgs extracts the command and arguments for the container, taking into account the entrypoint invocation if it's not an init container

func GetCommitSha Uses

func GetCommitSha(r *metav1.ObjectMeta) string

GetCommitSha returns the git commit sha

func GetCommitURL Uses

func GetCommitURL(r *metav1.ObjectMeta) string

GetCommitURL returns the git commit URL

func GetConfigMap Uses

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

GetConfigMap gets a named configmap

func GetConfigMapData Uses

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

GetConfigMapData gets config map data

func GetConfigMaps Uses

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 GetContainersWithStatusAndIsInit Uses

func GetContainersWithStatusAndIsInit(pod *v1.Pod) ([]v1.Container, []v1.ContainerStatus, bool)

GetContainersWithStatusAndIsInit gets the containers in the pod, either init containers or non-init depending on whether non-init containers are present, and a flag as to whether this list of containers are init containers or not.

func GetCurrentDomain Uses

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

GetCurrentDomain gets the current domain

func GetCurrentPod Uses

func GetCurrentPod(kubeClient kubernetes.Interface, ns string) (*v1.Pod, error)

GetCurrentPod returns the current pod the code is running in or nil if it cannot be deduced

func GetDeploymentByRepo Uses

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

func GetDeploymentNames Uses

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

func GetDeploymentPods Uses

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

func GetDeployments Uses

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

func GetDevEnvGitOwner Uses

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 Uses

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 Uses

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 Uses

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 Uses

func GetEditAppName(name string) string

func GetEditEnvironmentNamespace Uses

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

GetEditEnvironmentNamespace returns the namespace of the current users edit environment

func GetEnrichedDevEnvironment Uses

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 Uses

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

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

func GetEnvironment Uses

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

GetEnvironment find an environment by name

func GetEnvironmentNames Uses

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

GetEnvironmentNames returns the sorted list of environment names

func GetEnvironmentNamespace Uses

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

GetEnvironments returns the namespace name for a given environment

func GetEnvironmentRoles Uses

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 Uses

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 Uses

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

GetEnvironmentsByPrURL find an environment by a pull request URL

func GetFilteredEnvironmentNames Uses

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 Uses

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 Uses

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

func GetName Uses

func GetName(r *metav1.ObjectMeta) string

GetName returns the app name

func GetOrCreateRelease Uses

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

GetOrCreateRelease creates or updates the given release resource

func GetOrCreateSourceRepository Uses

func GetOrCreateSourceRepository(jxClient versioned.Interface, ns string, name, organisation, providerURL string) (*v1.SourceRepository, error)

GetOrCreateSourceRepository gets or creates the SourceRepository for the given repository name and organisation

func GetOrCreateSourceRepositoryCallback Uses

func GetOrCreateSourceRepositoryCallback(jxClient versioned.Interface, ns string, name, organisation, providerURL string, callback func(*v1.SourceRepository)) (*v1.SourceRepository, error)

GetOrCreateSourceRepositoryCallback gets or creates the SourceRepository for the given repository name and organisation invoking the given callback to modify the resource before create/udpate

func GetOrCreateStage Uses

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

GetOrCreateStage gets or creates the stage for the given name

func GetOrderedEnvironments Uses

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 Uses

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

GetOrderedReleases returns the releases sorted in newest release first

func GetPendingTeams Uses

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 Uses

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

GetPermanentEnvironments returns a list with the current permanent environments

func GetPodCondition Uses

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 Uses

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

func GetPodNames Uses

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

func GetPodReadyCondition Uses

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 Uses

func GetPodRestarts(pod *v1.Pod) int32

GetPodRestars returns the number of restarts of a POD

func GetPodVersion Uses

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

GetPodVersion returns the version for the given app name

func GetPods Uses

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

func GetPodsWithLabels Uses

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

func GetPreviewEnvironmentReleaseName Uses

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 Uses

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 GetRepositoryGitURL Uses

func GetRepositoryGitURL(s *v1.SourceRepository) (string, error)

GetRepositoryGitURL returns the git repository clone URL

func GetSecrets Uses

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 Uses

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

GetServiceKindFromSecrets gets the kind of service from secrets

func GetSliceEnvVar Uses

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 GetStepValueFromStage Uses

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

GetStepValueFromStage gets the value for the step for the given name in the given stage, if it already exists. If it doesn't exist, it will create a new step for that name instead.

func GetTeamRoles Uses

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 Uses

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

GetTeams returns the Teams the user is a member of

func GetUserRoles Uses

func GetUserRoles(kubeClient kubernetes.Interface, 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 Uses

func GetVersion(r *metav1.ObjectMeta) string

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

func GetVolume Uses

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

func GetVolumeMount Uses

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

func HasContainerStarted Uses

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

HasContainerStarted returns true if the given Container has started running

func IsClusterRole Uses

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

IsClusterRole checks if a cluster role exists

func IsClusterRoleBinding Uses

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

IsClusterRoleBinding checks if the cluster role binding exists

func IsDaemonSetExists Uses

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

func IsDeploymentRunning Uses

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

func IsEnvironmentRepository Uses

func IsEnvironmentRepository(environments map[string]*v1.Environment, repository *v1.SourceRepository) bool

IsEnvironmentRepository returns true if the given repository is an environment repository

func IsJobFinished Uses

func IsJobFinished(job *batchv1.Job) bool

IsJobFinished returns true if the job has completed

func IsJobSucceeded Uses

func IsJobSucceeded(job *batchv1.Job) bool

IsJobSucceeded returns true if the job completed and did not fail

func IsPermanentEnvironment Uses

func IsPermanentEnvironment(env *v1.Environment) bool

IsPermanentEnvironment indicates if an environment is permanent

func IsPodCompleted Uses

func IsPodCompleted(pod *v1.Pod) bool

IsPodCompleted returns true if a pod is completed (succeeded or failed); false otherwise.

func IsPodReady Uses

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 Uses

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 Uses

func IsPreviewEnvironment(env *v1.Environment) bool

func IsProwEnabled Uses

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

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

func IsResourceVersionNewer Uses

func IsResourceVersionNewer(v1 string, v2 string) bool

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

func IsTektonEnabled Uses

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

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

func LoadPodTemplates Uses

func LoadPodTemplates(kubeClient kubernetes.Interface, ns string) (map[string]*corev1.Pod, error)

LoadPodTemplates loads the Jenkins pod templates from the given namespace

func ModifyNamespace Uses

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

ModifyNamespace modifies the namespace

func NewPermanentEnvironment Uses

func NewPermanentEnvironment(name string) *v1.Environment

NewPermanentEnvironment creates a new permanent environment for testing

func NewPermanentEnvironmentWithGit Uses

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

NewPermanentEnvironment creates a new permanent environment for testing

func NewPreviewEnvironment Uses

func NewPreviewEnvironment(name string) *v1.Environment

NewPreviewEnvironment creates a new preview environment for testing

func ParseXml Uses

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

ParseXml parses XML

func PickEnvironment Uses

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

func PodOwnerRef Uses

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

func PodRequestsAndLimits Uses

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

func PodStatus Uses

func PodStatus(pod *v1.Pod) string

func ReadInstallValues Uses

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 Uses

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 Uses

func RegisterAllCRDs(apiClient apiextensionsclientset.Interface) error

RegisterAllCRDs ensures that all Jenkins-X CRDs are registered

func RegisterAppCRD Uses

func RegisterAppCRD(apiClient apiextensionsclientset.Interface) error

RegisterAppCRD ensures that the CRD is registered for App

func RegisterBuildPackCRD Uses

func RegisterBuildPackCRD(apiClient apiextensionsclientset.Interface) error

RegisterBuildPackCRD ensures that the CRD is registered for BuildPack

func RegisterCRD Uses

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 Uses

func RegisterCommitStatusCRD(apiClient apiextensionsclientset.Interface) error

RegisterCommitStatusCRD ensures that the CRD is registered for CommitStatus

func RegisterEnvironmentCRD Uses

func RegisterEnvironmentCRD(apiClient apiextensionsclientset.Interface) error

RegisterEnvironmentCRD ensures that the CRD is registered for Environments

func RegisterEnvironmentRoleBindingCRD Uses

func RegisterEnvironmentRoleBindingCRD(apiClient apiextensionsclientset.Interface) error

RegisterEnvironmentRoleBindingCRD ensures that the CRD is registered for Environments

func RegisterExtensionCRD Uses

func RegisterExtensionCRD(apiClient apiextensionsclientset.Interface) error

RegisterExtensionCRD ensures that the CRD is registered for Extension

func RegisterFactCRD Uses

func RegisterFactCRD(apiClient apiextensionsclientset.Interface) error

RegisterFactCRD ensures that the CRD is registered for Fact

func RegisterGitServiceCRD Uses

func RegisterGitServiceCRD(apiClient apiextensionsclientset.Interface) error

RegisterGitServiceCRD ensures that the CRD is registered for GitServices

func RegisterPipelineActivityCRD Uses

func RegisterPipelineActivityCRD(apiClient apiextensionsclientset.Interface) error

RegisterPipelineActivityCRD ensures that the CRD is registered for PipelineActivity

func RegisterPipelineCRDs Uses

func RegisterPipelineCRDs(apiClient apiextensionsclientset.Interface) error

RegisterPipelineCRDs ensures that all Jenkins X Pipeline related CRDs are registered

func RegisterPipelineScheduler Uses

func RegisterPipelineScheduler(apiClient apiextensionsclientset.Interface) error

RegisterPipelineScheduler ensures that the CRD is registered for App

func RegisterPipelineStructureCRD Uses

func RegisterPipelineStructureCRD(apiClient apiextensionsclientset.Interface) error

RegisterPipelineStructureCRD ensures that the CRD is registered for PipelineStructure

func RegisterPluginCRD Uses

func RegisterPluginCRD(apiClient apiextensionsclientset.Interface) error

RegisterPluginCRD ensures that the CRD is registered for Plugin

func RegisterReleaseCRD Uses

func RegisterReleaseCRD(apiClient apiextensionsclientset.Interface) error

RegisterReleaseCRD ensures that the CRD is registered for Release

func RegisterSourceRepositoryCRD Uses

func RegisterSourceRepositoryCRD(apiClient apiextensionsclientset.Interface) error

RegisterSourceRepositoryCRD ensures that the CRD is registered for Applications

func RegisterSourceRepositoryGroup Uses

func RegisterSourceRepositoryGroup(apiClient apiextensionsclientset.Interface) error

RegisterSourceRepositoryGroup ensures that the CRD is registered for App

func RegisterTeamCRD Uses

func RegisterTeamCRD(apiClient apiextensionsclientset.Interface) error

RegisterTeamCRD ensures that the CRD is registered for Team

func RegisterUserCRD Uses

func RegisterUserCRD(apiClient apiextensionsclientset.Interface) error

RegisterUserCRD ensures that the CRD is registered for User

func RegisterWorkflowCRD Uses

func RegisterWorkflowCRD(apiClient apiextensionsclientset.Interface) error

RegisterWorkflowCRD ensures that the CRD is registered for Environments

func RememberInstallValues Uses

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 Uses

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 Uses

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

ReplaceMakeVariable needs a description

func RoleBindingKubeSystemYaml Uses

func RoleBindingKubeSystemYaml(user string) string

func RoleBindings Uses

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

func RoleKubeSystemYaml Uses

func RoleKubeSystemYaml(user string) string

func SaveAsConfigMap Uses

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 Uses

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

Server returns the server of the given context

func ServiceOwnerRef Uses

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

func SetAdminNamespace Uses

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 SetEnvVar Uses

func SetEnvVar(envVars []corev1.EnvVar, name string, value string) []corev1.EnvVar

SetEnvVar returns the env vars with the env var of the given name updated or appended

func SortEnvironments Uses

func SortEnvironments(environments []v1.Environment)

func SortListWatchByName Uses

func SortListWatchByName(listWatch *cache.ListWatch)

func SortReleases Uses

func SortReleases(releases []v1.Release)

SortReleases sorts the releases in name order then latest version first

func SortRuntimeObjectsByName Uses

func SortRuntimeObjectsByName(objects []runtime.Object)

func StartPromote Uses

func StartPromote(p *v1.PromoteActivityStep) error

func StartPromotionPullRequest Uses

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

func StartPromotionUpdate Uses

func StartPromotionUpdate(a *v1.PipelineActivity, s *v1.PipelineActivityStep, ps *v1.PromoteActivityStep, p *v1.PromoteUpdateStep) error

func TailLogs Uses

func TailLogs(ns string, pod string, containerName string, errOut io.Writer, out io.Writer) error

TailLogs will tail the logs for the pod in ns with containerName, returning when the logs are complete. It writes to errOut and out.

func ToMetaTime Uses

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

ToMetaTime converts the go time pointer to a meta time

func ToProviderName Uses

func ToProviderName(gitURL string) string

ToProviderName takes the git URL and converts it to a provider name which can be used as a label selector

func UpdateJenkinsGitServers Uses

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 Uses

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 Uses

func ValidNameOption(option string, value string) error

func ValidSubDomainOption Uses

func ValidSubDomainOption(option string, value string) error

func ValidateEnvironmentDoesNotExist Uses

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

func ValidateName Uses

func ValidateName(val interface{}) error

func ValidateSecret Uses

func ValidateSecret(kubeClient kubernetes.Interface, secretName, key, ns string) error

ValidateSecret checks a given secret and key exists in the provided namespace

func ValidateSubDomain Uses

func ValidateSubDomain(val interface{}) error

func WaitForAllDeploymentsToBeReady Uses

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

func WaitForDeploymentToBeCreatedAndReady Uses

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

func WaitForDeploymentToBeReady Uses

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

WaitForDeploymentToBeReady waits for the pods of a deployment to become ready

func WaitForJobToComplete Uses

func WaitForJobToComplete(client kubernetes.Interface, namespace, jobName string, timeout time.Duration, verbose bool) error

WaitForJobToComplete waits for the job to complete

func WaitForJobToFinish Uses

func WaitForJobToFinish(client kubernetes.Interface, namespace, jobName string, timeout time.Duration, verbose bool) error

WaitForJobToFinish waits for the job to finish

func WaitForJobToSucceeded Uses

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

waits for the job to complete

func WaitForPodNameToBeComplete Uses

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

WaitForPodNameToBeComplete waits for the pod to complete (succeed or fail) using the pod name

func WaitForPodNameToBeReady Uses

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

waits for the pod to become ready using the pod name

type ByName Uses

type ByName []runtime.Object

func (ByName) Len Uses

func (a ByName) Len() int

func (ByName) Less Uses

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

func (ByName) Swap Uses

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

type ByOrder Uses

type ByOrder []v1.Environment

func (ByOrder) Len Uses

func (a ByOrder) Len() int

func (ByOrder) Less Uses

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

func (ByOrder) Swap Uses

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

type ClusterStatus Uses

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

func GetClusterStatus Uses

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

func (*ClusterStatus) AverageCpuPercent Uses

func (clusterStatus *ClusterStatus) AverageCpuPercent() int

func (*ClusterStatus) AverageMemPercent Uses

func (clusterStatus *ClusterStatus) AverageMemPercent() int

func (*ClusterStatus) CheckResource Uses

func (clusterStatus *ClusterStatus) CheckResource() string

func (*ClusterStatus) Info Uses

func (clusterStatus *ClusterStatus) Info() string

func (*ClusterStatus) MinimumResourceLimit Uses

func (clusterStatus *ClusterStatus) MinimumResourceLimit() int

func (*ClusterStatus) NodeCount Uses

func (clusterStatus *ClusterStatus) NodeCount() int

type EnvironmentNamespaceCache Uses

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

EnvironmentNamespaceCache caches the Environments for a single namespace

func CreateEnvironmentCache Uses

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

CreateEnvironmentCache creates a cache for the given namespace of Environments

func (*EnvironmentNamespaceCache) Item Uses

func (c *EnvironmentNamespaceCache) Item(name string) *v1.Environment

Item returns the Environment for the tiven name

func (*EnvironmentNamespaceCache) Items Uses

func (c *EnvironmentNamespaceCache) Items() []*v1.Environment

Items returns the Environments in this namespace sorted in name order

type HeapterConfig Uses

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

func (*HeapterConfig) GetPodMetrics Uses

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

type IngressConfig Uses

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"`
    ClusterIssuer bool   `structs:"clusterissuer" yaml:"clusterissuer" json:"clusterissuer"`
    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 Uses

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

type JXInstallConfig Uses

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 Uses

type KubeConfig struct{}

KubeConfig implements kube interactions

func (*KubeConfig) LoadConfig Uses

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

LoadConfig loads the Kubernetes configuration

func (*KubeConfig) UpdateConfig Uses

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

UpdateConfig defines new config entries for jx

type Kuber Uses

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 go:generate pegomock generate github.com/jenkins-x/jx/pkg/kube Kuber -o mocks/kuber.go

func NewKubeConfig Uses

func NewKubeConfig() Kuber

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

type LogMasker Uses

type LogMasker struct {
    ReplaceWords map[string]string
}

LogMasker replaces words in a log from a set of secrets

func NewLogMasker Uses

func NewLogMasker(kubeClient kubernetes.Interface, ns string) (*LogMasker, error)

NewLogMasker creates a new LogMasker loading secrets from the given namespace

func NewLogMaskerFromMap Uses

func NewLogMaskerFromMap(m map[string]interface{}) *LogMasker

NewLogMaskerFromMap creates a new LogMasker with all the string values in a tree of map

func (*LogMasker) LoadSecret Uses

func (m *LogMasker) LoadSecret(secret *corev1.Secret)

LoadSecret loads the secret data into the log masker

func (*LogMasker) LoadSecrets Uses

func (m *LogMasker) LoadSecrets(kubeClient kubernetes.Interface, ns string) error

LoadSecrets loads the secrets into the log masker

func (*LogMasker) MaskLog Uses

func (m *LogMasker) MaskLog(text string) string

MaskLog returns the text with all of the secrets masked out

func (*LogMasker) MaskLogData Uses

func (m *LogMasker) MaskLogData(logData []byte) []byte

MaskLogData masks the log data

type NodeStatus Uses

type NodeStatus struct {
    Name               string
    AllocatableMemory  *resource.Quantity
    AllocatableCPU     *resource.Quantity
    AllocatableStorage *resource.Quantity

    CpuRequests resource.Quantity
    CpuLimits   resource.Quantity
    MemRequests resource.Quantity
    MemLimits   resource.Quantity

    DiskRequests resource.Quantity
    DiskLimits   resource.Quantity
    // contains filtered or unexported fields
}

func Status Uses

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

type ObjectReference Uses

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 Uses

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

CreateObjectReference create an ObjectReference from the typed and object meta stuff

type PatchModifier Uses

type PatchModifier func(obj interface{}) error

PatchModifier is a function that is function that mutates an entity during JSON patch generation. The function should modify the provided value, and can return an non-nil error if something goes wrong.

type PatchRow Uses

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 Uses

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
    PullRefs          map[string]string
    Context           string
}

func (*PipelineActivityKey) GetOrCreate Uses

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

GetOrCreate gets or creates the pipeline activity

func (*PipelineActivityKey) GitOwner Uses

func (k *PipelineActivityKey) GitOwner() string

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

func (*PipelineActivityKey) GitRepository Uses

func (k *PipelineActivityKey) GitRepository() string

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

func (*PipelineActivityKey) GitURL Uses

func (k *PipelineActivityKey) GitURL() string

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

func (*PipelineActivityKey) IsValid Uses

func (k *PipelineActivityKey) IsValid() bool

type PipelineDetails Uses

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

func CreatePipelineDetails Uses

func CreatePipelineDetails(activity *v1.PipelineActivity) *PipelineDetails

CreatePipelineDetails creates a PipelineDetails object populated from the activity

type PipelineID Uses

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 Uses

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

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

func NewPipelineIDFromString Uses

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 Uses

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 Uses

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

PipelineNamespaceCache caches the pipelines for a single namespace

func NewPipelineCache Uses

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

NewPipelineCache creates a cache of pipelines for a namespace

func (*PipelineNamespaceCache) ForEach Uses

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 Uses

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

Pipelines returns the pipelines in this namespace sorted in name order

func (*PipelineNamespaceCache) Ready Uses

func (c *PipelineNamespaceCache) Ready() bool

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

func (*PipelineNamespaceCache) Stop Uses

func (c *PipelineNamespaceCache) Stop()

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

type PromotePullRequestFn Uses

type PromotePullRequestFn func(*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PromoteActivityStep, *v1.PromotePullRequestStep) error

type PromoteStepActivityKey Uses

type PromoteStepActivityKey struct {
    PipelineActivityKey

    Environment    string
    ApplicationURL string
}

func (*PromoteStepActivityKey) GetOrCreatePreview Uses

func (k *PromoteStepActivityKey) GetOrCreatePreview(jxClient versioned.Interface, ns string) (*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PreviewActivityStep, bool, error)

GetOrCreatePreview gets or creates the Preview step for the key

func (*PromoteStepActivityKey) GetOrCreatePromote Uses

func (k *PromoteStepActivityKey) GetOrCreatePromote(jxClient versioned.Interface, ns string) (*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PromoteActivityStep, bool, error)

GetOrCreatePromote gets or creates the Promote step for the key

func (*PromoteStepActivityKey) GetOrCreatePromotePullRequest Uses

func (k *PromoteStepActivityKey) GetOrCreatePromotePullRequest(jxClient versioned.Interface, ns string) (*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PromoteActivityStep, *v1.PromotePullRequestStep, bool, error)

GetOrCreatePromotePullRequest gets or creates the PromotePullRequest for the key

func (*PromoteStepActivityKey) GetOrCreatePromoteUpdate Uses

func (k *PromoteStepActivityKey) GetOrCreatePromoteUpdate(jxClient versioned.Interface, ns string) (*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PromoteActivityStep, *v1.PromoteUpdateStep, bool, error)

GetOrCreatePromoteUpdate gets or creates the Promote for the key

func (*PromoteStepActivityKey) OnPromotePullRequest Uses

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

OnPromotePullRequest updates activities on a Promote PR

func (*PromoteStepActivityKey) OnPromoteUpdate Uses

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

OnPromoteUpdate updates activities on a Promote Update

type PromoteUpdateFn Uses

type PromoteUpdateFn func(*v1.PipelineActivity, *v1.PipelineActivityStep, *v1.PromoteActivityStep, *v1.PromoteUpdateStep) error

type ReleaseOrder Uses

type ReleaseOrder []v1.Release

func (ReleaseOrder) Len Uses

func (a ReleaseOrder) Len() int

func (ReleaseOrder) Less Uses

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

func (ReleaseOrder) Swap Uses

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

type ResolveChartMuseumURLFn Uses

type ResolveChartMuseumURLFn func() (string, error)

ResolveChartMuseumURLFn used to resolve the chart repository URL if using remote environments

Directories

PathSynopsis
cluster
mocks
mocks/matchersCode generated by pegomock.
naming
pki
resources
resources/mocks
serviceaccount
services
vault
watcher

Package kube imports 65 packages (graph) and is imported by 63 packages. Updated 2019-09-18. Refresh now. Tools for package owners.