v1alpha1

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package +k8s:openapi-gen=true Package v1alpha1 is the v1alpha1 version of the API. +groupName=gitops.jenkins-x.io

Index

Constants

View Source
const (
	// APIVersion the api version
	APIVersion = "gitops.jenkins-x.io/v1alpha1"

	// KindSecretMapping the kind
	KindSecretMapping = "SecretMapping"

	// KindSourceConfig the kind
	KindSourceConfig = "SourceConfig"
)
View Source
const (
	// KptStragegyFileName default name of the kpt strategy file
	KptStragegyFileName = "kpt-strategy.yaml"
)
View Source
const (
	// PipelineCatalogFileName default name of the kpt strategy file
	PipelineCatalogFileName = "pipeline-catalog.yaml"
)
View Source
const (
	// QuickstartsFileName default name of the source repository configuration
	QuickstartsFileName = "quickstarts.yaml"
)
View Source
const (
	// SecretMappingFileName default name of the secret mappings file
	SecretMappingFileName = "secret-mappings.yaml"
)
View Source
const (
	// SourceConfigFileName default name of the source repository configuration
	SourceConfigFileName = "source-config.yaml"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BackendType

type BackendType string

BackendType describes a secrets backend

const (
	// BackendTypeVault Vault is the Backed service
	BackendTypeVault BackendType = "vault"
	// BackendTypeGSM Google Secrets Manager is the Backed service
	BackendTypeGSM BackendType = "gcpSecretsManager"
	// BackendTypeNone if none is configured
	BackendTypeNone BackendType = ""
)

type Defaults

type Defaults struct {
	// DefaultBackendType the default back end to use if there's no specific mapping
	BackendType BackendType `json:"backendType,omitempty" validate:"nonzero"`
	// GcpSecretsManager config
	GcpSecretsManager GcpSecretsManager `json:"gcpSecretsManager,omitempty"`
}

Defaults contains default mapping configuration for any Kubernetes secrets to External Secrets

type GcpSecretsManager

type GcpSecretsManager struct {
	// Version of the referenced secret
	Version string `json:"version,omitempty"`
	// ProjectId for the secret, defaults to the current GCP project
	ProjectId string `json:"projectId,omitempty"`
	// UniquePrefix needs to be a unique prefix in the GCP project where the secret resides, defaults to cluster name
	UniquePrefix string `json:"uniquePrefix,omitempty"`
}

GcpSecretsManager the predicates which must be true to invoke the associated tasks/pipelines

type JenkinsServer

type JenkinsServer struct {
	// Server the name of the Jenkins Server to use
	Server string `json:"server,omitempty"`

	// FolderTemplate the default template file to use to generate the folder job DSL script
	FolderTemplate string `json:"folderTemplate,omitempty"`

	// JobTemplate the default template file to use to generate the projects job DSL script
	JobTemplate string `json:"jobTemplate,omitempty"`

	// Groups the groups of source repositories
	Groups []RepositoryGroup `json:"groups,omitempty"`
}

JenkinsServer the Jenkins server configuration

type KptStrategies

type KptStrategies struct {
	// KptStrategyConfig contains a collection of merge strategies Jenkins X will use when performing kpt updates
	KptStrategyConfig []KptStrategyConfig `json:"config" validate:"nonzero"`
}

KptStrategies contains a collection of merge strategies Jenkins X will use when performing kpt updates

+k8s:openapi-gen=true

func (*KptStrategies) Validate

func (c *KptStrategies) Validate() error

validate the secrete mapping fields

type KptStrategyConfig

type KptStrategyConfig struct {
	// RelativePath the relative path to the folder the strategy should apply to
	RelativePath string `json:"relativePath" validate:"nonzero"`
	// Strategy is the merge strategy kpt will use see https://googlecontainertools.github.io/kpt/reference/pkg/update/#flags
	Strategy string `json:"strategy" validate:"nonzero"`
}

KptStrategyConfig used by jx gitops upgrade kpt

type Mapping

type Mapping struct {
	// Name the secret entry name which maps to the Key of the Secret.Data map
	Name string `json:"name,omitempty"`

	// Key the Vault key to load the secret value
	// +optional
	Key string `json:"key,omitempty"`

	// Property the Vault property on the key to load the secret value
	// +optional
	Property string `json:"property,omitempty"`
}

Mapping the predicates which must be true to invoke the associated tasks/pipelines

type PipelineCatalog

type PipelineCatalog struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata"`

	// Spec holds the desired state of the PipelineCatalog from the client
	// +optional
	Spec PipelineCatalogSpec `json:"spec"`
}

