types

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: May 8, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditConfig

type AuditConfig struct {
	PolicyFile string `yaml:"policyFile,omitempty"`
}

AuditConfig is used to specify the audit policy file. If a policy file is specified them cluster auditing is enabled. Configure additional `--audit-log-*` flags under kubernetes.apiServerExtraArgs

type Brand

type Brand struct {
	Name string `yaml:"name,omitempty"`
	URL  string `yaml:"url,omitempty"`
}

type CA

type CA struct {
	Cert       string `yaml:"cert,omitempty"`
	PrivateKey string `yaml:"privateKey,omitempty"`
	Password   string `yaml:"password,omitempty"`
}

type Calico

type Calico struct {
	Disabled  bool                    `yaml:"disabled,omitempty"`
	IPIP      calico.IPIPMode         `yaml:"ipip"`
	VxLAN     calico.VXLANMode        `yaml:"vxlan"`
	Version   string                  `yaml:"version,omitempty"`
	Log       string                  `yaml:"log,omitempty"`
	BGPPeers  []calico.BGPPeer        `yaml:"bgpPeers,omitempty"`
	BGPConfig calico.BGPConfiguration `yaml:"bgpConfig,omitempty"`
	IPPools   []calico.IPPool         `yaml:"ipPools,omitempty"`
}

type CertManager

type CertManager struct {
	Version string `yaml:"version"`

	// Details of a vault server to use for signing ingress certificates
	Vault *VaultClient `yaml:"vault,omitempty"`
}

type Cluster

type Cluster interface {
	Clone(template VM, config *konfigadm.Config) (Machine, error)
	GetMachine(name string) (Machine, error)
	GetMachines() (map[string]Machine, error)
	GetMachinesByPrefix(prefix string) (map[string]Machine, error)
}

type ConfigMapReloader

type ConfigMapReloader struct {
	Version  string `yaml:"version"`
	Disabled bool   `yaml:"disabled,omitempty"`
}

type Connection

type Connection struct {
	URL      string `yaml:"url"`
	User     string `yaml:"user,omitempty"`
	Password string `yaml:"password,omitempty"`
	Port     string `yaml:"port,omitempty"`
	Scheme   string `yaml:"scheme,omitempty"`
	Verify   string `yaml:"verify,omitempty"`
}

func (Connection) GetURL

func (c Connection) GetURL() string

type Consul

type Consul struct {
	Version        string `yaml:"version"`
	Disabled       bool   `yaml:"disabled,omitempty"`
	Bucket         string `yaml:"bucket,omitempty"`
	BackupSchedule string `yaml:"backupSchedule,omitempty"`
	BackupImage    string `yaml:"backupImage,omitempty"`
}

type DB

type DB struct {
	Host     string `yaml:"host"`
	Username string `yaml:"username"`
	Password string `yaml:"password"`
	Port     int    `yaml:"port"`
}

func (DB) GetConnectionURL

func (db DB) GetConnectionURL(name string) string

type Dashboard

type Dashboard struct {
	Enabled
	AccessRestricted LdapAccessConfig `yaml:"accessRestricted,omitempty"`
}

type DynamicDNS

type DynamicDNS struct {
	Disabled   bool   `yaml:"disabled,omitempty"`
	Nameserver string `yaml:"nameserver,omitempty"`
	Key        string `yaml:"key,omitempty"`
	KeyName    string `yaml:"keyName,omitempty"`
	Algorithm  string `yaml:"algorithm,omitempty"`
	Zone       string `yaml:"zone,omitempty"`
	AccessKey  string `yaml:"accessKey,omitempty"`
	SecretKey  string `yaml:"secretKey,omitempty"`
	Type       string `yaml:"type,omitempty"`
}

type ECK

type ECK struct {
	Disabled bool   `yaml:"disabled,omitempty"`
	Version  string `yaml:"version"`
}

type Elasticsearch

type Elasticsearch struct {
	Version     string       `yaml:"version"`
	Mem         *Memory      `yaml:"mem,omitempty"`
	Replicas    int          `yaml:"replicas,omitempty"`
	Persistence *Persistence `yaml:"persistence,omitempty"`
	Disabled    bool         `yaml:"disabled,omitempty"`
}

type Enabled

type Enabled struct {
	Disabled bool `yaml:"disabled"`
}

type Filebeat

type Filebeat struct {
	Version       string      `yaml:"version"`
	Disabled      bool        `yaml:"disabled,omitempty"`
	Elasticsearch *Connection `yaml:"elasticsearch,omitempty"`
	Logstash      *Connection `yaml:"logstash,omitempty"`
}

type FluentdOperator

type FluentdOperator struct {
	Disabled             bool       `yaml:"disabled,omitempty"`
	Version              string     `yaml:"version"`
	Elasticsearch        Connection `yaml:"elasticsearch,omitempty"`
	DisableDefaultConfig bool       `yaml:"disableDefaultConfig"`
}

type GitOps

type GitOps struct {
	// The name of the gitops deployment, defaults to namespace name
	Name string `yaml:"name,omitempty"`

	// Do not scan container image registries to fill in the registry cache, implies `--git-read-only` (default: true)
	DisableScanning *bool `yaml:"disableScanning,omitempty"`

	// The namespace to deploy the GitOps operator into, if empty then it will be deployed cluster-wide into kube-system
	Namespace string `yaml:"namespace,omitempty"`

	// The URL to git repository to clone
	GitURL string `yaml:"gitUrl"`

	// The git branch to use (default: `master`)
	GitBranch string `yaml:"gitBranch,omitempty"`

	// The path with in the git repository to look for YAML in (default: `.`)
	GitPath string `yaml:"gitPath,omitempty"`

	// The frequency with which to fetch the git repository (default: `5m0s`)
	GitPollInterval string `yaml:"gitPollInterval,omitempty"`

	// The frequency with which to sync the manifests in the repository to the cluster (default: `5m0s`)
	SyncInterval string `yaml:"syncInterval,omitempty"`

	// The Kubernetes secret to use for cloning, if it does not exist it will be generated (default: `flux-$name-git-deploy`)
	GitKey string `yaml:"gitKey,omitempty"`

	// The contents of the known_hosts file to mount into Flux and helm-operator
	KnownHosts string `yaml:"knownHosts,omitempty"`

	// The contents of the ~/.ssh/config file to mount into Flux and helm-operator
	SSHConfig string `yaml:"sshConfig,omitempty"`

	// The version to use for flux (default: 1.9.0 )
	FluxVersion string `yaml:"fluxVersion,omitempty"`

	// a map of args to pass to flux without -- prepended. See [fluxd](https://docs.fluxcd.io/en/1.19.0/references/daemon/) for a full list
	Args map[string]string `yaml:"args,omitempty"`
}

type Grafana

type Grafana struct {
	Version  string `yaml:"version,omitempty"`
	Disabled bool   `yaml:"disabled,omitempty"`
}

type Harbor

