config

package
v0.0.0-...-7d92a45 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1beta1 is a version of the API. +groupName=config.testmachinery.gardener.cloud

Package v1beta1 is the v1beta1 version of the API. +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +groupName=config.testmachinery.gardener.cloud

Index

Constants

View Source
const (
	// ArgoChartName is the name of the chart to bootstrap argo
	ArgoChartName = "argo"

	// ArgoManagedResourceName is the name of the managed resource deployment
	ArgoManagedResourceName = "argo"

	// ArgoUIImageName is the name of the argo ui image in the image vector
	ArgoUIImageName = "argo-server"

	// ArgoWorkflowControllerImageName is the name of the argo workflow controller image in the image vector
	ArgoWorkflowControllerImageName = "argo-workflow-controller"

	// ArgoExecutorImageName is the name of the argo executor image in the image vector
	ArgoExecutorImageName = "argo-executor"

	// ArgoUIIngressName is the name of the argo ui ingress resource deployed to the cluster
	ArgoUIIngressName = "argo-server"

	// ArgoWorkflowControllerDeploymentName is the name workflow controller deployment
	ArgoWorkflowControllerDeploymentName = "workflow-controller"
)

Argo constants

View Source
const (
	// MinioChartName is the name of the chart to bootstrap minio
	MinioChartName = "minio"

	// MinioManagedResourceName is the name of the managed resource deployment
	MinioManagedResourceName = "minio"

	// MinioImageName is the name of the minio image in the image vector
	MinioImageName = "minio"

	// MinioDeploymentName is the name of the minio deployment or statefulset in the cluster
	MinioDeploymentName = "minio"

	// MinioServiceName is the name of the minio service in the cluster
	MinioServiceName = "minio"

	// MinioServicePort is the port of the minio service in the cluster
	MinioServicePort = 9000
)

Minio constants

View Source
const (
	// LoggingChartName is the name of the chart to bootstrap logging
	LoggingChartName = "logging"

	// LoggingManagedResourceName is the name of the managed resource deployment
	LoggingManagedResourceName = "logging"

	// LokiImageName is the name of the loki image in the image vector
	LokiImageName = "loki"

	// PromtailImageName is the name of the promtail image in the image vector
	PromtailImageName = "promtail"
)

Logging constants

View Source
const (
	// ReserveExcessCapacityChartName is the name of the chart to deploy reserved excess capacity pods
	ReserveExcessCapacityChartName = "reserve-excess-capacity"

	// ReserveExcessCapacityManagedResourceName is the name of the managed resource for reserved excess capicity pods
	ReserveExcessCapacityManagedResourceName = "reserve-excess-capacity"

	// ReserveExcessCapacityImageName is the name of the image for reserved excess capicity
	ReserveExcessCapacityImageName = "reserve-excess-capacity"
)

Reserve excess capacity

View Source
const GitHubSecretKeyName = "config.yaml" // #nosec G101 -- No credential.

GitHubSecretKeyName is the name of the secret key that contains the github secrets

View Source
const GroupName = "config.testmachinery.gardener.cloud"

GroupName is the name of the Garden API group.

View Source
const S3SecretName = "s3-secret"

S3SecretName is the name of the secret containing the s3 credentials

Variables