PipelineCatalog represents a collection quickstart project

+k8s:openapi-gen=true

type PipelineCatalogList

type PipelineCatalogList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PipelineCatalog `json:"items"`
}

PipelineCatalogList contains a list of Repositories

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type PipelineCatalogSource

type PipelineCatalogSource struct {
	ID     string `json:"id,omitempty" protobuf:"bytes,1,opt,name=id"`
	Label  string `json:"label,omitempty" protobuf:"bytes,2,opt,name=label"`
	GitURL string `json:"gitUrl,omitempty" protobuf:"bytes,3,opt,name=gitUrl"`
	GitRef string `json:"gitRef,omitempty" protobuf:"bytes,4,opt,name=gitRef"`
}

PipelineCatalogSource the source of a pipeline catalog

type PipelineCatalogSpec

type PipelineCatalogSpec struct {
	// Repositories the repositories containing pipeline catalogs
	Repositories []PipelineCatalogSource `json:"repositories,omitempty"`
}

PipelineCatalogSpec defines the desired state of PipelineCatalog.

type QuickstartImport

type QuickstartImport struct {
	// File file name relative to the root directory to load
	File     string   `json:"file,omitempty"`
	Include  []string `json:"includes,omitempty"`
	Excludes []string `json:"excludes,omitempty"`
}

QuickstartImport imports quickstats from another folder (such as from the shared version stream)

func (*QuickstartImport) Matcher

func (i *QuickstartImport) Matcher() (func(source *QuickstartSource) bool, error)

Matcher returns a matcher for the given import

type QuickstartSource

type QuickstartSource struct {
	ID             string
	Owner          string
	Name           string
	Version        string
	Language       string
	Framework      string
	Tags           []string
	DownloadZipURL string
	GitServer      string
	GitKind        string
}

QuickstartSource the source of a quickstart

type Quickstarts

type Quickstarts struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata"`

	// Spec holds the specified quicksatrt configuration
	// +optional
	Spec QuickstartsSpec `json:"spec"`
}

Quickstarts represents a collection quickstart project

+k8s:openapi-gen=true

type QuickstartsList

type QuickstartsList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Quickstarts `json:"items"`
}

QuickstartsList contains a list of Quickstarts

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type QuickstartsSpec

type QuickstartsSpec struct {
	// Quickstarts custom quickstarts to include
	Quickstarts []QuickstartSource `json:"quickstarts,omitempty"`

	// DefaultOwner the default owner if not specfied
	DefaultOwner string `json:"defaultOwner,omitempty"`

	// Imports import quickstarts from the version stream
	Imports []QuickstartImport `json:"imports,omitempty"`
}

QuickstartsSpec defines the desired state of Quickstarts.

func (*QuickstartsSpec) DefaultValues

func (qs *QuickstartsSpec) DefaultValues(q *QuickstartSource)

DefaultValues defaults any missing values

func (*QuickstartsSpec) LoadImports

func (qs *QuickstartsSpec) LoadImports(i *QuickstartImport, matcher func(source *QuickstartSource) bool, dir string) ([]QuickstartSource, error)

LoadImports loads the imported quickstarts

type Repository

type Repository struct {
	// Name the name of the repository
	Name string `json:"name,omitempty" validate:"nonzero"`

	// Scheduler the optional name of the scheduler to use if different to the group
	Scheduler string `json:"scheduler,omitempty"`

	// JenkinsJobTemplate the template file to use to generate the projects job DSL script
	JenkinsJobTemplate string `json:"jenkinsJobTemplate,omitempty"`

	// Description the optional description of this repository
	Description string `json:"description,omitempty"`

	// URL the URL to access this repository
	URL string `json:"url,omitempty"`

	// HTTPCloneURL the HTTP/HTTPS based clone URL
	HTTPCloneURL string `json:"httpCloneURL,omitempty"`

	// SSHCloneURL the SSH based clone URL
	SSHCloneURL string `json:"sshCloneURL,omitempty"`
}

Repository the name of the repository to import and the optional scheduler

type RepositoryGroup