type Harbor struct {
	Disabled        bool   `yaml:"disabled,omitempty"`
	Version         string `yaml:"version,omitempty"`
	ChartVersion    string `yaml:"chartVersion,omitempty"`
	AdminPassword   string `yaml:"-"`
	ClairVersion    string `yaml:"clairVersion"`
	RegistryVersion string `yaml:"registryVersion"`
	// Logging level for various components, valid options are `info`,`warn`,`debug` (default: `warn`)
	LogLevel string                   `yaml:"logLevel,omitempty"`
	DB       *DB                      `yaml:"db,omitempty"`
	URL      string                   `yaml:"url,omitempty"`
	Projects map[string]HarborProject `yaml:"projects,omitempty"`
	Settings *HarborSettings          `yaml:"settings,omitempty"`
	Replicas int                      `yaml:"replicas,omitempty"`
	// S3 bucket for the docker registry to use
	Bucket string `yaml:"bucket"`
}

type HarborProject

type HarborProject struct {
	Name  string            `yaml:"name,omitempty"`
	Roles map[string]string `yaml:"roles,omitempty"`
}

type HarborSettings

type HarborSettings struct {
	AuthMode                     string `json:"auth_mode,omitempty" yaml:"auth_mode,omitempty"`
	EmailFrom                    string `json:"email_from,omitempty" yaml:"email_from,omitempty"`
	EmailHost                    string `json:"email_host,omitempty" yaml:"email_host,omitempty"`
	EmailIdentity                string `json:"email_identity,omitempty" yaml:"email_identity,omitempty"`
	EmailPassword                string `json:"email_password,omitempty" yaml:"email_password,omitempty"`
	EmailInsecure                string `json:"email_insecure,omitempty" yaml:"email_insecure,omitempty"`
	EmailPort                    string `json:"email_port,omitempty" yaml:"email_port,omitempty"`
	EmailSsl                     *bool  `json:"email_ssl,omitempty" yaml:"email_ssl,omitempty"`
	EmailUsername                string `json:"email_username,omitempty" yaml:"email_username,omitempty"`
	LdapURL                      string `json:"ldap_url,omitempty" yaml:"ldap_url,omitempty"`
	LdapBaseDN                   string `json:"ldap_base_dn,omitempty" yaml:"ldap_base_dn,omitempty"`
	LdapFilter                   string `json:"ldap_filter,omitempty" yaml:"ldap_filter,omitempty"`
	LdapScope                    string `json:"ldap_scope,omitempty" yaml:"ldap_scope,omitempty"`
	LdapSearchDN                 string `json:"ldap_search_dn,omitempty" yaml:"ldap_search_dn,omitempty"`
	LdapSearchPassword           string `json:"ldap_search_password,omitempty" yaml:"ldap_search_password,omitempty"`
	LdapTimeout                  string `json:"ldap_timeout,omitempty" yaml:"ldap_timeout,omitempty"`
	LdapUID                      string `json:"ldap_uid,omitempty" yaml:"ldap_uid,omitempty"`
	LdapVerifyCert               *bool  `json:"ldap_verify_cert,omitempty" yaml:"ldap_verify_cert,omitempty"`
	LdapGroupAdminDN             string `json:"ldap_group_admin_dn,omitempty" yaml:"ldap_group_admin_dn,omitempty"`
	LdapGroupAttributeName       string `json:"ldap_group_attribute_name,omitempty" yaml:"ldap_group_attribute_name,omitempty"`
	LdapGroupBaseDN              string `json:"ldap_group_base_dn,omitempty" yaml:"ldap_group_base_dn,omitempty"`
	LdapGroupSearchFilter        string `json:"ldap_group_search_filter,omitempty" yaml:"ldap_group_search_filter,omitempty"`
	LdapGroupSearchScope         string `json:"ldap_group_search_scope,omitempty" yaml:"ldap_group_search_scope,omitempty"`
	LdapGroupMembershipAttribute string `json:"ldap_group_membership_attribute,omitempty" yaml:"ldap_group_membership_attribute,omitempty"`
	ProjectCreationRestriction   string `json:"project_creation_restriction,omitempty" yaml:"project_creation_restriction,omitempty"`
	ReadOnly                     string `json:"read_only,omitempty" yaml:"read_only,omitempty"`
	SelfRegistration             *bool  `json:"self_registration,omitempty" yaml:"self_registration,omitempty"`
	TokenExpiration              int    `json:"token_expiration,omitempty" yaml:"token_expiration,omitempty"`
	OidcName                     string `json:"oidc_name,omitempty" yaml:"oidc_name,omitempty"`
	OidcEndpoint                 string `json:"oidc_endpoint,omitempty" yaml:"oidc_endpoint,omitempty"`
	OidcClientID                 string `json:"oidc_client_id,omitempty" yaml:"oidc_client_id,omitempty"`
	OidcClientSecret             string `json:"oidc_client_secret,omitempty" yaml:"oidc_client_secret,omitempty"`
	OidcScope                    string `json:"oidc_scope,omitempty" yaml:"oidc_scope,omitempty"`
	OidcVerifyCert               string `json:"oidc_verify_cert,omitempty" yaml:"oidc_verify_cert,omitempty"`
	RobotTokenDuration           int    `json:"robot_token_duration,omitempty" yaml:"robot_token_duration,omitempty"`
}

type Kubernetes

type Kubernetes struct {
	Version string `yaml:"version"`
	// Configure additional kubelet [flags](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)
	KubeletExtraArgs map[string]string `yaml:"kubeletExtraArgs,omitempty"`
	// Configure additional kube-controller-manager [flags](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
	ControllerExtraArgs map[string]string `yaml:"controllerExtraArgs,omitempty"`
	// Configure additional kube-scheduler [flags](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)
	SchedulerExtraArgs map[string]string `yaml:"schedulerExtraArgs,omitempty"`
	// Configure additional kube-apiserver [flags](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/)
	APIServerExtraArgs map[string]string `yaml:"apiServerExtraArgs,omitempty"`
	// Configure additional etcd [flags](https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md)
	EtcdExtraArgs map[string]string `yaml:"etcdExtraArgs,omitempty"`
	MasterIP      string            `yaml:"masterIP,omitempty"`
	// Configure Kubernetes auditing
	AuditConfig AuditConfig `yaml:"auditing,omitempty"`
}

func (*Kubernetes) UnmarshalYAML

func (c *Kubernetes) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is used to customize the YAML unmarshalling of Kubernetes objects. It makes sure that if a audit policy is specified that a default audit-log-path will be supplied.

type Ldap

type Ldap struct {
	Disabled bool   `yaml:"disabled,omitempty"`
	Host     string `yaml:"host,omitempty"`
	Port     string `yaml:"port,omitempty"`
	Username string `yaml:"username,omitempty"`
	Password string `yaml:"password,omitempty"`
	Domain   string `yaml:"domain,omitempty"`
	// Members of this group will become cluster-admins
	AdminGroup string `yaml:"adminGroup,omitempty"`
	UserDN     string `yaml:"userDN,omitempty"`
	GroupDN    string `yaml:"groupDN,omitempty"`
	// GroupObjectClass is used for searching user groups in LDAP. Default is `group` for Active Directory and `groupOfNames` for Apache DS
	GroupObjectClass string `yaml:"groupObjectClass,omitempty"`
	// GroupNameAttr is the attribute used for returning group name in OAuth tokens. Default is `name` in ActiveDirectory and `DN` in Apache DS
	GroupNameAttr string  `yaml:"groupNameAttr,omitempty"`
	E2E           LdapE2E `yaml:"e2e,omitempty"`
}