View Source
var (
	SchemeBuilder runtime.SchemeBuilder

	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var ChartsPath = filepath.Join("charts", "internal")

ChartsPath is the path to the charts

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func RegisterDefaults

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type BotConfiguration

type BotConfiguration struct {
	metav1.TypeMeta `json:",inline"`
	Webserver       Webserver `json:"webserver"`
	Dashboard       Dashboard `json:"dashboard"`
	GitHubBot       GitHubBot `json:"githubBot"`
}

Configuration contains the testmachinery configuration values

func (*BotConfiguration) DeepCopy

func (in *BotConfiguration) DeepCopy() *BotConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BotConfiguration.

func (*BotConfiguration) DeepCopyInto

func (in *BotConfiguration) DeepCopyInto(out *BotConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BotConfiguration) DeepCopyObject

func (in *BotConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Certificate

type Certificate struct {
	// Cert specifies the path to the certificate file
	Cert string `json:"cert"`

	// PrivateKey specifies the path to the private key file
	PrivateKey string `json:"privateKey"`
}

Certificate holds the certificate and its the private key

func (*Certificate) DeepCopy

func (in *Certificate) DeepCopy() *Certificate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate.

func (*Certificate) DeepCopyInto

func (in *Certificate) DeepCopyInto(out *Certificate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Configuration

type Configuration struct {
	metav1.TypeMeta      `json:",inline"`
	Controller           Controller     `json:"controller"`
	TestMachinery        TestMachinery  `json:"testmachinery"`
	GitHub               GitHub         `json:"github,omitempty"`
	S3                   *S3            `json:"s3Configuration,omitempty"`
	ElasticSearch        *ElasticSearch `json:"esConfiguration,omitempty"`
	ImagePullSecretNames []string       `json:"imagePullSecretNames,omitempty"`
}

Configuration contains the testmachinery configuration values

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Configuration) DeepCopyObject

func (in *Configuration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Controller

type Controller struct {
	// HealthAddr is the address of the healtcheck endpoint.
	HealthAddr string `json:"healthAddr,omitempty"`

	// MetricsAddr is the address of the metrics endpoint.
	MetricsAddr string `json:"metricsAddr,omitempty"`

	// EnableLeaderElection enables leader election for the controller.
	EnableLeaderElection bool `json:"enableLeaderElection,omitempty"`

	// MaxConcurrentSyncs is the max concurrent reconciles the controller does.
	MaxConcurrentSyncs int `json:"maxConcurrentSyncs,omitempty"`

	// TTLController contains the ttl controller configuration.
	TTLController TTLController `json:"ttlController,omitempty"`

	// WebhookConfig holds the validating webhook configuration.
	WebhookConfig WebhookConfig `json:"webhook,omitempty"`

	// DependencyHealthCheck specifies a deployment whose health is relevant for the controller.
	DependencyHealthCheck HealthCheckTarget `json:"dependencyHealthCheck,omitempty"`
}

Controller holds information about the testmachinery controller

func (*Controller) DeepCopy

func (in *Controller) DeepCopy() *Controller

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Controller.

func (*Controller) DeepCopyInto

func (in *Controller) DeepCopyInto(out *Controller)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dashboard

type Dashboard struct {
	// UIBasePath specifies the base path for static files and templates
	UIBasePath string `json:"UIBasePath"`

	// Authentication to restrict access to specific parts in the dashboard
	Authentication DashboardAuthentication `json:"authentication"`
}

Dashboard contains configuration values for the TestMachinery Dashboard

func (*Dashboard) DeepCopy

func (in *Dashboard) DeepCopy() *Dashboard

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dashboard.

func (*Dashboard) DeepCopyInto

func (in *Dashboard) DeepCopyInto(out *Dashboard)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DashboardAuthentication

type DashboardAuthentication struct {
	// Provider defines the authentication provider that should be used to authenticate and authorize users
	// to view testruns.
	Provider DashboardAuthenticationProvider `json:"provider"`

	// CookieSecret is the secret for the cookie store
	// +optional
	CookieSecret string `json:"cookieSecret"`

	// GitHub holds the GitHub provider specific configuration
	// +optional
	GitHub *GitHubAuthentication `json:"githubConfig"`
}

DashboardAuthentication to restrict access to specific parts in the dashboard

func (*DashboardAuthentication) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardAuthentication.

func (*DashboardAuthentication) DeepCopyInto

func (in *DashboardAuthentication) DeepCopyInto(out *DashboardAuthentication)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DashboardAuthenticationProvider

type DashboardAuthenticationProvider string

DashboardAuthenticationProvider is a enum to specify a dashboard authentication method

const (
	GitHubAuthProvider DashboardAuthenticationProvider = "github"
	NoAuthProvider     DashboardAuthenticationProvider = "noauth"
	DummyAuthProvider  DashboardAuthenticationProvider = "dummy"
)

type ElasticSearch

type ElasticSearch struct {
	Endpoint string `json:"endpoint,omitempty"`
	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`
}

ElasticSearch holds information about the elastic instance to write data to.

func (*ElasticSearch) DeepCopy

func (in *ElasticSearch) DeepCopy() *ElasticSearch

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearch.

func (*ElasticSearch) DeepCopyInto

func (in *ElasticSearch) DeepCopyInto(out *ElasticSearch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHub

type GitHub struct {
	Cache *GitHubCache `json:"cache,omitempty"`

	// SecretsPath is the path to the github secrets file
	SecretsPath string `json:"secretsPath,omitempty"`
}

GitHub holds all github related information needed in the testmachinery.

func (*GitHub) DeepCopy

func (in *GitHub) DeepCopy() *GitHub

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHub.

func (*GitHub) DeepCopyInto

func (in *GitHub) DeepCopyInto(out *GitHub)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubAuthentication

type GitHubAuthentication struct {
	// OAuth GitHub configuration that is used to protect parts of the dashboard
	// +optional
	OAuth *OAuth `json:"oAuth"`

	// Organization is the GitHub organization to restrict access to the bot
	// +optional
	Organization string `json:"organization"`

	// Hostname points to the GitHub instance used for the authentication flow
	// +optional
	Hostname string `json:"hostname"`
}

func (*GitHubAuthentication) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubAuthentication.

func (*GitHubAuthentication) DeepCopyInto

func (in *GitHubAuthentication) DeepCopyInto(out *GitHubAuthentication)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubBot

type GitHubBot struct {
	// Enabled defines if the GitHub Bot integration should be enabled
	Enabled bool `json:"enabled"`

	// ConfigurationFilePath specifies the path to the configuration inside a repository that is watched by the bot
	ConfigurationFilePath string `json:"configurationFilePath"`

	// DefaultTeam is the slug name of the default team to grant permissions to perform bot commands
	DefaultTeam string `json:"defaultTeam"`

	// ApiUrl specifies the github api endpoint
	ApiUrl string `json:"apiUrl"`

	// AppID holds the ID of the GitHub App.
	AppID int64 `json:"appId"`

	// AppPrivateKeyPath is the path to the private key for the GitHub app.
	AppPrivateKeyPath string `json:"appPrivateKeyPath"`

	// GitHub webhook secret to verify payload
	WebhookSecret string `json:"webhookSecret"`

	// GitHubCache configures the cache for the github api
	GitHubCache GitHubCache `json:"cache"`
}

GitHubBot contains the configuration for the github integration

func (*GitHubBot) DeepCopy

func (in *GitHubBot) DeepCopy() *GitHubBot

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubBot.

func (*GitHubBot) DeepCopyInto

func (in *GitHubBot) DeepCopyInto(out *GitHubBot)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubCache

type GitHubCache struct {
	CacheDir        string `json:"cacheDir,omitempty"`
	CacheDiskSizeGB uint64 `json:"cacheDiskSizeGB,omitempty"`
	MaxAgeSeconds   int    `json:"maxAgeSeconds,omitempty"`
}

GitHubCache is the github cache configuration

func (*GitHubCache) DeepCopy

func (in *GitHubCache) DeepCopy() *GitHubCache

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubCache.

func (*GitHubCache) DeepCopyInto

func (in *GitHubCache) DeepCopyInto(out *GitHubCache)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HealthCheckTarget

type HealthCheckTarget struct {
	//Namespace specifies the namespace where resources relevant for a health check exist in.
	Namespace string `json:"namespace,omitempty"`
	// DeploymentName is the name of a deployment whose health will be checked.
	DeploymentName string `json:"deploymentName,omitempty"`
	//Interval specifies the frequency of the health check
	Interval metav1.Duration `json:"interval,omitempty"`
}

HealthCheckTarget specifies a deployment whose health should be checked.

func (*HealthCheckTarget) DeepCopy

func (in *HealthCheckTarget) DeepCopy() *HealthCheckTarget

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckTarget.

func (*HealthCheckTarget) DeepCopyInto

func (in *HealthCheckTarget) DeepCopyInto(out *HealthCheckTarget)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LandscapeMapping

type LandscapeMapping struct {
	// Namespace indicates the namespace where TestRuns for a specific landscape should run
	Namespace string `json:"namespace,omitempty"`

	// ApiServerUrl discloses the allowed target APi server
	ApiServerUrl string `json:"apiServerUrl,omitempty"`

	// Audience is the audience/client ID, which has to be used for requests to this landscape
	Audience string `json:"audience"`

	//ExpirationSeconds specifies the lifetime of issued tokens
	ExpirationSeconds int64 `json:"expirationSeconds"`

	//AllowUntrustedUsage defines, if a token is allowed to be used in untrusted steps
	AllowUntrustedUsage bool `json:"allowUntrustedUsage"`
}

LandscapeMapping defines how to connect to a landscape using an OpenIDConnect IDP

func (*LandscapeMapping) DeepCopy

func (in *LandscapeMapping) DeepCopy() *LandscapeMapping

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LandscapeMapping.

func (*LandscapeMapping) DeepCopyInto

func (in *LandscapeMapping) DeepCopyInto(out *LandscapeMapping)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Locations

type Locations struct {
	// ExcludeDomains is a list of domains that should be excluded and no test definition fetched from.
	// Note that the domain and all its subdomains are ignored.
	ExcludeDomains []string `json:"excludeDomains,omitempty"`
}

Locations defines test location configurations.

func (*Locations) DeepCopy

func (in *Locations) DeepCopy() *Locations

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Locations.

func (*Locations) DeepCopyInto

func (in *Locations) DeepCopyInto(out *Locations)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OAuth

type OAuth struct {
	ClientID     string `json:"clientId"`
	ClientSecret string `json:"clientSecret"`
	RedirectURL  string `json:"redirectUrl"`
}

func (*OAuth) DeepCopy

func (in *OAuth) DeepCopy() *OAuth

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth.

func (*OAuth) DeepCopyInto

func (in *OAuth) DeepCopyInto(out *OAuth)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type S3

type S3 struct {
	Server     S3Server `json:"server"`
	BucketName string   `json:"bucketName,omitempty"`
	AccessKey  string   `json:"accessKey,omitempty"`
	SecretKey  string   `json:"secretKey,omitempty"`
}

S3 holds information about the s3 endpoint

func (*S3) DeepCopy

func (in *S3) DeepCopy() *S3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3.

func (*S3) DeepCopyInto

func (in *S3) DeepCopyInto(out *S3)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type S3Server

type S3Server struct {
	Endpoint string `json:"endpoint,omitempty"`
	SSL      bool   `json:"ssl,omitempty"`
}

S3Server defines the used s3 server

func (*S3Server) DeepCopy

func (in *S3Server) DeepCopy() *S3Server

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Server.

func (*S3Server) DeepCopyInto

func (in *S3Server) DeepCopyInto(out *S3Server)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TTLController

type TTLController struct {
	// Disable disables the ttl controller.
	Disable bool `json:"disable,omitempty"`
	// MaxConcurrentSyncs is the max concurrent reconciles the controller does.
	MaxConcurrentSyncs int `json:"maxConcurrentSyncs,omitempty"`
}

TTLController contains the ttl controller configuration.

func (*TTLController) DeepCopy

func (in *TTLController) DeepCopy() *TTLController

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TTLController.

func (*TTLController) DeepCopyInto

func (in *TTLController) DeepCopyInto(out *TTLController)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestMachinery

type TestMachinery struct {
	// Namespace is the namespace the testmachinery is deployed to.
	Namespace string `json:"namespace,omitempty"`

	// TestDefPath is the repository path where the Test Machinery should search for testdefinitions.
	TestDefPath string `json:"testdefPath"`

	// Locations contains all testlocation configurations
	Locations Locations `json:"locations,omitempty"`

	// PrepareImage is the prepare image that is used in the prepare and postprepare step.
	PrepareImage string `json:"prepareImage"`

	// PrepareImage is the base image that is used as the default image if a TestDefinition does not define an image.
	BaseImage string `json:"baseImage"`

	// Local indicates if the controller is run locally.
	Local bool `json:"local,omitempty"`

	// Insecure indicates that the testmachinery runs insecure.
	Insecure bool `json:"insecure,omitempty"`

	// RetryTimeout defines the timeout when a testrun is not retried anymore and goes into failed state.
	// The string is expected to be passed as golang duration parsable format.
	RetryTimeout string `json:"retryTimeout,omitempty"`

	// RetryTimeoutDuration is the parsed value of the RetryTimeout.
	RetryTimeoutDuration *time.Duration `json:"-"`

	// DisableCollector disables the collection of test results and their ingestion into elasticsearch.
	DisableCollector bool `json:"disableCollector"`

	// CleanWorkflowPods indicates if workflow pods should be directly cleaned up by the testmachinery.
	CleanWorkflowPods bool `json:"cleanWorkflowPods,omitempty"`

	//LandscapeMappings defines how to connect to landscapes using the respective OpenIDConnect IDP
	LandscapeMappings []LandscapeMapping `json:"landscapeMappings,omitempty"`
}

TestMachinery holds information about the testmachinery

func (*TestMachinery) DeepCopy

func (in *TestMachinery) DeepCopy() *TestMachinery

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestMachinery.

func (*TestMachinery) DeepCopyInto

func (in *TestMachinery) DeepCopyInto(out *TestMachinery)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WebhookConfig

type WebhookConfig struct {
	// Port is the port to serve validating webhooks
	Port int `json:"port,omitempty"`

	// CertDir is the directory that contains the certificates that is used by the webhook
	CertDir string `json:"certDir,omitempty"`
}

WebhookConfig holds the validating webhook configuration

func (*WebhookConfig) DeepCopy

func (in *WebhookConfig) DeepCopy() *WebhookConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookConfig.

func (*WebhookConfig) DeepCopyInto

func (in *WebhookConfig) DeepCopyInto(out *WebhookConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Webserver

type Webserver struct {
	// HTTPPort specifies the port to listen for http traffic
	HTTPPort int `json:"httpPort"`

	// HTTPSPort specifies the port to listen for https traffic
	HTTPSPort int `json:"httpsPort"`

	// Certificate holds the certificate the should be used to server the https traffic
	// +optional
	Certificate Certificate `json:"certificate"`
}

Webserver configures the webserver that servres the bot and the dashboard

func (*Webserver) DeepCopy

func (in *Webserver) DeepCopy() *Webserver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webserver.

func (*Webserver) DeepCopyInto

func (in *Webserver) DeepCopyInto(out *Webserver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis
Package v1beta1 is a version of the API.
Package v1beta1 is a version of the API.

Jump to

Keyboard shortcuts

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