type RepositoryGroup struct {
	// Provider the git provider server URL
	Provider string `json:"provider,omitempty"`

	// ProviderKind the git provider kind
	ProviderKind string `json:"providerKind,omitempty"`

	// ProviderName the git provider name
	ProviderName string `json:"providerName,omitempty"`

	// Owner the name of the organisation/owner/project/user that owns the repository
	Owner string `json:"owner,omitempty" validate:"nonzero"`

	// Repositories the repositories for the
	Repositories []Repository `json:"repositories,omitempty"`

	// Scheduler the default scheduler for this group
	Scheduler string `json:"scheduler,omitempty"`

	// JenkinsFolderTemplate the default template file to use to generate the folder job DSL script
	JenkinsFolderTemplate string `json:"jenkinsFolderTemplate,omitempty"`

	// JenkinsJobTemplate the default job template file to use to generate the projects job DSL script
	JenkinsJobTemplate string `json:"jenkinsJobTemplate,omitempty"`
}

SourceConfigSpec defines the desired state of SourceConfig.

type SecretMapping

type SecretMapping struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata"`

	// Spec holds the desired state of the SecretMapping from the client
	// +optional
	Spec SecretMappingSpec `json:"spec"`
}

SecretMapping represents a collection of mappings of Secrets to destinations in the underlying secret store (e.g. Vault keys)

+k8s:openapi-gen=true

func (*SecretMapping) Find

func (c *SecretMapping) Find(secretName string, dataKey string) *Mapping

Find finds a secret rule for the given secret name

func (*SecretMapping) FindRule

func (c *SecretMapping) FindRule(namespace string, secretName string) SecretRule

FindRule finds a secret rule for the given secret name

func (*SecretMapping) FindSecret

func (c *SecretMapping) FindSecret(secretName string) *SecretRule

Find finds a secret rule for the given secret name

func (*SecretMapping) SaveConfig

func (c *SecretMapping) SaveConfig(fileName string) error

SaveConfig saves the configuration file to the given project directory

func (*SecretMapping) Validate

func (c *SecretMapping) Validate() error

validate the secrete mapping fields

type SecretMappingList

type SecretMappingList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SecretMapping `json:"items"`
}

SecretMappingList contains a list of SecretMapping

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type SecretMappingSpec

type SecretMappingSpec struct {
	// Secrets rules for each secret
	Secrets []SecretRule `json:"secrets,omitempty"`

	Defaults `json:"defaults,omitempty" validate:"nonzero"`
}

SecretMappingSpec defines the desired state of SecretMapping.

type SecretRule

type SecretRule struct {
	// Name name of the secret
	Name string `json:"name,omitempty"`
	// Namespace name of the secret
	Namespace string `json:"namespace,omitempty"`
	// BackendType for the secret
	BackendType BackendType `json:"backendType"`
	// Mappings one more mappings
	Mappings []Mapping `json:"mappings,omitempty"`
	// Mandatory marks this secret as being mandatory
	Mandatory bool `json:"mandatory,omitempty"`
	// GcpSecretsManager config
	GcpSecretsManager GcpSecretsManager `json:"gcpSecretsManager,omitempty"`
}

SecretRule the rules for a specific Secret

func (*SecretRule) Find

func (r *SecretRule) Find(dataKey string) *Mapping

Find finds a mapping for the given data name

type SourceConfig

type SourceConfig struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata"`

	// Spec holds the desired state of the SourceConfig from the client
	// +optional
	Spec SourceConfigSpec `json:"spec"`
}

SourceConfig represents a collection source repostory groups and repositories

+k8s:openapi-gen=true

type SourceConfigList

type SourceConfigList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SourceConfig `json:"items"`
}

SourceConfigList contains a list of SourceConfig

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type SourceConfigSpec

type SourceConfigSpec struct {
	// Groups the groups of source repositories
	Groups []RepositoryGroup `json:"groups,omitempty"`

	// Scheduler the default scheduler for any group/repository which does not specify one
	Scheduler string `json:"scheduler,omitempty"`

	// JenkinsServers the jenkins servers configured for this repository
	JenkinsServers []JenkinsServer `json:"jenkinsServers,omitempty"`

	// JenkinsFolderTemplate the default template file to use to generate the folder job DSL script
	JenkinsFolderTemplate string `json:"jenkinsFolderTemplate,omitempty"`

	// JenkinsJobTemplate the default template file to use to generate the projects job DSL script
	JenkinsJobTemplate string `json:"jenkinsJobTemplate,omitempty"`
}

SourceConfigSpec defines the desired state of SourceConfig.

Jump to

Keyboard shortcuts

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