func (Ldap) GetConnectionURL

func (ldap Ldap) GetConnectionURL() string

type LdapAccessConfig

type LdapAccessConfig struct {
	Enabled bool     `yaml:"enabled,omitempty"`
	Groups  []string `yaml:"groups,omitempty"`
	Snippet string   `yaml:"snippet,omitempty"`
}

type LdapE2E

type LdapE2E struct {
	// Ff true, deploy a mock LDAP server for testing
	Mock bool `yaml:"mock,omitempty"`
	// Username to be used for OIDC integration tests
	Username string `yaml:"username,omitempty"`
	// Password to be used for or OIDC integration tests
	Password string `yaml:"password,omitempty"`
}

type Machine

type Machine interface {
	String() string
	WaitForPoweredOff() error
	GetIP(timeout time.Duration) (string, error)
	WaitForIP() (string, error)
	SetAttributes(attributes map[string]string) error
	GetAttributes() (map[string]string, error)
	Shutdown() error
	PowerOff() error
	Terminate() error
	Name() string
	GetAge() time.Duration
	GetTemplate() string
	IP() string
}

Machine represents a running instance of a VM

type Memory

type Memory struct {
	Requests string `yaml:"requests,omitempty"`
	Limits   string `yaml:"limits,omitempty"`
}

type Monitoring

type Monitoring struct {
	Disabled           bool          `yaml:"disabled,omitempty"`
	AlertEmail         string        `yaml:"alert_email,omitempty"`
	Version            string        `yaml:"version,omitempty" json:"version,omitempty"`
	Prometheus         Prometheus    `yaml:"prometheus,omitempty" json:"prometheus,omitempty"`
	Grafana            Grafana       `yaml:"grafana,omitempty" json:"grafana,omitempty"`
	AlertManager       string        `yaml:"alertMmanager,omitempty"`
	KubeStateMetrics   string        `yaml:"kubeStateMetrics,omitempty"`
	KubeRbacProxy      string        `yaml:"kubeRbacProxy,omitempty"`
	NodeExporter       string        `yaml:"nodeExporter,omitempty"`
	AddonResizer       string        `yaml:"addonResizer,omitempty"`
	PrometheusOperator string        `yaml:"prometheus_operator,omitempty"`
	E2E                MonitoringE2E `yaml:"e2e,omitempty"`
}

type MonitoringE2E

type MonitoringE2E struct {
	// MinAlertLevel is the minimum alert level for which E2E tests should fail. can be
	// can be one of critical, warning, info
	MinAlertLevel string `yaml:"minAlertLevel,omitempty"`
}

type NFS

type NFS struct {
	Host string `yaml:"host,omitempty"`
	Path string `yaml:"path,omitempty"`
}

type NSX

type NSX struct {
	LoadBalancerIPPool string `yaml:"loadbalancer_ip_pool,omitempty"`
	Tier0              string `yaml:"tier0,omitempty"`
	Disabled           bool   `structs:"-" yaml:"disabled"`
	Image              string `structs:"-" yaml:""`
	Version            string `structs:"-" yaml:"version"`
	// If set to true, the logging level will be set to DEBUG instead of the
	// default INFO level.
	Debug *bool `structs:"debug,omitempty" yaml:"debug,omitempty"`
	// If set to true, log output to standard error.
	UseStderr *bool `structs:"use_stderr,omitempty" yaml:"use_stderr,omitempty"`

	// If set to true, use syslog for logging.
	UseSyslog *bool `structs:"use_syslog,omitempty" yaml:"use_syslog,omitempty"`

	// The base directory used for relative log_file paths.
	LogDir string `structs:"log_dir,omitempty" yaml:"log_dir,omitempty"`

	// Name of log file to send logging output to.
	LogFile string `structs:"log_file,omitempty" yaml:"log_file,omitempty"`

	// max MB for each compressed file. Defaults to 100 MB.
	//log_rotation_file_max_mb = 100
	LogRotationFileMaxMb *int `structs:"log_rotation_file_max_mb,omitempty" yaml:"log_rotation_file_max_mb,omitempty"`

	// Total number of compressed backup files to store. Defaults to 5.
	LogRotationBackupCount *int `structs:"log_rotation_backup_count,omitempty" yaml:"log_rotation_backup_count,omitempty"`

	// Specify the directory where nsx-python-logging is installed
	NsxPythonLoggingPath string `structs:"nsx_python_logging_path,omitempty" yaml:"nsx_python_logging_path,omitempty"`

	// Specify the directory where nsx-cli is installed
	NsxCliPath string `structs:"nsx_cli_path,omitempty" yaml:"nsx_cli_path,omitempty"`

	NsxV3 *NsxV3 `structs:"nsx_v3,omitempty" yaml:"nsx_v3,omitempty"`

	NsxHA *NsxHA `structs:"ha,omitempty" yaml:"nsx_ha,omitempty"`

	NsxCOE *NsxCOE `structs:"coe,omitempty" yaml:"coe,omitempty"`

	NsxK8s *NsxK8s `structs:"k8s" yaml:"nsx_k8s,omitempty"`

	NsxNodeAgent *NsxNodeAgent `structs:"nsx_node_agent" yaml:"nsx_node_agent,omitempty"`
}

type Nginx

type Nginx struct {
	Disabled bool `yaml:"disabled"`
	// The version of the nginx controller to deploy (default: `0.25.1.flanksource.1`)
	Version string `yaml:"version"`
	// Disable access logs
	DisableAccessLog bool `yaml:"disableAccessLog,omitempty"`
	// Size of request body buffer (default: `16M`)
	RequestBodyBuffer string `yaml:"requestBodyBuffer,omitempty"`
	// Max size of request body (default: `32M`)
	RequestBodyMax string `yaml:"requestBodyMax,omitempty"`
}

Configures the Nginx Ingress Controller, the controller Docker image is forked from upstream to include more LUA packages for OAuth. <br> To configure global settings not available below, override the <b>ingress-nginx/nginx-configuration</b> configmap with settings from [here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/)

type NodeLocalDNS

type NodeLocalDNS struct {
	Disabled  bool   `yaml:"disabled,omitempty"`
	DNSServer string `yaml:"dnsServer,omitempty"`
	LocalDNS  string `yaml:"localDNS,omitempty"`
	DNSDomain string `yaml:"dnsDomain,omitempty"`
}

type NsxCOE

