Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package +k8s:openapi-gen=true Package v1 is the v1 version of the API. +groupName=config.jenkins.io +apiVersion=v1
Index ¶
- Constants
- Variables
- func MissingRequirement(property string, fileName string) error
- type Application
- type ApplicationConfig
- type AutoUpdateConfig
- type AzureConfig
- type BuildPackConfig
- type BuildPackLibrary
- type ClusterConfig
- type EnvironmentConfig
- type GKEConfig
- type GithubAppConfig
- type IngressConfig
- type JxInstallProfile
- type Phase
- type RepositoryType
- type RequirementsConfig
- func GetRequirementsConfigFromTeamSettings(settings *v1.TeamSettings) (*RequirementsConfig, error)
- func LoadRequirementsConfig(dir string, failOnValidationErrors bool) (*RequirementsConfig, string, error)
- func LoadRequirementsConfigFile(fileName string, failOnValidationErrors bool) (*RequirementsConfig, error)
- func NewRequirementsConfig() *RequirementsConfig
- func (in *RequirementsConfig) DeepCopy() *RequirementsConfig
- func (in *RequirementsConfig) DeepCopyInto(out *RequirementsConfig)
- func (c *RequirementsConfig) Environment(name string) (*EnvironmentConfig, error)
- func (c *RequirementsConfig) EnvironmentMap() map[string]interface{}
- func (c *RequirementsConfig) IsCloudProvider() bool
- func (c *RequirementsConfig) IsEmpty() bool
- func (c *RequirementsConfig) IsLazyCreateSecrets(flag string) (bool, error)
- func (c *RequirementsConfig) MergeSave(src *RequirementsConfig, requirementsFileName string) error
- func (c *RequirementsConfig) OverrideRequirementsFromEnvironment(gkeProjectNumber func(projectId string) (string, error))
- func (c *RequirementsConfig) SaveConfig(fileName string) error
- func (c *RequirementsConfig) ToMap() (map[string]interface{}, error)
- type RequirementsValues
- type SecretStorageType
- type StorageConfig
- type StorageEntryConfig
- type TLSConfig
- type UserNameEmailConfig
- type VaultAWSConfig
- type VaultAWSUnsealConfig
- type VaultAzureConfig
- type VaultConfig
- type VeleroConfig
- type VersionStreamConfig
- type WebhookType
Constants ¶
const ( // RequirementsConfigFileName is the name of the requirements configuration file RequirementsConfigFileName = "jx-requirements.yml" // RequirementsValuesFileName is the name of the requirements configuration file RequirementsValuesFileName = "jx-requirements.values.yaml.gotmpl" // RequirementDomainIssuerUsername contains the username used for basic auth when requesting a domain RequirementDomainIssuerUsername = "JX_REQUIREMENT_DOMAIN_ISSUER_USERNAME" // RequirementDomainIssuerPassword contains the password used for basic auth when requesting a domain RequirementDomainIssuerPassword = "JX_REQUIREMENT_DOMAIN_ISSUER_PASSWORD" // RequirementDomainIssuerURL contains the URL to the service used when requesting a domain RequirementDomainIssuerURL = "JX_REQUIREMENT_DOMAIN_ISSUER_URL" // RequirementClusterName is the cluster name RequirementClusterName = "JX_REQUIREMENT_CLUSTER_NAME" // RequirementProject is the cloudprovider project RequirementProject = "JX_REQUIREMENT_PROJECT" // RequirementZone zone the cluster is in RequirementZone = "JX_REQUIREMENT_ZONE" // RequirementEnvGitOwner the default git owner for environment repositories if none is specified explicitly RequirementEnvGitOwner = "JX_REQUIREMENT_ENV_GIT_OWNER" // RequirementEnvGitPublic sets the visibility of the environment repositories as private (subscription required for GitHub Organisations) RequirementEnvGitPublic = "JX_REQUIREMENT_ENV_GIT_PUBLIC" // RequirementGitPublic sets the visibility of the application repositories as private (subscription required for GitHub Organisations) RequirementGitPublic = "JX_REQUIREMENT_GIT_PUBLIC" // RequirementExternalDNSServiceAccountName the service account name for external dns RequirementExternalDNSServiceAccountName = "JX_REQUIREMENT_EXTERNALDNS_SA_NAME" // RequirementVaultName the name for vault RequirementVaultName = "JX_REQUIREMENT_VAULT_NAME" // RequirementVaultServiceAccountName the service account name for vault RequirementVaultServiceAccountName = "JX_REQUIREMENT_VAULT_SA_NAME" // RequirementVeleroServiceAccountName the service account name for velero RequirementVeleroServiceAccountName = "JX_REQUIREMENT_VELERO_SA_NAME" // RequirementVeleroTTL defines the time to live (TTL) for the Velero backups in minutes RequirementVeleroTTL = "JX_REQUIREMENT_VELERO_TTL" // RequirementVeleroSchedule defines the schedule of the Velero backups in cron notation RequirementVeleroSchedule = "JX_REQUIREMENT_VELERO_SCHEDULE" // RequirementVaultKeyringName the keyring name for vault RequirementVaultKeyringName = "JX_REQUIREMENT_VAULT_KEYRING_NAME" // RequirementVaultKeyName the key name for vault RequirementVaultKeyName = "JX_REQUIREMENT_VAULT_KEY_NAME" // RequirementVaultBucketName the vault name for vault RequirementVaultBucketName = "JX_REQUIREMENT_VAULT_BUCKET_NAME" // RequirementVaultRecreateBucket recreate the bucket that vault uses RequirementVaultRecreateBucket = "JX_REQUIREMENT_VAULT_RECREATE_BUCKET" // RequirementVaultDisableURLDiscovery override the default lookup of the Vault URL, could be incluster service or external ingress RequirementVaultDisableURLDiscovery = "JX_REQUIREMENT_VAULT_DISABLE_URL_DISCOVERY" // RequirementSecretStorageType the secret storage type RequirementSecretStorageType = "JX_REQUIREMENT_SECRET_STORAGE_TYPE" // RequirementKanikoServiceAccountName the service account name for kaniko RequirementKanikoServiceAccountName = "JX_REQUIREMENT_KANIKO_SA_NAME" // RequirementKaniko if kaniko is required RequirementKaniko = "JX_REQUIREMENT_KANIKO" // RequirementIngressTLSProduction use the lets encrypt production server RequirementIngressTLSProduction = "JX_REQUIREMENT_INGRESS_TLS_PRODUCTION" // RequirementChartRepository the helm chart repository for jx RequirementChartRepository = "JX_REQUIREMENT_CHART_REPOSITORY" // RequirementRegistry the container registry for jx RequirementRegistry = "JX_REQUIREMENT_REGISTRY" // RequirementRepository the artifact repository for jx RequirementRepository = "JX_REQUIREMENT_REPOSITORY" // RequirementWebhook the webhook handler for jx RequirementWebhook = "JX_REQUIREMENT_WEBHOOK" // RequirementStorageBackupEnabled if backup storage is required RequirementStorageBackupEnabled = "JX_REQUIREMENT_STORAGE_BACKUP_ENABLED" // RequirementStorageBackupURL backup storage url RequirementStorageBackupURL = "JX_REQUIREMENT_STORAGE_BACKUP_URL" // RequirementStorageLogsEnabled if log storage is required RequirementStorageLogsEnabled = "JX_REQUIREMENT_STORAGE_LOGS_ENABLED" // RequirementStorageLogsURL logs storage url RequirementStorageLogsURL = "JX_REQUIREMENT_STORAGE_LOGS_URL" // RequirementStorageReportsEnabled if report storage is required RequirementStorageReportsEnabled = "JX_REQUIREMENT_STORAGE_REPORTS_ENABLED" // RequirementStorageReportsURL report storage url RequirementStorageReportsURL = "JX_REQUIREMENT_STORAGE_REPORTS_URL" // RequirementStorageRepositoryEnabled if repository storage is required RequirementStorageRepositoryEnabled = "JX_REQUIREMENT_STORAGE_REPOSITORY_ENABLED" // RequirementStorageRepositoryURL repository storage url RequirementStorageRepositoryURL = "JX_REQUIREMENT_STORAGE_REPOSITORY_URL" // RequirementGkeProjectNumber is the gke project number RequirementGkeProjectNumber = "JX_REQUIREMENT_GKE_PROJECT_NUMBER" // RequirementGitAppEnabled if the github app should be used for access tokens RequirementGitAppEnabled = "JX_REQUIREMENT_GITHUB_APP_ENABLED" // RequirementGitAppURL contains the URL to the github app RequirementGitAppURL = "JX_REQUIREMENT_GITHUB_APP_URL" // RequirementDevEnvApprovers contains the optional list of users to populate the dev env's OWNERS with RequirementDevEnvApprovers = "JX_REQUIREMENT_DEV_ENV_APPROVERS" // RequirementVersionsGitRef contains the git ref of the version stream RequirementVersionsGitRef = "JX_REQUIREMENT_VERSIONS_GIT_REF" )
const ( // DefaultProfileFile location of profle config DefaultProfileFile = "profile.yaml" // OpenSourceProfile constant for OSS profile OpenSourceProfile = "oss" // CloudBeesProfile constant for CloudBees profile CloudBeesProfile = "cloudbees" )
const (
// BootDeployNamespace environment variable for deployment namespace
BootDeployNamespace = "DEPLOY_NAMESPACE"
)
const ( // DefaultFailOnValidationError by default fail if validation fails when reading jx-requirements DefaultFailOnValidationError = true )
Variables ¶
var ( // DefaultVersionsURL default version stream url DefaultVersionsURL = "https://github.com/jenkins-x/jenkins-x-versions.git" // DefaultVersionsRef default version stream ref DefaultVersionsRef = "master" // DefaultBootRepository default git repo for boot DefaultBootRepository = "https://github.com/jenkins-x/jenkins-x-boot-config.git" // LatestVersionStringsBucket optional bucket name to search in for latest version strings LatestVersionStringsBucket = "" // BinaryDownloadBaseURL the base URL for downloading the binary from - will always have "VERSION/jx-OS-ARCH.EXTENSION" appended to it when used BinaryDownloadBaseURL = "https://github.com/jenkins-x/jx/releases/download/v" // TLSDocURL the URL presented by `jx step verify preinstall` for documentation on configuring TLS TLSDocURL = "https://jenkins-x.io/docs/getting-started/setup/boot/#ingress" )
Overrideable at build time - see Makefile
var PhaseValues = []string{"system", "apps"}
PhaseValues the string values for Phases
var RepositoryTypeValues = []string{string(RepositoryTypeNone), string(RepositoryTypeBucketRepo), string(RepositoryTypeNexus), string(RepositoryTypeArtifactory)}
RepositoryTypeValues the string values for the repository types
var SecretStorageTypeValues = []string{string(SecretStorageTypeLocal), string(SecretStorageTypeVault)}
SecretStorageTypeValues the string values for the secret storage
var WebhookTypeValues = []string{string(WebhookTypeJenkins), string(WebhookTypeLighthouse), string(WebhookTypeProw)}
WebhookTypeValues the string values for the webhook types
Functions ¶
func MissingRequirement ¶
MissingRequirement returns an error if there is a missing property in the requirements
Types ¶
type Application ¶
type Application struct { // Name of the application / helm chart Name string `json:"name"` // Repository the helm repository Repository string `json:"repository"` // Namespace to install the application into Namespace string `json:"namespace,omitempty"` // Phase of the pipeline to install application Phase Phase `json:"phase,omitempty"` }
Application is an application to install during boot
func (*Application) DeepCopy ¶
func (in *Application) DeepCopy() *Application
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Application.
func (*Application) DeepCopyInto ¶
func (in *Application) DeepCopyInto(out *Application)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationConfig ¶
type ApplicationConfig struct { // Applications of applications Applications []Application `json:"applications"` // DefaultNamespace the default namespace to install applications into DefaultNamespace string `json:"defaultNamespace"` }
ApplicationConfig contains applications to install during boot
func LoadApplicationsConfig ¶
func LoadApplicationsConfig(dir string) (*ApplicationConfig, error)
LoadApplicationsConfig loads the boot applications configuration file if there is not a file called `jx-apps.yml` in the given dir we will scan up the parent directories looking for the requirements file as we often run 'jx' steps in sub directories.
func (*ApplicationConfig) DeepCopy ¶
func (in *ApplicationConfig) DeepCopy() *ApplicationConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationConfig.
func (*ApplicationConfig) DeepCopyInto ¶
func (in *ApplicationConfig) DeepCopyInto(out *ApplicationConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AutoUpdateConfig ¶
type AutoUpdateConfig struct { // Enabled autoupdate Enabled bool `json:"enabled"` // Schedule cron of auto updates Schedule string `json:"schedule"` }
AutoUpdateConfig contains auto update config
func (*AutoUpdateConfig) DeepCopy ¶
func (in *AutoUpdateConfig) DeepCopy() *AutoUpdateConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoUpdateConfig.
func (*AutoUpdateConfig) DeepCopyInto ¶
func (in *AutoUpdateConfig) DeepCopyInto(out *AutoUpdateConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AzureConfig ¶
type AzureConfig struct { // RegistrySubscription the registry subscription for defaulting the container registry. // Not used if you specify a Registry explicitly RegistrySubscription string `json:"registrySubscription,omitempty"` }
AzureConfig contains Azure specific requirements
func (*AzureConfig) DeepCopy ¶
func (in *AzureConfig) DeepCopy() *AzureConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureConfig.
func (*AzureConfig) DeepCopyInto ¶
func (in *AzureConfig) DeepCopyInto(out *AzureConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BuildPackConfig ¶
type BuildPackConfig struct { // Location contains location config BuildPackLibrary *BuildPackLibrary `json:"buildPackLibrary,omitempty"` }
BuildPackConfig contains build pack info
func (*BuildPackConfig) DeepCopy ¶
func (in *BuildPackConfig) DeepCopy() *BuildPackConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildPackConfig.
func (*BuildPackConfig) DeepCopyInto ¶
func (in *BuildPackConfig) DeepCopyInto(out *BuildPackConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BuildPackLibrary ¶
type BuildPackLibrary struct { // Name Name string `json:"name,omitempty"` // GitURL GitURL string `json:"gitURL,omitempty"` // GitRef GitRef string `json:"gitRef,omitempty"` }
BuildPackLibrary contains buildpack location
func (*BuildPackLibrary) DeepCopy ¶
func (in *BuildPackLibrary) DeepCopy() *BuildPackLibrary
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildPackLibrary.
func (*BuildPackLibrary) DeepCopyInto ¶
func (in *BuildPackLibrary) DeepCopyInto(out *BuildPackLibrary)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterConfig ¶
type ClusterConfig struct { // AzureConfig the azure specific configuration AzureConfig *AzureConfig `json:"azure,omitempty"` // ChartRepository the repository URL to deploy charts to ChartRepository string `json:"chartRepository,omitempty" envconfig:"JX_REQUIREMENT_CHART_REPOSITORY"` // GKEConfig the gke specific configuration GKEConfig *GKEConfig `json:"gke,omitempty"` // EnvironmentGitOwner the default git owner for environment repositories if none is specified explicitly EnvironmentGitOwner string `json:"environmentGitOwner,omitempty" envconfig:"JX_REQUIREMENT_ENV_GIT_OWNER"` // EnvironmentGitPublic determines whether jx boot create public or private git repos for the environments EnvironmentGitPublic bool `json:"environmentGitPublic,omitempty" envconfig:"JX_REQUIREMENT_ENV_GIT_PUBLIC"` // GitPublic determines whether jx boot create public or private git repos for the applications GitPublic bool `json:"gitPublic,omitempty" envconfig:"JX_REQUIREMENT_GIT_PUBLIC"` // Provider the kubernetes provider (e.g. gke) Provider string `json:"provider,omitempty"` // Namespace the namespace to install the dev environment Namespace string `json:"namespace,omitempty"` // ProjectID the cloud project ID e.g. on GCP ProjectID string `json:"project,omitempty" envconfig:"JX_REQUIREMENT_PROJECT"` // ClusterName the logical name of the cluster ClusterName string `json:"clusterName,omitempty" envconfig:"JX_REQUIREMENT_CLUSTER_NAME"` // VaultName the name of the vault if using vault for secrets // Deprecated VaultName string `json:"vaultName,omitempty"` // Region the cloud region being used Region string `json:"region,omitempty"` // Zone the cloud zone being used Zone string `json:"zone,omitempty" envconfig:"JX_REQUIREMENT_ZONE"` // GitName is the name of the default git service GitName string `json:"gitName,omitempty"` // GitKind is the kind of git server (github, bitbucketserver etc) GitKind string `json:"gitKind,omitempty"` // GitServer is the URL of the git server GitServer string `json:"gitServer,omitempty"` // ExternalDNSSAName the service account name for external dns ExternalDNSSAName string `json:"externalDNSSAName,omitempty" envconfig:"JX_REQUIREMENT_EXTERNALDNS_SA_NAME"` // Registry the host name of the container registry Registry string `json:"registry,omitempty" envconfig:"JX_REQUIREMENT_REGISTRY"` // VaultSAName the service account name for vault // Deprecated VaultSAName string `json:"vaultSAName,omitempty"` // KanikoSAName the service account name for kaniko KanikoSAName string `json:"kanikoSAName,omitempty" envconfig:"JX_REQUIREMENT_KANIKO_SA_NAME"` // HelmMajorVersion contains the major helm version number. Assumes helm 2.x with no tiller if no value specified HelmMajorVersion string `json:"helmMajorVersion,omitempty"` // DevEnvApprovers contains an optional list of approvers to populate the initial OWNERS file in the dev env repo DevEnvApprovers []string `json:"devEnvApprovers,omitempty"` // DockerRegistryOrg the default organisation used for container images DockerRegistryOrg string `json:"dockerRegistryOrg,omitempty"` // StrictPermissions lets you decide how to boot the cluster when it comes to permissions // If it's false, cluster wide permissions will be used, normal, namespaced permissions will be used otherwise // and extra steps will be necessary to get the cluster working StrictPermissions bool `json:"strictPermissions,omitempty"` }
ClusterConfig contains cluster specific requirements
func (*ClusterConfig) DeepCopy ¶
func (in *ClusterConfig) DeepCopy() *ClusterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfig.
func (*ClusterConfig) DeepCopyInto ¶
func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfig) UnmarshalJSON ¶
func (t *ClusterConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON method handles the rename of EnvironmentGitPrivate to EnvironmentGitPublic.
type EnvironmentConfig ¶
type EnvironmentConfig struct { // Key is the key of the environment configuration Key string `json:"key,omitempty"` // Owner is the git user or organisation for the repository Owner string `json:"owner,omitempty"` // Repository is the name of the repository within the owner Repository string `json:"repository,omitempty"` // GitServer is the URL of the git server GitServer string `json:"gitServer,omitempty"` // GitKind is the kind of git server (github, bitbucketserver etc) GitKind string `json:"gitKind,omitempty"` // Ingress contains ingress specific requirements Ingress IngressConfig `json:"ingress,omitempty"` // RemoteCluster specifies this environment runs on a remote cluster to the development cluster RemoteCluster bool `json:"remoteCluster,omitempty"` // PromotionStrategy what kind of promotion strategy to use PromotionStrategy v1.PromotionStrategyType `json:"promotionStrategy,omitempty"` // URLTemplate is the template to use for your environment's exposecontroller generated URLs URLTemplate string `json:"urlTemplate,omitempty"` }
EnvironmentConfig configures the organisation and repository name of the git repositories for environments
func (*EnvironmentConfig) DeepCopy ¶
func (in *EnvironmentConfig) DeepCopy() *EnvironmentConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentConfig.
func (*EnvironmentConfig) DeepCopyInto ¶
func (in *EnvironmentConfig) DeepCopyInto(out *EnvironmentConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GKEConfig ¶
type GKEConfig struct { // ProjectNumber the unique project number GKE assigns to a project (required for workload identity). ProjectNumber string `json:"projectNumber,omitempty" envconfig:"JX_REQUIREMENT_GKE_PROJECT_NUMBER"` }
GKEConfig contains GKE specific requirements
func (*GKEConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GKEConfig.
func (*GKEConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GithubAppConfig ¶
type GithubAppConfig struct { // Enabled this determines whether this install should use the jenkins x github app for access tokens Enabled bool `json:"enabled" envconfig:"JX_REQUIREMENT_GITHUB_APP_ENABLED"` // Schedule cron of the github app token refresher Schedule string `json:"schedule,omitempty"` // URL contains a URL to the github app URL string `json:"url,omitempty" envconfig:"JX_REQUIREMENT_GITHUB_APP_URL"` }
GithubAppConfig contains github app config
func (*GithubAppConfig) DeepCopy ¶
func (in *GithubAppConfig) DeepCopy() *GithubAppConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GithubAppConfig.
func (*GithubAppConfig) DeepCopyInto ¶
func (in *GithubAppConfig) DeepCopyInto(out *GithubAppConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressConfig ¶
type IngressConfig struct { // DNS is enabled ExternalDNS bool `json:"externalDNS"` // CloudDNSSecretName secret name which contains the service account for external-dns and cert-manager issuer to // access the Cloud DNS service to resolve a DNS challenge CloudDNSSecretName string `json:"cloud_dns_secret_name,omitempty"` // Domain to expose ingress endpoints Domain string `json:"domain"` // IgnoreLoadBalancer if the nginx-controller LoadBalancer service should not be used to detect and update the // domain if you are using a dynamic domain resolver like `.nip.io` rather than a real DNS configuration. // With this flag enabled the `Domain` value will be used and never re-created based on the current LoadBalancer IP address. IgnoreLoadBalancer bool `json:"ignoreLoadBalancer,omitempty"` // Exposer the exposer used to expose ingress endpoints. Defaults to "Ingress" Exposer string `json:"exposer,omitempty"` // NamespaceSubDomain the sub domain expression to expose ingress. Defaults to ".jx." NamespaceSubDomain string `json:"namespaceSubDomain"` // TLS enable automated TLS using certmanager TLS TLSConfig `json:"tls"` // DomainIssuerURL contains a URL used to retrieve a Domain DomainIssuerURL string `json:"domainIssuerURL,omitempty" envconfig:"JX_REQUIREMENT_DOMAIN_ISSUER_URL"` }
IngressConfig contains dns specific requirements
func (*IngressConfig) DeepCopy ¶
func (in *IngressConfig) DeepCopy() *IngressConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfig.
func (*IngressConfig) DeepCopyInto ¶
func (in *IngressConfig) DeepCopyInto(out *IngressConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngressConfig) IsAutoDNSDomain ¶
func (i *IngressConfig) IsAutoDNSDomain() bool
IsAutoDNSDomain returns true if the domain is configured to use an auto DNS sub domain like '.nip.io' or '.xip.io'
type JxInstallProfile ¶
type JxInstallProfile struct {
InstallType string
}
JxInstallProfile contains the jx profile info
func (*JxInstallProfile) DeepCopy ¶
func (in *JxInstallProfile) DeepCopy() *JxInstallProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JxInstallProfile.
func (*JxInstallProfile) DeepCopyInto ¶
func (in *JxInstallProfile) DeepCopyInto(out *JxInstallProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RepositoryType ¶
type RepositoryType string
RepositoryType is the type of a repository we use to store artifacts (jars, tarballs, npm packages etc)
const ( // RepositoryTypeUnknown if we have yet to configure a repository RepositoryTypeUnknown RepositoryType = "" // RepositoryTypeArtifactory if you wish to use Artifactory as the artifact repository RepositoryTypeArtifactory RepositoryType = "artifactory" // RepositoryTypeBucketRepo if you wish to use bucketrepo as the artifact repository. see https://github.com/jenkins-x/bucketrepo RepositoryTypeBucketRepo RepositoryType = "bucketrepo" // RepositoryTypeNone if you do not wish to install an artifact repository RepositoryTypeNone RepositoryType = "none" // RepositoryTypeNexus if you wish to use Sonatype Nexus as the artifact repository RepositoryTypeNexus RepositoryType = "nexus" )
type RequirementsConfig ¶
type RequirementsConfig struct { // AutoUpdate contains auto update config AutoUpdate AutoUpdateConfig `json:"autoUpdate,omitempty"` // BootConfigURL contains the url to which the dev environment is associated with BootConfigURL string `json:"bootConfigURL,omitempty"` // BuildPackConfig contains custom build pack settings BuildPacks *BuildPackConfig `json:"buildPacks,omitempty"` // Cluster contains cluster specific requirements Cluster ClusterConfig `json:"cluster"` // Environments the requirements for the environments Environments []EnvironmentConfig `json:"environments,omitempty"` // GithubApp contains github app config GithubApp *GithubAppConfig `json:"githubApp,omitempty"` // GitOps if enabled we will setup a webhook in the boot configuration git repository so that we can // re-run 'jx boot' when changes merge to the master branch GitOps bool `json:"gitops,omitempty"` // Indicates if we are using helmfile and helm 3 to spin up environments. This is currently an experimental // feature flag used to implement better Multi-Cluster support. See https://github.com/jenkins-x/jx/issues/6442 Helmfile bool `json:"helmfile,omitempty"` // Kaniko whether to enable kaniko for building docker images Kaniko bool `json:"kaniko,omitempty"` // Ingress contains ingress specific requirements Ingress IngressConfig `json:"ingress"` // PipelineUser the user name and email used for running pipelines PipelineUser *UserNameEmailConfig `json:"pipelineUser,omitempty"` // Repository specifies what kind of artifact repository you wish to use for storing artifacts (jars, tarballs, npm modules etc) Repository RepositoryType `json:"repository,omitempty" envconfig:"JX_REQUIREMENT_REPOSITORY"` // SecretStorage how should we store secrets for the cluster SecretStorage SecretStorageType `json:"secretStorage,omitempty" envconfig:"JX_REQUIREMENT_SECRET_STORAGE_TYPE"` // Storage contains storage requirements Storage StorageConfig `json:"storage"` // Terraform specifies if we are managing the kubernetes cluster and cloud resources with Terraform Terraform bool `json:"terraform,omitempty"` // Vault the configuration for vault Vault VaultConfig `json:"vault,omitempty"` // Velero the configuration for running velero for backing up the cluster resources Velero VeleroConfig `json:"velero,omitempty"` // VersionStream contains version stream info VersionStream VersionStreamConfig `json:"versionStream"` // Webhook specifies what engine we should use for webhooks Webhook WebhookType `json:"webhook,omitempty"` }
RequirementsConfig contains the logical installation requirements in the `jx-requirements.yml` file when installing, configuring or upgrading Jenkins X via `jx boot`
func GetRequirementsConfigFromTeamSettings ¶
func GetRequirementsConfigFromTeamSettings(settings *v1.TeamSettings) (*RequirementsConfig, error)
GetRequirementsConfigFromTeamSettings reads the BootRequirements string from TeamSettings and unmarshals it
func LoadRequirementsConfig ¶
func LoadRequirementsConfig(dir string, failOnValidationErrors bool) (*RequirementsConfig, string, error)
LoadRequirementsConfig loads the project configuration if there is a project configuration file if there is not a file called `jx-requirements.yml` in the given dir we will scan up the parent directories looking for the requirements file as we often run 'jx' steps in sub directories.
func LoadRequirementsConfigFile ¶
func LoadRequirementsConfigFile(fileName string, failOnValidationErrors bool) (*RequirementsConfig, error)
LoadRequirementsConfigFile loads a specific project YAML configuration file
func NewRequirementsConfig ¶
func NewRequirementsConfig() *RequirementsConfig
NewRequirementsConfig creates a default configuration file
func (*RequirementsConfig) DeepCopy ¶
func (in *RequirementsConfig) DeepCopy() *RequirementsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequirementsConfig.
func (*RequirementsConfig) DeepCopyInto ¶
func (in *RequirementsConfig) DeepCopyInto(out *RequirementsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RequirementsConfig) Environment ¶
func (c *RequirementsConfig) Environment(name string) (*EnvironmentConfig, error)
Environment looks up the environment configuration based on environment name
func (*RequirementsConfig) EnvironmentMap ¶
func (c *RequirementsConfig) EnvironmentMap() map[string]interface{}
EnvironmentMap creates a map of maps tree which can be used inside Go templates to access the environment configurations
func (*RequirementsConfig) IsCloudProvider ¶
func (c *RequirementsConfig) IsCloudProvider() bool
IsCloudProvider returns true if the kubenretes provider is a cloud
func (*RequirementsConfig) IsEmpty ¶
func (c *RequirementsConfig) IsEmpty() bool
IsEmpty returns true if this configuration is empty
func (*RequirementsConfig) IsLazyCreateSecrets ¶
func (c *RequirementsConfig) IsLazyCreateSecrets(flag string) (bool, error)
IsLazyCreateSecrets returns a boolean whether secrets should be lazily created
func (*RequirementsConfig) MergeSave ¶
func (c *RequirementsConfig) MergeSave(src *RequirementsConfig, requirementsFileName string) error
MergeSave attempts to merge the provided RequirementsConfig with the caller's data. It does so overriding values in the source struct with non-zero values from the provided struct it defines non-zero per property and not for a while embedded struct, meaning that nested properties in embedded structs should also be merged correctly. if a slice is added a transformer will be needed to handle correctly merging the contained values
func (*RequirementsConfig) OverrideRequirementsFromEnvironment ¶
func (c *RequirementsConfig) OverrideRequirementsFromEnvironment(gkeProjectNumber func(projectId string) (string, error))
OverrideRequirementsFromEnvironment allows properties to be overridden with environment variables
func (*RequirementsConfig) SaveConfig ¶
func (c *RequirementsConfig) SaveConfig(fileName string) error
SaveConfig saves the configuration file to the given project directory
func (*RequirementsConfig) ToMap ¶
func (c *RequirementsConfig) ToMap() (map[string]interface{}, error)
ToMap converts this object to a map of maps for use in helm templating
type RequirementsValues ¶
type RequirementsValues struct { // RequirementsConfig contains the logical installation requirements RequirementsConfig *RequirementsConfig `json:"jxRequirements,omitempty"` }
RequirementsValues contains the logical installation requirements in the `jx-requirements.yml` file as helm values
func (*RequirementsValues) DeepCopy ¶
func (in *RequirementsValues) DeepCopy() *RequirementsValues
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequirementsValues.
func (*RequirementsValues) DeepCopyInto ¶
func (in *RequirementsValues) DeepCopyInto(out *RequirementsValues)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretStorageType ¶
type SecretStorageType string
SecretStorageType is the type of storage used for secrets
const ( // SecretStorageTypeVault specifies that we use vault to store secrets SecretStorageTypeVault SecretStorageType = "vault" // SecretStorageTypeLocal specifies that we use the local file system in // `~/.jx/localSecrets` to store secrets SecretStorageTypeLocal SecretStorageType = "local" )
type StorageConfig ¶
type StorageConfig struct { // Logs for storing build logs Logs StorageEntryConfig `json:"logs"` // Tests for storing test results, coverage + code quality reports Reports StorageEntryConfig `json:"reports"` // Repository for storing repository artifacts Repository StorageEntryConfig `json:"repository"` // Backup for backing up kubernetes resource Backup StorageEntryConfig `json:"backup"` }
StorageConfig contains dns specific requirements
func (*StorageConfig) DeepCopy ¶
func (in *StorageConfig) DeepCopy() *StorageConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageConfig.
func (*StorageConfig) DeepCopyInto ¶
func (in *StorageConfig) DeepCopyInto(out *StorageConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageEntryConfig ¶
type StorageEntryConfig struct { // Enabled if the storage is enabled Enabled bool `json:"enabled"` // URL the cloud storage bucket URL such as 'gs://mybucket' or 's3://foo' or `azblob://thingy' // see https://jenkins-x.io/architecture/storage/ URL string `json:"url"` }
StorageEntryConfig contains dns specific requirements for a kind of storage
func (*StorageEntryConfig) DeepCopy ¶
func (in *StorageEntryConfig) DeepCopy() *StorageEntryConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageEntryConfig.
func (*StorageEntryConfig) DeepCopyInto ¶
func (in *StorageEntryConfig) DeepCopyInto(out *StorageEntryConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶
type TLSConfig struct { // TLS enabled Enabled bool `json:"enabled"` // Email address to register with services like LetsEncrypt Email string `json:"email"` // Production false uses self-signed certificates from the LetsEncrypt staging server, true enables the production // server which incurs higher rate limiting https://letsencrypt.org/docs/rate-limits/ Production bool `json:"production"` // SecretName the name of the secret which contains the TLS certificate SecretName string `json:"secretName,omitempty"` }
TLSConfig contains TLS specific requirements
func (*TLSConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserNameEmailConfig ¶ added in v0.0.17
type UserNameEmailConfig struct { // Username the username of the user Username string `json:"username,omitempty"` // Email the email address of the user Email string `json:"email,omitempty"` }
UserNameEmailConfig contains the user name and email of a user (e.g. pipeline user)
func (*UserNameEmailConfig) DeepCopy ¶ added in v0.0.17
func (in *UserNameEmailConfig) DeepCopy() *UserNameEmailConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserNameEmailConfig.
func (*UserNameEmailConfig) DeepCopyInto ¶ added in v0.0.17
func (in *UserNameEmailConfig) DeepCopyInto(out *UserNameEmailConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAWSConfig ¶
type VaultAWSConfig struct { VaultAWSUnsealConfig AutoCreate bool `json:"autoCreate,omitempty"` DynamoDBTable string `json:"dynamoDBTable,omitempty"` DynamoDBRegion string `json:"dynamoDBRegion,omitempty"` ProvidedIAMUsername string `json:"iamUserName,omitempty"` }
VaultAWSConfig contains all the Vault configuration needed by Vault to be deployed in AWS
func (*VaultAWSConfig) DeepCopy ¶
func (in *VaultAWSConfig) DeepCopy() *VaultAWSConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAWSConfig.
func (*VaultAWSConfig) DeepCopyInto ¶
func (in *VaultAWSConfig) DeepCopyInto(out *VaultAWSConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAWSUnsealConfig ¶
type VaultAWSUnsealConfig struct { KMSKeyID string `json:"kmsKeyId,omitempty"` KMSRegion string `json:"kmsRegion,omitempty"` S3Bucket string `json:"s3Bucket,omitempty"` S3Prefix string `json:"s3Prefix,omitempty"` S3Region string `json:"s3Region,omitempty"` }
VaultAWSUnsealConfig contains references to existing AWS resources that can be used to install Vault
func (*VaultAWSUnsealConfig) DeepCopy ¶
func (in *VaultAWSUnsealConfig) DeepCopy() *VaultAWSUnsealConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAWSUnsealConfig.
func (*VaultAWSUnsealConfig) DeepCopyInto ¶
func (in *VaultAWSUnsealConfig) DeepCopyInto(out *VaultAWSUnsealConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAzureConfig ¶ added in v0.0.18
type VaultAzureConfig struct { TenantID string `json:"tenantId,omitempty"` VaultName string `json:"vaultName,omitempty"` KeyName string `json:"keyName,omitempty"` StorageAccountName string `json:"storageAccountName,omitempty"` ContainerName string `json:"containerName,omitempty"` }
VaultAzureConfig contains all the Vault configuration needed by Vault to be deployed in Azure
func (*VaultAzureConfig) DeepCopy ¶ added in v0.0.18
func (in *VaultAzureConfig) DeepCopy() *VaultAzureConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAzureConfig.
func (*VaultAzureConfig) DeepCopyInto ¶ added in v0.0.18
func (in *VaultAzureConfig) DeepCopyInto(out *VaultAzureConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultConfig ¶
type VaultConfig struct { // Name the name of the Vault if using Jenkins X managed Vault instance. // Cannot be used in conjunction with the URL attribute Name string `json:"name,omitempty"` Bucket string `json:"bucket,omitempty" envconfig:"JX_REQUIREMENT_VAULT_BUCKET_NAME"` RecreateBucket bool `json:"recreateBucket,omitempty"` Keyring string `json:"keyring,omitempty" envconfig:"JX_REQUIREMENT_VAULT_KEYRING_NAME"` Key string `json:"key,omitempty" envconfig:"JX_REQUIREMENT_VAULT_KEY_NAME"` // DisableURLDiscovery allows us to optionally override the default lookup of the Vault URL, could be incluster service or external ingress DisableURLDiscovery bool `json:"disableURLDiscovery,omitempty"` // AWSConfig describes the AWS specific configuration needed for the Vault Operator. AWSConfig *VaultAWSConfig `json:"aws,omitempty"` // AzureConfig describes the Azure specific configuration needed for the Vault Operator. AzureConfig *VaultAzureConfig `json:"azure,omitempty"` // URL specifies the URL of an Vault instance to use for secret storage. // Needs to be specified together with the Service Account and namespace to use for connecting to Vault. // This cannot be used in conjunction with the Name attribute. URL string `json:"url,omitempty"` // ServiceAccount is the name of the Kubernetes service account allowed to authenticate against Vault. ServiceAccount string `json:"serviceAccount,omitempty" envconfig:"JX_REQUIREMENT_VAULT_SA_NAME"` // Namespace of the Kubernetes service account allowed to authenticate against Vault. Namespace string `json:"namespace,omitempty"` // SecretEngineMountPoint is the secret engine mount point to be used for writing data into the KV engine of Vault. // If not specified the 'secret' is used. SecretEngineMountPoint string `json:"secretEngineMountPoint,omitempty"` // KubernetesAuthPath is the auth path of used for this cluster // If not specified the 'kubernetes' is used. KubernetesAuthPath string `json:"kubernetesAuthPath,omitempty"` }
VaultConfig contains Vault configuration for Boot
func (*VaultConfig) DeepCopy ¶
func (in *VaultConfig) DeepCopy() *VaultConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultConfig.
func (*VaultConfig) DeepCopyInto ¶
func (in *VaultConfig) DeepCopyInto(out *VaultConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VeleroConfig ¶
type VeleroConfig struct { // Namespace the namespace to install velero into Namespace string `json:"namespace,omitempty"` // ServiceAccount the cloud service account used to run velero ServiceAccount string `json:"serviceAccount,omitempty" envconfig:"JX_REQUIREMENT_VELERO_SA_NAME"` // Schedule of backups Schedule string `json:"schedule" envconfig:"JX_REQUIREMENT_VELERO_SCHEDULE"` // TimeToLive period for backups to be retained TimeToLive string `json:"ttl" envconfig:"JX_REQUIREMENT_VELERO_TTL"` }
VeleroConfig contains the configuration for velero
func (*VeleroConfig) DeepCopy ¶
func (in *VeleroConfig) DeepCopy() *VeleroConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VeleroConfig.
func (*VeleroConfig) DeepCopyInto ¶
func (in *VeleroConfig) DeepCopyInto(out *VeleroConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VersionStreamConfig ¶
type VersionStreamConfig struct { // URL of the version stream to use URL string `json:"url"` // Ref of the version stream to use Ref string `json:"ref" envconfig:"JX_REQUIREMENT_VERSIONS_GIT_REF"` }
VersionStreamConfig contains version stream config
func (*VersionStreamConfig) DeepCopy ¶
func (in *VersionStreamConfig) DeepCopy() *VersionStreamConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionStreamConfig.
func (*VersionStreamConfig) DeepCopyInto ¶
func (in *VersionStreamConfig) DeepCopyInto(out *VersionStreamConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebhookType ¶
type WebhookType string
WebhookType is the type of a webhook strategy
const ( // WebhookTypeNone if we have yet to define a webhook WebhookTypeNone WebhookType = "" // WebhookTypeProw specifies that we use prow for webhooks // see: https://github.com/kubernetes/test-infra/tree/master/prow WebhookTypeProw WebhookType = "prow" // WebhookTypeLighthouse specifies that we use lighthouse for webhooks // see: https://github.com/jenkins-x/lighthouse WebhookTypeLighthouse WebhookType = "lighthouse" // WebhookTypeJenkins specifies that we use jenkins webhooks WebhookTypeJenkins WebhookType = "jenkins" )