type NsxCOE struct {

	// Container orchestrator adaptor to plug in.
	Adaptor string `structs:"adaptor,omitempty" yaml:"adaptor,omitempty"`

	// Specify cluster for adaptor.
	Cluster string `structs:"cluster,omitempty" yaml:"cluster,omitempty"`

	// Log level for NCP operations
	// Choices: NOTSET DEBUG INFO WARNING ERROR CRITICAL
	Loglevel string `structs:"loglevel,omitempty" yaml:"loglevel,omitempty"`

	// Log level for NSX API client operations
	// Choices: NOTSET DEBUG INFO WARNING ERROR CRITICAL
	NsxlibLoglevel string `structs:"nsxlib_loglevel,omitempty" yaml:"nsxlib_loglevel,omitempty"`

	// Enable SNAT for all projects in this cluster
	EnableSnat *bool `structs:"enable_snat,omitempty" yaml:"enable_snat,omitempty"`

	// Option to enable profiling
	Profiling *bool `structs:"profiling,omitempty" yaml:"profiling,omitempty"`

	// The type of container host node
	// Choices: HOSTVM BAREMETAL CLOUD WCP_WORKER
	NodeType string `structs:"node_type,omitempty" yaml:"node_type,omitempty"`

	// The time in seconds for NCP/nsx_node_agent to recover the connection to
	// NSX manager/container orchestrator adaptor/Hyperbus before exiting. If
	// the value is 0, NCP/nsx_node_agent wont exit automatically when the
	// connection check fails
	ConnectRetryTimeout *int `structs:"connect_retry_timeout,omitempty" yaml:"connect_retry_timeout,omitempty"`
}

type NsxHA

type NsxHA struct {

	// Time duration in seconds of mastership timeout. NCP instance will remain
	// master for this duration after elected. Note that the heartbeat period
	// plus the update timeout must not be greater than this period. This is
	// done to ensure that the master instance will either confirm liveness or
	// fail before the timeout.
	MasterTimeout *int `structs:"master_timeout,omitempty"`

	// Time in seconds between heartbeats for elected leader. Once an NCP
	// instance is elected master, it will periodically confirm liveness based
	// on this value.
	HeartbeatPeriod *int `structs:"heartbeat_period,omitempty"`

	// Timeout duration in seconds for update to election resource. The default
	// value is calculated by subtracting heartbeat period from master timeout.
	// If the update request does not complete before the timeout it will be
	// aborted. Used for master heartbeats to ensure that the update fstructs:shes or
	// is aborted before the master timeout occurs.
	UpdateTimeout *int `structs:"update_timeout,omitempty"`
}

type NsxK8s

type NsxK8s struct {
	// Kubernetes API server IP address.
	ApiserverHostIP string `structs:"apiserver_host_ip,omitempty" yaml:"apiserver_host_ip,omitempty"`

	// Kubernetes API server port.
	ApiserverHostPort string `structs:"apiserver_host_port,omitempty" yaml:"apiserver_host_port,omitempty"`

	// Full path of the Token file to use for authenticating with the k8s API
	// server.
	ClientTokenFile string `structs:"client_token_file,omitempty" yaml:"client_token_file,omitempty"`

	// Full path of the client certificate file to use for authenticating with
	// the k8s API server. It must be specified together with
	// "client_private_key_file".
	ClientCertFile string `structs:"client_cert_file,omitempty" yaml:"client_cert_file,omitempty"`

	ClientPrivateKeyFile string `structs:"client_private_key_file,omitempty" yaml:"client_private_key_file,omitempty"`

	// Specify a CA bundle file to use in verifying the k8s API server
	// certificate.
	CaFile string `structs:"ca_file,omitempty" yaml:"ca_file,omitempty"`

	// Specify whether ingress controllers are expected to be deployed in
	// hostnework mode or as regular pods externally accessed via NAT
	// Choices: hostnetwork nat
	IngressMode string `structs:"ingress_mode,omitempty" yaml:"ingress_mode,omitempty"`

	// Log level for the kubernetes adaptor
	// Choices: NOTSET DEBUG INFO WARNING ERROR CRITICAL
	Loglevel string `structs:"loglevel,omitempty" yaml:"loglevel,omitempty"`

	HTTPIngressPort *int `structs:"http_ingress_port,omitempty" yaml:"http_ingress_port,omitempty"`

	// The default HTTPS ingress port
	HTTPSIngressPort *int `structs:"https_ingress_port,omitempty" yaml:"https_ingress_port,omitempty"`

	// Specify thread pool size to process resource events
	ResourceWatcherThreadPoolSize *int `structs:"resource_watcher_thread_pool_size,omitempty" yaml:"resource_watcher_thread_pool_size,omitempty"`

	// User specified IP address for HTTP and HTTPS ingresses
	// nolint: golint, stylecheck
	HttpAndHttpsIngressIp string `structs:"http_and_https_ingress_ip,omitempty" yaml:"http_and_https_ingress_ip,omitempty"`

	// Set this to True to enable NCP to create segment port for VM through
	// NsxNetworkInterface CRD.
	EnableNsxNetifCrd *bool `structs:"enable_nsx_netif_crd,omitempty" yaml:"enable_nsx_netif_crd,omitempty"`

	// Option to set the type of baseline cluster policy. ALLOW_CLUSTER creates
	// an explicit baseline policy to allow any pod to communicate any other pod
	// within the cluster. ALLOW_NAMESPACE creates an explicit baseline policy
	// to allow pods within the same namespace to communicate with each other.
	// By default, no baseline rule will be created and the cluster will assume
	// the default behavior as specified by the backend.
	// Choices: <None> allow_cluster allow_namespace
	BaselinePolicyType string `structs:"baseline_policy_type,omitempty" yaml:"baseline_policy_type,omitempty"`
}

type NsxNodeAgent

type NsxNodeAgent struct {

	// The log level of NSX RPC library
	// Choices: NOTSET DEBUG INFO WARNING ERROR CRITICAL
	LogLevel string `structs:"nsxrpc_loglevel,omitempty" yaml:"log_level,omitempty"`

	// OVS bridge name
	OvsBridge string `structs:"ovs_bridge,omitempty" yaml:"ovs_bridge,omitempty"`

	// The OVS uplink OpenFlow port where to apply the NAT rules to.
	OvsUplinkPort string `structs:"ovs_uplink_port,omit_empty" yaml:"ovs_uplink_port,omitempty"`

	// The time in seconds for nsx_node_agent to wait CIF config from HyperBus
	// before returning to CNI
	ConfigRetryTimeout *int `structs:"config_retry_timeout,omitempty" yaml:"config_retry_timeout,omitempty"`

	// The time in seconds for nsx_node_agent to backoff before re-using an
	// existing cached CIF to serve CNI request. Must be less than config_retry_timeout.
	ConfigReuseBackoffTime *int `structs:"config_reuse_backoff_time,omitempty" yaml:"config_reuse_backoff_time,omitempty"`
}

type NsxV3

type NsxV3 struct {
	NsxAPIUser   string `structs:"nsx_api_user,omitempty" yaml:"nsx_api_user,omitempty"`
	NsxAPIPass   string `structs:"nsx_api_password,omitempty" yaml:"nsx_api_password,omitempty"`
	PolicyNSXAPI *bool  `structs:"policy_nsxapi" yaml:"policy_nsxapi,omitempty"`
	// Path to NSX client certificate file. If specified, the nsx_api_user and
	// nsx_api_password options will be ignored. Must be specified along with
	// nsx_api_private_key_file option
	NsxAPICertFile string `structs:"nsx_api_cert_file,omitempty" yaml:"nsx_api_cert_file,omitempty"`

	// Path to NSX client private key file. If specified, the nsx_api_user and
	// nsx_api_password options will be ignored. Must be specified along with
	// nsx_api_cert_file option
	NsxAPIPrivateKeyFile string `structs:"nsx_api_private_key_file,omitempty" yaml:"nsx_api_private_key_file,omitempty"`

	// IP address of one or more NSX managers separated by commas. The IP
	// address should be of the form:
	// [<scheme>://]<ip_adress>[:<port>]
	// If
	// scheme is not provided https is used. If port is not provided port 80 is
	// used for http and port 443 for https.
	NsxAPIManagers []string `structs:"nsx_api_managers,omitempty" yaml:"nsx_api_managers,omitempty"`

	// If True, skip fatal errors when no endpoint in the NSX management cluster
	// is available to serve a request, and retry the request instead
	ClusterUnavailableRetry *bool `structs:"cluster_unavailable_retry,omitempty" yaml:"cluster_unavailable_retry,omitempty"`

	// Maximum number of times to retry API requests upon stale revision errors.
	Retries *int `structs:"retries,omitempty" yaml:"retries,omitempty"`

	// Specify one or a list of CA bundle files to use in verifying the NSX
	// Manager server certificate. This option is ignored if "insecure" is set
	// to True. If "insecure" is set to False and ca_file is unset, the system
	// root CAs will be used to verify the server certificate.
	CaFile []string `structs:"ca_file,omitempty" yaml:"ca_file,omitempty"`

	// If true, the NSX Manager server certificate is not verified. If false the
	// CA bundle specified via "ca_file" will be used or if unset the default
	// system root CAs will be used.
	Insecure *bool `structs:"insecure,omitempty" yaml:"insecure,omitempty"`

	// The time in seconds before aborting a HTTP connection to a NSX manager.
	HTTPTimeout *int `structs:"http_timeout,omitempty" yaml:"http_timeout,omitempty"`

	// The time in seconds before aborting a HTTP read response from a NSX
	// manager.
	HTTPReadTimeout *int `structs:"http_read_timeout,omitempty" yaml:"http_read_timeout,omitempty"`

	// Maximum number of times to retry a HTTP connection.
	HTTPRetries *int `structs:"http_retries,omitempty" yaml:"http_retries,omitempty"`

	// Maximum concurrent connections to each NSX manager.
	ConcurrentConnections *int `structs:"concurrent_connections,omitempty" yaml:"concurrent_connections,omitempty"`

	// The amount of time in seconds to wait before ensuring connectivity to the
	// NSX manager if no manager connection has been used.
	ConnIdltTimeout *int `structs:"conn_idlt_timeout,omitempty" yaml:"conn_idlt_timeout,omitempty"`

	// Number of times a HTTP redirect should be followed.
	Redirects *int `structs:"redirects,omitempty" yaml:"redirects,omitempty"`

	// Subnet prefix of IP block.
	SubnetPrefix *int `structs:"subnet_prefix,omitempty" yaml:"subnet_prefix,omitempty"`

	// Indicates whether distributed firewall DENY rules are logged.
	LogDroppedTraffic *bool `structs:"log_dropped_traffic,omitempty" yaml:"log_dropped_traffic,omitempty"`

	// Option to use native load balancer or not
	UseNativeLoadbalancer *bool `structs:"use_native_loadbalancer,omitempty" yaml:"use_native_loadbalancer,omitempty"`

	// Option to auto scale layer 4 load balancer or not. If set to True, NCP
	// will create additional LB when necessary upon K8s Service of type LB
	// creation/update.
	L4LBAutoScaling *bool `structs:"l_4_lb_auto_scaling,omitempty" yaml:"l_4_lb_auto_scaling,omitempty"`

	// Option to use native load balancer or not when ingress class annotation
	// is missing. Only effective if use_native_loadbalancer is set to true
	DefaultIngressClassNsx *bool `structs:"default_ingress_class_nsx,omitempty" yaml:"default_ingress_class_nsx,omitempty"`

	// Path to the default certificate file for HTTPS load balancing. Must be
	// specified along with lb_priv_key_path option
	LBDefaultCertPath string `structs:"lb_default_cert_path,omitempty" yaml:"lb_default_cert_path,omitempty"`

	// Path to the private key file for default certificate for HTTPS load
	// balancing. Must be specified along with lb_default_cert_path option
	LBPrivKeyPath string `structs:"lb_priv_key_path,omitempty" yaml:"lb_priv_key_path,omitempty"`

	// Option to set load balancing algorithm in load balancer pool object.
	// Choices: ROUND_ROBIN LEAST_CONNECTION IP_HASH WEIGHTED_ROUND_ROBIN
	PoolAlgorithm string `structs:"pool_algorithm,omitempty" yaml:"pool_algorithm,omitempty"`

	// Option to set load balancer service size. MEDIUM Edge VM (4 vCPU, 8GB)
	// only supports SMALL LB. LARGE Edge VM (8 vCPU, 16GB) only supports MEDIUM
	// and SMALL LB. Bare Metal Edge (IvyBridge, 2 socket, 128GB) supports
	// LARGE, MEDIUM and SMALL LB
	// Choices: SMALL MEDIUM LARGE
	ServiceSize string `structs:"service_size,omitempty" yaml:"service_size,omitempty"`

	// Option to set load balancer persistence option. If cookie is selected,
	// cookie persistence will be offered.If source_ip is selected, source IP
	// persistence will be offered for ingress traffic through L7 load balancer
	// Choices: <None> cookie source_ip
	L7Persistence string `structs:"l7_persistence,omitempty" yaml:"l7_persistence,omitempty"`

	// An integer for LoadBalancer side timeout value in seconds on layer 7
	// persistence profile, if the profile exists.
	L7PersistenceTimeout *int `structs:"l7_persistence_timeout,omitempty" yaml:"l7_persistence_timeout,omitempty"`

	// Option to set load balancer persistence option. If source_ip is selected,
	// source IP persistence will be offered for ingress traffic through L4 load
	// balancer
	L4Persistence string `structs:"l4_persistence,omitempty" yaml:"l4_persistence,omitempty"`

	// The interval to check VIF for node. It is a workaroud for bug 2006790.
	// Old orphan LSP may not be removed on MP, so NCP will retrieve parent VIF
	// back once in a while. NCP will use the last created LSP from the list
	VIFCheckInterval *int `structs:"vif_check_interval,omitempty" yaml:"vif_check_interval,omitempty"`

	// Name or UUID of the container ip blocks that will be used for creating
	// subnets. If name, it must be unique. If policy_nsxapi is enabled, it also
	// support automatically creating the IP blocks. The definition is a comma
	// separated list: CIDR,CIDR,... Mixing different formats (e.g. UUID,CIDR)
	// is not supported.
	ContainerIPBlocks []string `structs:"container_ip_blocks,omitempty" yaml:"container_ip_blocks,omitempty"`

	// Name or UUID of the container ip blocks that will be used for creating
	// subnets for no-SNAT projects. If specified, no-SNAT projects will use
	// these ip blocks ONLY. Otherwise they will use container_ip_blocks
	NoSNATIPBlocks []string `structs:"no_snat_ip_blocks,omitempty" yaml:"no_snat_ip_blocks,omitempty"`

	// Name or UUID of the external ip pools that will be used for allocating IP
	// addresses which will be used for translating container IPs via SNAT
	// rules. If policy_nsxapi is enabled, it also support automatically
	// creating the ip pools. The definition is a comma separated list:
	// CIDR,IP_1-IP_2,... Mixing different formats (e.g. UUID, CIDR&IP_Range) is
	// not supported.
	ExternalIPPools []string `structs:"external_ip_pools,omitempty" yaml:"external_ip_pools,omitempty"`

	// Name or UUID of the top-tier router for the container cluster network,
	// which could be either tier0 or tier1. When policy_nsxapi is enabled,
	// single_tier_topology is True and tier0_gateway is defined,
	// top_tier_router value can be empty and a tier1 gateway is automatically
	// created for the cluster
	TopTierRouter string `structs:"top_tier_router,omitempty" yaml:"top_tier_router,omitempty"`

	// Name or UUID of the external ip pools that will be used only for
	// allocating IP addresses for Ingress controller and LB service
	ExternalIPPoolsLB []string `structs:"external_ip_pools_lb,omitempty" yaml:"external_ip_pools_lb,omitempty"`

	// Name or UUID of the NSX overlay transport zone that will be used for
	// creating logical switches for container networking. It must refer to an
	// already existing resource on NSX and every transport node where VMs
	// hosting containers are deployed must be enabled on this transport zone
	OverlayTZ string `structs:"overlay_tz,omitempty" yaml:"overlay_tz,omitempty"`

	// Enable X_forward_for for ingress. Available values are INSERT or REPLACE.
	// When this config is set, if x_forwarded_for is missing, LB will add
	// x_forwarded_for in the request header with value client ip. When
	// x_forwarded_for is present and its set to REPLACE, LB will replace
	// x_forwarded_for in the header to client_ip. When x_forwarded_for is
	// present and its set to INSERT, LB will append client_ip to
	// x_forwarded_for in the header. If not wanting to use x_forwarded_for,
	// remove this config
	// Choices: <None> INSERT REPLACE
	XForwardedFor string `structs:"x_forwarded_for,omitempty" yaml:"x_forwarded_for,omitempty"`

	// Name or UUID of the spoof guard switching profile that will be used by
	// NCP for leader election
	ElectionProfile string `structs:"election_profile,omitempty" yaml:"election_profile,omitempty"`

	// Name or UUID of the firewall section that will be used to create firewall
	// sections below this mark section
	TopFirewallSectionMarker string `structs:"top_firewall_section_marker,omitempty" yaml:"top_firewall_section_marker,omitempty"`

	// Name or UUID of the firewall section that will be used to create firewall
	// sections above this mark section
	BottomFirewallSectionMarker string `structs:"bottom_firewall_section_marker,omitempty" yaml:"bottom_firewall_section_marker,omitempty"`

	// Replication mode of container logical switch, set SOURCE for cloud as it
	// only supports head replication mode
	// Choices: MTEP SOURCE
	LSReplicationMode string `structs:"ls_replication_mode,omitempty" yaml:"ls_replication_mode,omitempty"`

	// Allocate vlan ID for container interface or not. Set it to False for
	// cloud mode.
	AllocVlanTag string `structs:"alloc_vlan_tag,omitempty" yaml:"alloc_vlan_tag,omitempty"`

	// The resource which NCP will search tag 'node_name' on, to get parent VIF
	// or transport node uuid for container LSP API context field. For HOSTVM
	// mode, it will search tag on LSP. For BM mode, it will search tag on LSP
	// then search TN. For CLOUD mode, it will search tag on VM. For WCP_WORKER
	// mode, it will search TN by hostname.
	// Choices: tag_on_lsp tag_on_tn tag_on_vm hostname_on_tn
	//search_node_tag_on = tag_on_lsp
	SearchNodeTagOn string `structs:"search_node_tag_on,omitempty" yaml:"search_node_tag_on,omitempty"`

	// Determines which kind of information to be used as VIF app_id. Defaults
	// to pod_resource_key. In WCP mode, pod_uid is used.
	// Choices: pod_resource_key pod_uid
	VifAppIDType string `structs:"vif_app_id_type,omitempty" yaml:"vif_app_id_type,omitempty"`

	// SNAT IP to secondary IPs mapping. In the cloud case, SNAT rules are
	// created using the PCG public or link local IPs, local IPs which will be
	// translated to PCG secondary IPs for on-prem traffic. The secondary IPs
	// might be used by admstructs:strator to configure on-prem firewall or other
	// physical network services.
	SnatSecondaryIps []string `structs:"snat_secondary_ips,omitempty" yaml:"snat_secondary_ips,omitempty"`

	// If this value is not empty, NCP will append it to nameserver list
	DNSServers []string `structs:"dns_servers,omitempty" yaml:"dns_servers,omitempty"`

	// Set this to True to enable NCP to report errors through NSXError CRD.
	EnableNsxErrCrd *bool `structs:"enable_nsx_err_crd,omitempty" yaml:"enable_nsx_err_crd,omitempty"`

	// Maximum number of virtual servers allowed to create in cluster for
	// LoadBalancer type of services.
	MaxAllowedVirtualServers *int `structs:"max_allowed_virtual_servers,omitempty" yaml:"max_allowed_virtual_servers,omitempty"`

	// Edge cluster ID needed when creating Tier1 router for loadbalancer
	// service. Information could be retrieved from Tier0 router
	EdgeCluster string `structs:"edge_cluster,omitempty" yaml:"edge_cluster,omitempty"`
}

type OAuth2Proxy

type OAuth2Proxy struct {
	Disabled     bool   `yaml:"disabled"`
	CookieSecret string `yaml:"cookieSecret,omitempty"`
	Version      string `yaml:"version,omitempty"`
	OidcGroup    string `yaml:"oidcGroup,omitempty"`
}

type OPA

type OPA struct {
	Disabled           bool     `yaml:"disabled,omitempty"`
	NamespaceWhitelist []string `yaml:"namespaceWhitelist,omitempty"`
	KubeMgmtVersion    string   `yaml:"kubeMgmtVersion,omitempty"`
	Version            string   `yaml:"version,omitempty"`
	BundleURL          string   `yaml:"bundleUrl,omitempty"`
	BundlePrefix       string   `yaml:"bundlePrefix,omitempty"`
	BundleServiceName  string   `yaml:"bundleServiceName,omitempty"`
	LogFormat          string   `yaml:"logFormat,omitempty"`
	SetDecisionLogs    bool     `yaml:"setDecisionLogs,omitempty"`
	// Policies is a path to directory containing .rego policy files
	Policies string `yaml:"policies,omitempty"`
	// Log level for opa server, one of: `debug`,`info`,`error` (default: `error`)
	LogLevel string `yaml:"logLevel,omitempty"`
	E2E      OPAE2E `yaml:"e2e,omitempty"`
}

type OPAE2E

type OPAE2E struct {
	Fixtures string `yaml:"fixtures,omitempty"`
}

type Persistence

type Persistence struct {
	// Enable persistence for Prometheus
	Enabled bool `yaml:"enabled,omitempty"`
	// Storage class to use. If not set default one will be used
	StorageClass string `yaml:"storageClass,omitempty"`
	// Capacity. Required if persistence is enabled
	Capacity string `yaml:"capacity,omitempty"`
}

type PlatformConfig

type PlatformConfig struct {
	Brand       Brand       `yaml:"brand,omitempty"`
	Version     string      `yaml:"version"`
	Velero      *Velero     `yaml:"velero,omitempty"`
	CA          *CA         `yaml:"ca"`
	Calico      Calico      `yaml:"calico,omitempty"`
	CertManager CertManager `yaml:"certmanager,omitempty"`
	// The endpoint for an externally hosted consul cluster
	// that is used for master discovery
	Consul         string      `yaml:"consul"`
	Dashboard      Dashboard   `yaml:"dashboard,omitempty"`
	Datacenter     string      `yaml:"datacenter"`
	DNS            *DynamicDNS `yaml:"dns,omitempty"`
	DockerRegistry string      `yaml:"dockerRegistry,omitempty"`
	// The wildcard domain that cluster will be available at
	Domain      string   `yaml:"domain"`
	EventRouter *Enabled `yaml:"eventRouter,omitempty"`
	Harbor      *Harbor  `yaml:"harbor,omitempty"`
	// A prefix to be added to VM hostnames.
	HostPrefix            string            `yaml:"hostPrefix"`
	ImportConfigs         []string          `yaml:"importConfigs,omitempty"`
	IngressCA             *CA               `yaml:"ingressCA"`
	GitOps                []GitOps          `yaml:"gitops,omitempty"`
	Kubernetes            Kubernetes        `yaml:"kubernetes"`
	Ldap                  *Ldap             `yaml:"ldap,omitempty"`
	LocalPath             *Enabled          `yaml:"localPath,omitempty"`
	Master                VM                `yaml:"master,omitempty"`
	Monitoring            *Monitoring       `yaml:"monitoring,omitempty"`
	Name                  string            `yaml:"name"`
	NamespaceConfigurator *Enabled          `yaml:"namespaceConfigurator,omitempty"`
	NFS                   *NFS              `yaml:"nfs,omitempty"`
	Nodes                 map[string]VM     `yaml:"workers,omitempty"`
	NodeLocalDNS          NodeLocalDNS      `yaml:"nodeLocalDNS,omitempty"`
	NSX                   *NSX              `yaml:"nsx,omitempty"`
	OAuth2Proxy           *OAuth2Proxy      `yaml:"oauth2Proxy,omitempty"`
	OPA                   *OPA              `yaml:"opa,omitempty"`
	PostgresOperator      *PostgresOperator `yaml:"postgresOperator,omitempty"`
	PodSubnet             string            `yaml:"podSubnet"`
	Policies              []string          `yaml:"policies,omitempty"`
	// A list of strategic merge patches that will be applied to all resources created
	Patches             []string             `yaml:"patches,omitempty"`
	Quack               *Enabled             `yaml:"quack,omitempty"`
	RegistryCredentials *RegistryCredentials `yaml:"registryCredentials,omitempty"`
	Resources           map[string]string    `yaml:"resources,omitempty"`
	S3                  S3                   `yaml:"s3,omitempty"`
	SealedSecrets       *SealedSecrets       `yaml:"sealedSecrets,omitempty"`
	ServiceSubnet       string               `yaml:"serviceSubnet"`
	SMTP                SMTP                 `yaml:"smtp,omitempty"`
	Specs               []string             `yaml:"specs,omitempty"`
	TrustedCA           string               `yaml:"trustedCA,omitempty"`
	Versions            map[string]string    `yaml:"versions,omitempty"`
	PlatformOperator    *Enabled             `yaml:"platformOperator,omitempty"`
	Nginx               *Nginx               `yaml:"nginx,omitempty"`
	Minio               *Enabled             `yaml:"minio,omitempty"`
	FluentdOperator     *FluentdOperator     `yaml:"fluentd,omitempty"`
	ECK                 *ECK                 `yaml:"eck,omitempty"`
	Thanos              *Thanos              `yaml:"thanos,omitempty"`
	Filebeat            *Filebeat            `yaml:"filebeat,omitempty"`
	Vault               *Vault               `yaml:"vault,omitempty"`
	ConfigMapReloader   ConfigMapReloader    `yaml:"configmapReloader,omitempty"`
	Elasticsearch       *Elasticsearch       `yaml:"elasticsearch,omitempty"`

	// If true, terminate operations will return an error. Used to
	// protect stateful clusters
	TerminationProtection bool   `yaml:"terminationProtection,omitempty"`
	BootstrapToken        string `yaml:"-"`
	DryRun                bool   `yaml:"-"`
	Trace                 bool   `yaml:"-"`
	JoinEndpoint          string `yaml:"-"`
	Source                string `yaml:"-"`
	ControlPlaneEndpoint  string `yaml:"-"`
	// E2E is true if end to end tests are being run
	E2E bool `yaml:"-"`
}

func DefaultPlatformConfig

func DefaultPlatformConfig() PlatformConfig

func (PlatformConfig) GetImagePath

func (p PlatformConfig) GetImagePath(image string) string

func (PlatformConfig) GetVMCount

func (p PlatformConfig) GetVMCount() int

func (*PlatformConfig) String

func (p *PlatformConfig) String() string

type PostgresOperator

type PostgresOperator struct {
	Disabled       bool   `yaml:"disabled,omitempty"`
	Version        string `yaml:"version"`
	DBVersion      string `yaml:"dbVersion,omitempty"`
	BackupBucket   string `yaml:"backupBucket,omitempty"`
	BackupSchedule string `yaml:"backupSchedule,omitempty"`
	SpiloImage     string `yaml:"spiloImage,omitempty"`
	BackupImage    string `yaml:"backupImage,omitempty"`
}

type Prometheus

type Prometheus struct {
	Version     string      `yaml:"version,omitempty"`
	Disabled    bool        `yaml:"disabled,omitempty"`
	Persistence Persistence `yaml:"persistence,omitempty"`
}

type RegistryCredentials

type RegistryCredentials struct {
	Disabled              bool                   `yaml:"disabled,omitempty"`
	Version               string                 `yaml:"version,omitempty"`
	Namespace             string                 `yaml:"namespace,omitempty"`
	Aws                   RegistryCredentialsECR `yaml:"aws,omitempty"`
	DockerPrivateRegistry RegistryCredentialsDPR `yaml:"dockerRegistry,omitempty"`
	GCR                   RegistryCredentialsGCR `yaml:"gcr,omitempty"`
	ACR                   RegistryCredentialsACR `yaml:"azure,omitempty"`
}

type RegistryCredentialsACR

type RegistryCredentialsACR struct {
	Enabled  bool   `yaml:"enabled,omitempty"`
	URL      string `yaml:"string,omitempty"`
	ClientID string `yaml:"clientId,omitempty"`
	Password string `yaml:"password,omitempty"`
}

type RegistryCredentialsDPR

type RegistryCredentialsDPR struct {
	Enabled  bool   `yaml:"enabled,omitempty"`
	Server   string `yaml:"server,omitempty"`
	Username string `yaml:"username,omitempty"`
	Password string `yaml:"password,omitempty"`
}

type RegistryCredentialsECR

type RegistryCredentialsECR struct {
	Enabled      bool   `yaml:"enabled,omitempty"`
	AccessKey    string `yaml:"accessKey,omitempty"`
	SecretKey    string `yaml:"secretKey,omitempty"`
	SessionToken string `yaml:"secretToken,omitempty"`
	Account      string `yaml:"account,omitempty"`
	Region       string `yaml:"region,omitempty"`
	AssumeRole   string `yaml:"assumeRole,omitempty"`
}

type RegistryCredentialsGCR

type RegistryCredentialsGCR struct {
	Enabled                bool   `yaml:"enabled,omitempty"`
	URL                    string `yaml:"url,omitempty"`
	ApplicationCredentials string `yaml:"applicationCredentials,omitempty"`
}

type S3

type S3 struct {
	AccessKey string `yaml:"access_key,omitempty"`
	SecretKey string `yaml:"secret_key,omitempty"`
	Bucket    string `yaml:"bucket,omitempty"`
	Region    string `yaml:"region,omitempty"`
	// The endpoint at which the S3-like object storage will be available from inside the cluster
	// e.g. if minio is deployed inside the cluster, specify: `http://minio.minio.svc:9000`
	Endpoint string `yaml:"endpoint,omitempty"`
	// The endpoint at which S3 is accessible outside the cluster,
	// When deploying locally on kind specify: *minio.127.0.0.1.nip.io*
	ExternalEndpoint string `yaml:"externalEndpoint,omitempty"`
	// Whether to enable the *s3* storage class that creates persistent volumes FUSE mounted to
	// S3 buckets
	CSIVolumes bool `yaml:"csiVolumes,omitempty"`
	// Provide a KMS Master Key
	KMSMasterKey string `yaml:"kmsMasterKey,omitempty"`
	// UsePathStyle http://s3host/bucket instead of http://bucket.s3host
	UsePathStyle bool `yaml:"usePathStyle"`
	// Skip TLS verify when connecting to S3
	SkipTLSVerify bool  `yaml:"skipTLSVerify"`
	E2E           S3E2E `yaml:"e2e,omitempty"`
}

func (S3) GetExternalEndpoint

func (s3 S3) GetExternalEndpoint() string

type S3E2E

type S3E2E struct {
	Minio bool `yaml:"minio,omitempty"`
}

type SMTP

type SMTP struct {
	Server   string `yaml:"server,omitempty"`
	Username string `yaml:"username,omitempty"`
	Password string `yaml:"password,omitempty"`
	Port     int    `yaml:"port,omitempty"`
	From     string `yaml:"from,omitempty"`
}

type SealedSecrets

type SealedSecrets struct {
	Enabled
	Version     string             `yaml:"version,omitempty"`
	Certificate *certs.Certificate `yaml:"certificate,omitempty"`
}

type Thanos

type Thanos struct {
	Disabled bool   `yaml:"disabled"`
	Version  string `yaml:"version"`
	// Must be either `client` or `obeservability`.
	Mode string `yaml:"mode,omitempty"`
	// Bucket to store metrics. Must be the same across all environments
	Bucket string `yaml:"bucket,omitempty"`
	// Only for observability mode. List of client sidecars in `<hostname>:<port>“ format
	ClientSidecars []string `yaml:"clientSidecars,omitempty"`
	// Only for observability mode. Disable compactor singleton if there are multiple observability clusters
	EnableCompactor bool      `yaml:"enableCompactor,omitempty"`
	E2E             ThanosE2E `yaml:"e2e,omitempty"`
}

type ThanosE2E

type ThanosE2E struct {
	Server string `yaml:"server,omitempty"`
}

type VM

type VM struct {
	Name   string `yaml:"name,omitempty"`
	Prefix string `yaml:"prefix,omitempty"`
	// Number of VM's to provision
	Count        int      `yaml:"count"`
	Template     string   `yaml:"template"`
	Cluster      string   `yaml:"cluster,omitempty"`
	Folder       string   `yaml:"folder,omitempty"`
	Datastore    string   `yaml:"datastore,omitempty"`
	ResourcePool string   `yaml:"resourcePool,omitempty"`
	CPUs         int32    `yaml:"cpu"`
	MemoryGB     int64    `yaml:"memory"`
	Network      []string `yaml:"networks,omitempty"`
	// Size in GB of the VM root volume
	DiskGB int `yaml:"disk"`
	// Tags to be applied to the VM
	Tags     map[string]string `yaml:"tags,omitempty"`
	Commands []string          `yaml:"commands,omitempty"`
	// A path to a konfigadm specification used for configuring the VM on creation.
	KonfigadmFile string `yaml:"konfigadm,omitempty"`
	IP            string `yaml:"-"`
}

VM captures the specifications of a virtual machine

type Vault

type Vault struct {
	Version string `yaml:"version"`
	// A VAULT_TOKEN to use when authenticating with Vault
	Token string `yaml:"token,omitempty"`
	// A map of PKI secret roles to create/update See [pki](https://www.vaultproject.io/api-docs/secret/pki/#createupdate-role)
	Roles         map[string]map[string]interface{} `yaml:"roles,omitempty"`
	Policies      map[string]VaultPolicy            `yaml:"policies,omitempty"`
	GroupMappings map[string][]string               `yaml:"groupMappings,omitempty"`
	// ExtraConfig is an escape hatch that allows writing to arbritrary vault paths
	ExtraConfig map[string]map[string]interface{} `yaml:"config,omitempty"`
	Disabled    bool                              `yaml:"disabled,omitempty"`
	AccessKey   string                            `yaml:"accessKey,omitempty"`
	SecretKey   string                            `yaml:"secretKey,omitempty"`
	// The AWS KMS ARN Id to use to unseal vault
	KmsKeyID string `yaml:"kmsKeyId,omitempty"`
	Region   string `yaml:"region,omitempty"`
	Consul   Consul `yaml:"consul,omitempty"`
}

type VaultClient

type VaultClient struct {
	// The address of a remote Vault server to use for signinig
	Address string `yaml:"address"`

	// The path to the PKI Role to use for signing ingress certificates e.g. /pki/role/ingress-ca
	Path string `yaml:"path"`

	// A VAULT_TOKEN to use when authenticating with Vault
	Token string `yaml:"token"`
}

type VaultPolicy

type VaultPolicy map[string]VaultPolicyPath

func (VaultPolicy) String

func (vaultPolicy VaultPolicy) String() string

type VaultPolicyPath

type VaultPolicyPath struct {
	Capabilities      []string            `yaml:"capabilities,omitempty"`
	DeniedParameters  map[string][]string `yaml:"denied_parameters,omitempty"`
	AllowedParameters map[string][]string `yaml:"allowed_parameters,omitempty"`
}

type Velero

type Velero struct {
	Disabled bool   `yaml:"disabled,omitempty"`
	Version  string `yaml:"version"`
	Schedule string `yaml:"schedule,omitempty"`
	Bucket   string `yaml:"bucket,omitempty"`
	Volumes  bool   `yaml:"volumes"`
}

type Versions

type Versions struct {
	Kubernetes       string            `yaml:"kubernetes,omitempty"`
	ContainerRuntime string            `yaml:"containerRuntime,omitempty"`
	Dependencies     map[string]string `yaml:"dependencies,omitempty"`
}

Jump to

Keyboard shortcuts

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