public

package
v1.31.0 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2024 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Metadata

type Metadata struct {
	// The name of the cluster. It will also be used as a prefix for all the other
	// resources created.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

func (*Metadata) UnmarshalJSON

func (j *Metadata) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type OnpremisesKfdV1Alpha2

type OnpremisesKfdV1Alpha2 struct {
	// ApiVersion corresponds to the JSON schema field "apiVersion".
	ApiVersion string `json:"apiVersion" yaml:"apiVersion" mapstructure:"apiVersion"`

	// Kind corresponds to the JSON schema field "kind".
	Kind OnpremisesKfdV1Alpha2Kind `json:"kind" yaml:"kind" mapstructure:"kind"`

	// Metadata corresponds to the JSON schema field "metadata".
	Metadata Metadata `json:"metadata" yaml:"metadata" mapstructure:"metadata"`

	// Spec corresponds to the JSON schema field "spec".
	Spec Spec `json:"spec" yaml:"spec" mapstructure:"spec"`
}

A KFD Cluster deployed on top of a set of existing VMs.

func (*OnpremisesKfdV1Alpha2) UnmarshalJSON

func (j *OnpremisesKfdV1Alpha2) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type OnpremisesKfdV1Alpha2Kind

type OnpremisesKfdV1Alpha2Kind string
const OnpremisesKfdV1Alpha2KindOnPremises OnpremisesKfdV1Alpha2Kind = "OnPremises"

func (*OnpremisesKfdV1Alpha2Kind) UnmarshalJSON

func (j *OnpremisesKfdV1Alpha2Kind) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Spec

type Spec struct {
	// Distribution corresponds to the JSON schema field "distribution".
	Distribution SpecDistribution `json:"distribution" yaml:"distribution" mapstructure:"distribution"`

	// Defines which KFD version will be installed and, in consequence, the Kubernetes
	// version used to create the cluster. It supports git tags and branches. Example:
	// `v1.30.1`.
	DistributionVersion string `json:"distributionVersion" yaml:"distributionVersion" mapstructure:"distributionVersion"`

	// Kubernetes corresponds to the JSON schema field "kubernetes".
	Kubernetes *SpecKubernetes `json:"kubernetes,omitempty" yaml:"kubernetes,omitempty" mapstructure:"kubernetes,omitempty"`

	// Plugins corresponds to the JSON schema field "plugins".
	Plugins *SpecPlugins `json:"plugins,omitempty" yaml:"plugins,omitempty" mapstructure:"plugins,omitempty"`
}

func (*Spec) UnmarshalJSON

func (j *Spec) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistribution

type SpecDistribution struct {
	// Common corresponds to the JSON schema field "common".
	Common *SpecDistributionCommon `json:"common,omitempty" yaml:"common,omitempty" mapstructure:"common,omitempty"`

	// CustomPatches corresponds to the JSON schema field "customPatches".
	CustomPatches *SpecDistributionCustompatches `json:"customPatches,omitempty" yaml:"customPatches,omitempty" mapstructure:"customPatches,omitempty"`

	// Modules corresponds to the JSON schema field "modules".
	Modules SpecDistributionModules `json:"modules" yaml:"modules" mapstructure:"modules"`
}

func (*SpecDistribution) UnmarshalJSON

func (j *SpecDistribution) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCommon

type SpecDistributionCommon struct {
	// EXPERIMENTAL FEATURE. This field defines whether Network Policies are provided
	// for core modules.
	NetworkPoliciesEnabled *bool `` /* 127-byte string literal not displayed */

	// The node selector to use to place the pods for all the KFD modules. Follows
	// Kubernetes selector format. Example: `node.kubernetes.io/role: infra`.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Provider corresponds to the JSON schema field "provider".
	Provider *SpecDistributionCommonProvider `json:"provider,omitempty" yaml:"provider,omitempty" mapstructure:"provider,omitempty"`

	// URL of the registry where to pull images from for the Distribution phase.
	// (Default is `registry.sighup.io/fury`).
	//
	// NOTE: If plugins are pulling from the default registry, the registry will be
	// replaced for the plugin too.
	Registry *string `json:"registry,omitempty" yaml:"registry,omitempty" mapstructure:"registry,omitempty"`

	// The relative path to the vendor directory, does not need to be changed.
	RelativeVendorPath *string `json:"relativeVendorPath,omitempty" yaml:"relativeVendorPath,omitempty" mapstructure:"relativeVendorPath,omitempty"`

	// An array with the tolerations that will be added to the pods for all the KFD
	// modules. Follows Kubernetes tolerations format. Example:
	//
	// “`yaml
	// - effect: NoSchedule
	//   key: node.kubernetes.io/role
	//   value: infra
	// “`
	Tolerations []TypesKubeToleration `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

Common configuration for all the distribution modules.

type SpecDistributionCommonProvider

type SpecDistributionCommonProvider struct {
	// The provider type. Don't set. FOR INTERNAL USE ONLY.
	Type string `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecDistributionCommonProvider) UnmarshalJSON

func (j *SpecDistributionCommonProvider) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCustomPatchesConfigMapGeneratorResource added in v1.26.6

type SpecDistributionCustomPatchesConfigMapGeneratorResource struct {
	// The behavior of the configmap
	Behavior *SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior `json:"behavior,omitempty" yaml:"behavior,omitempty" mapstructure:"behavior,omitempty"`

	// The envs of the configmap
	Envs []string `json:"envs,omitempty" yaml:"envs,omitempty" mapstructure:"envs,omitempty"`

	// The files of the configmap
	Files []string `json:"files,omitempty" yaml:"files,omitempty" mapstructure:"files,omitempty"`

	// The literals of the configmap
	Literals []string `json:"literals,omitempty" yaml:"literals,omitempty" mapstructure:"literals,omitempty"`

	// The name of the configmap
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The namespace of the configmap
	Namespace *string `json:"namespace,omitempty" yaml:"namespace,omitempty" mapstructure:"namespace,omitempty"`

	// Options corresponds to the JSON schema field "options".
	Options *SpecDistributionCustomPatchesConfigMapGeneratorResourceOptions `json:"options,omitempty" yaml:"options,omitempty" mapstructure:"options,omitempty"`
}

func (*SpecDistributionCustomPatchesConfigMapGeneratorResource) UnmarshalJSON added in v1.26.6

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior added in v1.26.6

type SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior string
const (
	SpecDistributionCustomPatchesConfigMapGeneratorResourceBehaviorCreate  SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior = "create"
	SpecDistributionCustomPatchesConfigMapGeneratorResourceBehaviorMerge   SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior = "merge"
	SpecDistributionCustomPatchesConfigMapGeneratorResourceBehaviorReplace SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior = "replace"
)

func (*SpecDistributionCustomPatchesConfigMapGeneratorResourceBehavior) UnmarshalJSON added in v1.26.6

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCustomPatchesConfigMapGeneratorResourceOptions added in v1.26.6

type SpecDistributionCustomPatchesConfigMapGeneratorResourceOptions struct {
	// The annotations of the configmap
	Annotations TypesKubeLabels `json:"annotations,omitempty" yaml:"annotations,omitempty" mapstructure:"annotations,omitempty"`

	// If true, the name suffix hash will be disabled
	DisableNameSuffixHash *bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty" mapstructure:"disableNameSuffixHash,omitempty"`

	// If true, the configmap will be immutable
	Immutable *bool `json:"immutable,omitempty" yaml:"immutable,omitempty" mapstructure:"immutable,omitempty"`

	// The labels of the configmap
	Labels TypesKubeLabels `json:"labels,omitempty" yaml:"labels,omitempty" mapstructure:"labels,omitempty"`
}

type SpecDistributionCustomPatchesImages added in v1.26.6

type SpecDistributionCustomPatchesImages []map[string]interface{}

Each entry should follow the format of Kustomize's images patch

type SpecDistributionCustomPatchesPatch

type SpecDistributionCustomPatchesPatch struct {
	// Options corresponds to the JSON schema field "options".
	Options *SpecDistributionCustomPatchesPatchOptions `json:"options,omitempty" yaml:"options,omitempty" mapstructure:"options,omitempty"`

	// The patch content
	Patch *string `json:"patch,omitempty" yaml:"patch,omitempty" mapstructure:"patch,omitempty"`

	// The path of the patch
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// Target corresponds to the JSON schema field "target".
	Target *SpecDistributionCustomPatchesPatchTarget `json:"target,omitempty" yaml:"target,omitempty" mapstructure:"target,omitempty"`
}

type SpecDistributionCustomPatchesPatchOptions

type SpecDistributionCustomPatchesPatchOptions struct {
	// If true, the kind change will be allowed
	AllowKindChange *bool `json:"allowKindChange,omitempty" yaml:"allowKindChange,omitempty" mapstructure:"allowKindChange,omitempty"`

	// If true, the name change will be allowed
	AllowNameChange *bool `json:"allowNameChange,omitempty" yaml:"allowNameChange,omitempty" mapstructure:"allowNameChange,omitempty"`
}

type SpecDistributionCustomPatchesPatchTarget

type SpecDistributionCustomPatchesPatchTarget struct {
	// The annotation selector of the target
	AnnotationSelector *string `json:"annotationSelector,omitempty" yaml:"annotationSelector,omitempty" mapstructure:"annotationSelector,omitempty"`

	// The group of the target
	Group *string `json:"group,omitempty" yaml:"group,omitempty" mapstructure:"group,omitempty"`

	// The kind of the target
	Kind *string `json:"kind,omitempty" yaml:"kind,omitempty" mapstructure:"kind,omitempty"`

	// The label selector of the target
	LabelSelector *string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty" mapstructure:"labelSelector,omitempty"`

	// The name of the target
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// The namespace of the target
	Namespace *string `json:"namespace,omitempty" yaml:"namespace,omitempty" mapstructure:"namespace,omitempty"`

	// The version of the target
	Version *string `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`
}

type SpecDistributionCustomPatchesPatches

type SpecDistributionCustomPatchesPatches []SpecDistributionCustomPatchesPatch

type SpecDistributionCustomPatchesPatchesStrategicMerge

type SpecDistributionCustomPatchesPatchesStrategicMerge []string

Each entry should be either a relative file path or an inline content resolving to a partial or complete resource definition

type SpecDistributionCustomPatchesSecretGeneratorResource added in v1.26.6

type SpecDistributionCustomPatchesSecretGeneratorResource struct {
	// The behavior of the secret
	Behavior *SpecDistributionCustomPatchesSecretGeneratorResourceBehavior `json:"behavior,omitempty" yaml:"behavior,omitempty" mapstructure:"behavior,omitempty"`

	// The envs of the secret
	Envs []string `json:"envs,omitempty" yaml:"envs,omitempty" mapstructure:"envs,omitempty"`

	// The files of the secret
	Files []string `json:"files,omitempty" yaml:"files,omitempty" mapstructure:"files,omitempty"`

	// The literals of the secret
	Literals []string `json:"literals,omitempty" yaml:"literals,omitempty" mapstructure:"literals,omitempty"`

	// The name of the secret
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The namespace of the secret
	Namespace *string `json:"namespace,omitempty" yaml:"namespace,omitempty" mapstructure:"namespace,omitempty"`

	// Options corresponds to the JSON schema field "options".
	Options *SpecDistributionCustomPatchesSecretGeneratorResourceOptions `json:"options,omitempty" yaml:"options,omitempty" mapstructure:"options,omitempty"`

	// The type of the secret
	Type *string `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`
}

func (*SpecDistributionCustomPatchesSecretGeneratorResource) UnmarshalJSON added in v1.26.6

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCustomPatchesSecretGeneratorResourceBehavior added in v1.26.6

type SpecDistributionCustomPatchesSecretGeneratorResourceBehavior string
const (
	SpecDistributionCustomPatchesSecretGeneratorResourceBehaviorCreate  SpecDistributionCustomPatchesSecretGeneratorResourceBehavior = "create"
	SpecDistributionCustomPatchesSecretGeneratorResourceBehaviorMerge   SpecDistributionCustomPatchesSecretGeneratorResourceBehavior = "merge"
	SpecDistributionCustomPatchesSecretGeneratorResourceBehaviorReplace SpecDistributionCustomPatchesSecretGeneratorResourceBehavior = "replace"
)

func (*SpecDistributionCustomPatchesSecretGeneratorResourceBehavior) UnmarshalJSON added in v1.26.6

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionCustomPatchesSecretGeneratorResourceOptions added in v1.26.6

type SpecDistributionCustomPatchesSecretGeneratorResourceOptions struct {
	// The annotations of the secret
	Annotations TypesKubeLabels `json:"annotations,omitempty" yaml:"annotations,omitempty" mapstructure:"annotations,omitempty"`

	// If true, the name suffix hash will be disabled
	DisableNameSuffixHash *bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty" mapstructure:"disableNameSuffixHash,omitempty"`

	// If true, the secret will be immutable
	Immutable *bool `json:"immutable,omitempty" yaml:"immutable,omitempty" mapstructure:"immutable,omitempty"`

	// The labels of the secret
	Labels TypesKubeLabels `json:"labels,omitempty" yaml:"labels,omitempty" mapstructure:"labels,omitempty"`
}

type SpecDistributionCustompatches added in v1.27.7

type SpecDistributionCustompatches struct {
	// ConfigMapGenerator corresponds to the JSON schema field "configMapGenerator".
	ConfigMapGenerator SpecDistributionCustomPatchesConfigMapGenerator `json:"configMapGenerator,omitempty" yaml:"configMapGenerator,omitempty" mapstructure:"configMapGenerator,omitempty"`

	// Images corresponds to the JSON schema field "images".
	Images SpecDistributionCustomPatchesImages `json:"images,omitempty" yaml:"images,omitempty" mapstructure:"images,omitempty"`

	// Patches corresponds to the JSON schema field "patches".
	Patches SpecDistributionCustomPatchesPatches `json:"patches,omitempty" yaml:"patches,omitempty" mapstructure:"patches,omitempty"`

	// PatchesStrategicMerge corresponds to the JSON schema field
	// "patchesStrategicMerge".
	PatchesStrategicMerge SpecDistributionCustomPatchesPatchesStrategicMerge `json:"patchesStrategicMerge,omitempty" yaml:"patchesStrategicMerge,omitempty" mapstructure:"patchesStrategicMerge,omitempty"`

	// SecretGenerator corresponds to the JSON schema field "secretGenerator".
	SecretGenerator SpecDistributionCustomPatchesSecretGenerator `json:"secretGenerator,omitempty" yaml:"secretGenerator,omitempty" mapstructure:"secretGenerator,omitempty"`
}

type SpecDistributionModules

type SpecDistributionModules struct {
	// Auth corresponds to the JSON schema field "auth".
	Auth *SpecDistributionModulesAuth `json:"auth,omitempty" yaml:"auth,omitempty" mapstructure:"auth,omitempty"`

	// Dr corresponds to the JSON schema field "dr".
	Dr SpecDistributionModulesDr `json:"dr" yaml:"dr" mapstructure:"dr"`

	// Ingress corresponds to the JSON schema field "ingress".
	Ingress SpecDistributionModulesIngress `json:"ingress" yaml:"ingress" mapstructure:"ingress"`

	// Logging corresponds to the JSON schema field "logging".
	Logging SpecDistributionModulesLogging `json:"logging" yaml:"logging" mapstructure:"logging"`

	// Monitoring corresponds to the JSON schema field "monitoring".
	Monitoring *SpecDistributionModulesMonitoring `json:"monitoring,omitempty" yaml:"monitoring,omitempty" mapstructure:"monitoring,omitempty"`

	// Networking corresponds to the JSON schema field "networking".
	Networking *SpecDistributionModulesNetworking `json:"networking,omitempty" yaml:"networking,omitempty" mapstructure:"networking,omitempty"`

	// Policy corresponds to the JSON schema field "policy".
	Policy SpecDistributionModulesPolicy `json:"policy" yaml:"policy" mapstructure:"policy"`

	// Tracing corresponds to the JSON schema field "tracing".
	Tracing *SpecDistributionModulesTracing `json:"tracing,omitempty" yaml:"tracing,omitempty" mapstructure:"tracing,omitempty"`
}

func (*SpecDistributionModules) UnmarshalJSON

func (j *SpecDistributionModules) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuth

type SpecDistributionModulesAuth struct {
	// The base domain for the ingresses created by the Auth module (Gangplank,
	// Pomerium, Dex). Notice that when the ingress module type is `dual`, these will
	// use the `external` ingress class.
	BaseDomain *string `json:"baseDomain,omitempty" yaml:"baseDomain,omitempty" mapstructure:"baseDomain,omitempty"`

	// Dex corresponds to the JSON schema field "dex".
	Dex *SpecDistributionModulesAuthDex `json:"dex,omitempty" yaml:"dex,omitempty" mapstructure:"dex,omitempty"`

	// OidcKubernetesAuth corresponds to the JSON schema field "oidcKubernetesAuth".
	OidcKubernetesAuth *SpecDistributionModulesAuthOIDCKubernetesAuth `json:"oidcKubernetesAuth,omitempty" yaml:"oidcKubernetesAuth,omitempty" mapstructure:"oidcKubernetesAuth,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *SpecDistributionModulesAuthOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Pomerium corresponds to the JSON schema field "pomerium".
	Pomerium SpecDistributionModulesAuthPomerium `json:"pomerium,omitempty" yaml:"pomerium,omitempty" mapstructure:"pomerium,omitempty"`

	// Provider corresponds to the JSON schema field "provider".
	Provider SpecDistributionModulesAuthProvider `json:"provider" yaml:"provider" mapstructure:"provider"`
}

Configuration for the Auth module.

func (*SpecDistributionModulesAuth) UnmarshalJSON

func (j *SpecDistributionModulesAuth) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthDex

type SpecDistributionModulesAuthDex struct {
	// Additional static clients defitions that will be added to the default clients
	// included with the distribution in Dex's configuration. Example:
	//
	// “`yaml
	// additionalStaticClients:
	//   - id: my-custom-client
	//     name: "A custom additional static client"
	//     redirectURIs:
	//       - "https://myapp.tld/redirect"
	//       - "https://alias.tld/oidc-callback"
	//     secret: supersecretpassword
	// “`
	// Reference: https://dexidp.io/docs/connectors/local/
	AdditionalStaticClients []interface{} `` /* 130-byte string literal not displayed */

	// A list with each item defining a Dex connector. Follows Dex connectors
	// configuration format: https://dexidp.io/docs/connectors/
	Connectors []interface{} `json:"connectors" yaml:"connectors" mapstructure:"connectors"`

	// Expiry corresponds to the JSON schema field "expiry".
	Expiry *SpecDistributionModulesAuthDexExpiry `json:"expiry,omitempty" yaml:"expiry,omitempty" mapstructure:"expiry,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

Configuration for the Dex package.

func (*SpecDistributionModulesAuthDex) UnmarshalJSON

func (j *SpecDistributionModulesAuthDex) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthDexExpiry added in v1.27.8

type SpecDistributionModulesAuthDexExpiry struct {
	// Dex ID tokens expiration time duration (default 24h).
	IdTokens *string `json:"idTokens,omitempty" yaml:"idTokens,omitempty" mapstructure:"idTokens,omitempty"`

	// Dex signing key expiration time duration (default 6h).
	SigningKeys *string `json:"signingKeys,omitempty" yaml:"signingKeys,omitempty" mapstructure:"signingKeys,omitempty"`
}

type SpecDistributionModulesAuthOIDCKubernetesAuth

type SpecDistributionModulesAuthOIDCKubernetesAuth struct {
	// The client ID that the Kubernetes API will use to authenticate against the OIDC
	// provider (Dex).
	ClientID *string `json:"clientID,omitempty" yaml:"clientID,omitempty" mapstructure:"clientID,omitempty"`

	// The client secret that the Kubernetes API will use to authenticate against the
	// OIDC provider (Dex).
	ClientSecret *string `json:"clientSecret,omitempty" yaml:"clientSecret,omitempty" mapstructure:"clientSecret,omitempty"`

	// DEPRECATED. Defaults to `email`.
	EmailClaim *string `json:"emailClaim,omitempty" yaml:"emailClaim,omitempty" mapstructure:"emailClaim,omitempty"`

	// If true, components needed for interacting with the Kubernetes API with OIDC
	// authentication (Gangplank, Dex) be deployed and configued.
	Enabled bool `json:"enabled" yaml:"enabled" mapstructure:"enabled"`

	// The namespace to set in the context of the kubeconfig file generated by
	// Gangplank. Defaults to `default`.
	Namespace *string `json:"namespace,omitempty" yaml:"namespace,omitempty" mapstructure:"namespace,omitempty"`

	// Set to true to remove the CA from the kubeconfig file generated by Gangplank.
	RemoveCAFromKubeconfig *bool `` /* 127-byte string literal not displayed */

	// Used to specify the scope of the requested Oauth authorization by Gangplank.
	// Defaults to: `["openid", "profile", "email", "offline_access", "groups"]`
	Scopes []string `json:"scopes,omitempty" yaml:"scopes,omitempty" mapstructure:"scopes,omitempty"`

	// The Key to use for the sessions in Gangplank. Must be different between
	// different instances of Gangplank.
	SessionSecurityKey *string `json:"sessionSecurityKey,omitempty" yaml:"sessionSecurityKey,omitempty" mapstructure:"sessionSecurityKey,omitempty"`

	// The JWT claim to use as the username. This is used in Gangplank's UI. This is
	// combined with the clusterName for the user portion of the kubeconfig. Defaults
	// to `nickname`.
	UsernameClaim *string `json:"usernameClaim,omitempty" yaml:"usernameClaim,omitempty" mapstructure:"usernameClaim,omitempty"`
}

func (*SpecDistributionModulesAuthOIDCKubernetesAuth) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthOverrides

type SpecDistributionModulesAuthOverrides struct {
	// Override the definition of the Auth module ingresses.
	Ingresses *SpecDistributionModulesAuthOverridesIngresses `json:"ingresses,omitempty" yaml:"ingresses,omitempty" mapstructure:"ingresses,omitempty"`

	// Set to override the node selector used to place the pods of the Auth module.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Set to override the tolerations that will be added to the pods of the Auth
	// module.
	Tolerations []TypesKubeToleration `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

Override the common configuration with a particular configuration for the Auth module.

type SpecDistributionModulesAuthOverridesIngress

type SpecDistributionModulesAuthOverridesIngress struct {
	// Use this host for the ingress instead of the default one.
	Host string `json:"host" yaml:"host" mapstructure:"host"`

	// Use this ingress class for the ingress instead of the default one.
	IngressClass string `json:"ingressClass" yaml:"ingressClass" mapstructure:"ingressClass"`
}

func (*SpecDistributionModulesAuthOverridesIngress) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthOverridesIngresses

type SpecDistributionModulesAuthOverridesIngresses struct {
	// Dex corresponds to the JSON schema field "dex".
	Dex *SpecDistributionModulesAuthOverridesIngress `json:"dex,omitempty" yaml:"dex,omitempty" mapstructure:"dex,omitempty"`

	// Gangplank corresponds to the JSON schema field "gangplank".
	Gangplank *SpecDistributionModulesAuthOverridesIngress `json:"gangplank,omitempty" yaml:"gangplank,omitempty" mapstructure:"gangplank,omitempty"`
}

Override the definition of the Auth module ingresses.

type SpecDistributionModulesAuthPomerium

type SpecDistributionModulesAuthPomerium interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicy added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicy struct {
	// GatekeeperPolicyManager corresponds to the JSON schema field
	// "gatekeeperPolicyManager".
	GatekeeperPolicyManager []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyGatekeeperPolicyManagerElem `` /* 130-byte string literal not displayed */

	// HubbleUi corresponds to the JSON schema field "hubbleUi".
	HubbleUi []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyHubbleUiElem `json:"hubbleUi,omitempty" yaml:"hubbleUi,omitempty" mapstructure:"hubbleUi,omitempty"`

	// IngressNgnixForecastle corresponds to the JSON schema field
	// "ingressNgnixForecastle".
	IngressNgnixForecastle []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyIngressNgnixForecastleElem `` /* 127-byte string literal not displayed */

	// LoggingMinioConsole corresponds to the JSON schema field "loggingMinioConsole".
	LoggingMinioConsole []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingMinioConsoleElem `json:"loggingMinioConsole,omitempty" yaml:"loggingMinioConsole,omitempty" mapstructure:"loggingMinioConsole,omitempty"`

	// LoggingOpensearchDashboards corresponds to the JSON schema field
	// "loggingOpensearchDashboards".
	LoggingOpensearchDashboards []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingOpensearchDashboardsElem `` /* 142-byte string literal not displayed */

	// MonitoringAlertmanager corresponds to the JSON schema field
	// "monitoringAlertmanager".
	MonitoringAlertmanager []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringAlertmanagerElem `` /* 127-byte string literal not displayed */

	// MonitoringGrafana corresponds to the JSON schema field "monitoringGrafana".
	MonitoringGrafana []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringGrafanaElem `json:"monitoringGrafana,omitempty" yaml:"monitoringGrafana,omitempty" mapstructure:"monitoringGrafana,omitempty"`

	// MonitoringMinioConsole corresponds to the JSON schema field
	// "monitoringMinioConsole".
	MonitoringMinioConsole []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringMinioConsoleElem `` /* 127-byte string literal not displayed */

	// MonitoringPrometheus corresponds to the JSON schema field
	// "monitoringPrometheus".
	MonitoringPrometheus []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringPrometheusElem `json:"monitoringPrometheus,omitempty" yaml:"monitoringPrometheus,omitempty" mapstructure:"monitoringPrometheus,omitempty"`

	// TracingMinioConsole corresponds to the JSON schema field "tracingMinioConsole".
	TracingMinioConsole []SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyTracingMinioConsoleElem `json:"tracingMinioConsole,omitempty" yaml:"tracingMinioConsole,omitempty" mapstructure:"tracingMinioConsole,omitempty"`
}

override default routes for KFD components

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyGatekeeperPolicyManagerElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyGatekeeperPolicyManagerElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyHubbleUiElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyHubbleUiElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyIngressNgnixForecastleElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyIngressNgnixForecastleElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingMinioConsoleElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingMinioConsoleElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingOpensearchDashboardsElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyLoggingOpensearchDashboardsElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringAlertmanagerElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringAlertmanagerElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringGrafanaElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringGrafanaElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringMinioConsoleElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringMinioConsoleElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringPrometheusElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyMonitoringPrometheusElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyTracingMinioConsoleElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumDefaultRoutesPolicyTracingMinioConsoleElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumRoutesElem added in v1.27.7

type SpecDistributionModulesAuthPomeriumRoutesElem map[string]interface{}

type SpecDistributionModulesAuthPomeriumSecrets

type SpecDistributionModulesAuthPomeriumSecrets struct {
	// Cookie Secret is the secret used to encrypt and sign session cookies.
	//
	// To generate a random key, run the following command: `head -c32 /dev/urandom |
	// base64`
	COOKIESECRET string `json:"COOKIE_SECRET" yaml:"COOKIE_SECRET" mapstructure:"COOKIE_SECRET"`

	// Identity Provider Client Secret is the OAuth 2.0 Secret Identifier. When auth
	// type is SSO, this value will be the secret used to authenticate Pomerium with
	// Dex, **use a strong random value**.
	IDPCLIENTSECRET string `json:"IDP_CLIENT_SECRET" yaml:"IDP_CLIENT_SECRET" mapstructure:"IDP_CLIENT_SECRET"`

	// Shared Secret is the base64-encoded, 256-bit key used to mutually authenticate
	// requests between Pomerium services. It's critical that secret keys are random,
	// and stored safely.
	//
	// To generate a key, run the following command: `head -c32 /dev/urandom | base64`
	SHAREDSECRET string `json:"SHARED_SECRET" yaml:"SHARED_SECRET" mapstructure:"SHARED_SECRET"`

	// Signing Key is the base64 representation of one or more PEM-encoded private
	// keys used to sign a user's attestation JWT, which can be consumed by upstream
	// applications to pass along identifying user information like username, id, and
	// groups.
	//
	// To generates an P-256 (ES256) signing key:
	//
	// “`bash
	// openssl ecparam  -genkey  -name prime256v1  -noout  -out ec_private.pem
	// # careful! this will output your private key in terminal
	// cat ec_private.pem | base64
	// “`
	SIGNINGKEY string `json:"SIGNING_KEY" yaml:"SIGNING_KEY" mapstructure:"SIGNING_KEY"`
}

Pomerium needs some user-provided secrets to be fully configured. These secrets should be unique between clusters.

func (*SpecDistributionModulesAuthPomeriumSecrets) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthPomerium_2 added in v1.27.7

type SpecDistributionModulesAuthPomerium_2 struct {
	// DefaultRoutesPolicy corresponds to the JSON schema field "defaultRoutesPolicy".
	DefaultRoutesPolicy *SpecDistributionModulesAuthPomeriumDefaultRoutesPolicy `json:"defaultRoutesPolicy,omitempty" yaml:"defaultRoutesPolicy,omitempty" mapstructure:"defaultRoutesPolicy,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides_1 `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// DEPRECATED: Use defaultRoutesPolicy and/or routes
	Policy *string `json:"policy,omitempty" yaml:"policy,omitempty" mapstructure:"policy,omitempty"`

	// Additional routes configuration for Pomerium. Follows Pomerium's route format:
	// https://www.pomerium.com/docs/reference/routes
	Routes []SpecDistributionModulesAuthPomeriumRoutesElem `json:"routes,omitempty" yaml:"routes,omitempty" mapstructure:"routes,omitempty"`

	// Secrets corresponds to the JSON schema field "secrets".
	Secrets SpecDistributionModulesAuthPomeriumSecrets `json:"secrets" yaml:"secrets" mapstructure:"secrets"`
}

Configuration for Pomerium, an identity-aware reverse proxy used for SSO.

func (*SpecDistributionModulesAuthPomerium_2) UnmarshalJSON added in v1.27.7

func (j *SpecDistributionModulesAuthPomerium_2) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthProvider

type SpecDistributionModulesAuthProvider struct {
	// BasicAuth corresponds to the JSON schema field "basicAuth".
	BasicAuth *SpecDistributionModulesAuthProviderBasicAuth `json:"basicAuth,omitempty" yaml:"basicAuth,omitempty" mapstructure:"basicAuth,omitempty"`

	// The type of the Auth provider, options are:
	// - `none`: will disable authentication in the infrastructural ingresses.
	// - `sso`: will protect the infrastructural ingresses with Pomerium and Dex (SSO)
	// and require authentication before accessing them.
	// - `basicAuth`: will protect the infrastructural ingresses with HTTP basic auth
	// (username and password) authentication.
	//
	// Default is `none`.
	Type SpecDistributionModulesAuthProviderType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecDistributionModulesAuthProvider) UnmarshalJSON

func (j *SpecDistributionModulesAuthProvider) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthProviderBasicAuth

type SpecDistributionModulesAuthProviderBasicAuth struct {
	// The password for logging in with the HTTP basic authentication.
	Password string `json:"password" yaml:"password" mapstructure:"password"`

	// The username for logging in with the HTTP basic authentication.
	Username string `json:"username" yaml:"username" mapstructure:"username"`
}

Configuration for the HTTP Basic Auth provider.

func (*SpecDistributionModulesAuthProviderBasicAuth) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesAuthProviderType

type SpecDistributionModulesAuthProviderType string
const (
	SpecDistributionModulesAuthProviderTypeBasicAuth SpecDistributionModulesAuthProviderType = "basicAuth"
	SpecDistributionModulesAuthProviderTypeNone      SpecDistributionModulesAuthProviderType = "none"
	SpecDistributionModulesAuthProviderTypeSso       SpecDistributionModulesAuthProviderType = "sso"
)

func (*SpecDistributionModulesAuthProviderType) UnmarshalJSON

func (j *SpecDistributionModulesAuthProviderType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDr

type SpecDistributionModulesDr struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// The type of the Disaster Recovery, must be `none` or `on-premises`. `none`
	// disables the module and `on-premises` will install Velero and an optional MinIO
	// deployment.
	//
	// Default is `none`.
	Type SpecDistributionModulesDrType `json:"type" yaml:"type" mapstructure:"type"`

	// Velero corresponds to the JSON schema field "velero".
	Velero *SpecDistributionModulesDrVelero `json:"velero,omitempty" yaml:"velero,omitempty" mapstructure:"velero,omitempty"`
}

Configuration for the Disaster Recovery module.

func (*SpecDistributionModulesDr) UnmarshalJSON

func (j *SpecDistributionModulesDr) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDrType

type SpecDistributionModulesDrType string
const (
	SpecDistributionModulesDrTypeNone       SpecDistributionModulesDrType = "none"
	SpecDistributionModulesDrTypeOnPremises SpecDistributionModulesDrType = "on-premises"
)

func (*SpecDistributionModulesDrType) UnmarshalJSON

func (j *SpecDistributionModulesDrType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDrVelero

type SpecDistributionModulesDrVelero struct {
	// The storage backend type for Velero. `minio` will use an in-cluster MinIO
	// deployment for object storage, `externalEndpoint` can be used to point to an
	// external S3-compatible object storage instead of deploying an in-cluster MinIO.
	Backend *SpecDistributionModulesDrVeleroBackend `json:"backend,omitempty" yaml:"backend,omitempty" mapstructure:"backend,omitempty"`

	// Configuration for Velero's external storage backend.
	ExternalEndpoint *SpecDistributionModulesDrVeleroExternalEndpoint `json:"externalEndpoint,omitempty" yaml:"externalEndpoint,omitempty" mapstructure:"externalEndpoint,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Configuration for Velero's backup schedules.
	Schedules *SpecDistributionModulesDrVeleroSchedules `json:"schedules,omitempty" yaml:"schedules,omitempty" mapstructure:"schedules,omitempty"`

	// Configuration for the additional snapshotController component installation.
	SnapshotController *SpecDistributionModulesDrVeleroSnapshotController `json:"snapshotController,omitempty" yaml:"snapshotController,omitempty" mapstructure:"snapshotController,omitempty"`
}

Configuration for the Velero package.

type SpecDistributionModulesDrVeleroBackend added in v1.25.10

type SpecDistributionModulesDrVeleroBackend string
const (
	SpecDistributionModulesDrVeleroBackendExternalEndpoint SpecDistributionModulesDrVeleroBackend = "externalEndpoint"
	SpecDistributionModulesDrVeleroBackendMinio            SpecDistributionModulesDrVeleroBackend = "minio"
)

func (*SpecDistributionModulesDrVeleroBackend) UnmarshalJSON added in v1.25.10

func (j *SpecDistributionModulesDrVeleroBackend) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDrVeleroExternalEndpoint added in v1.25.10

type SpecDistributionModulesDrVeleroExternalEndpoint struct {
	// The access key ID (username) for the external S3-compatible bucket.
	AccessKeyId *string `json:"accessKeyId,omitempty" yaml:"accessKeyId,omitempty" mapstructure:"accessKeyId,omitempty"`

	// The bucket name of the external S3-compatible object storage.
	BucketName *string `json:"bucketName,omitempty" yaml:"bucketName,omitempty" mapstructure:"bucketName,omitempty"`

	// External S3-compatible endpoint for Velero's storage.
	Endpoint *string `json:"endpoint,omitempty" yaml:"endpoint,omitempty" mapstructure:"endpoint,omitempty"`

	// If true, will use HTTP as protocol instead of HTTPS.
	Insecure *bool `json:"insecure,omitempty" yaml:"insecure,omitempty" mapstructure:"insecure,omitempty"`

	// The secret access key (password) for the external S3-compatible bucket.
	SecretAccessKey *string `json:"secretAccessKey,omitempty" yaml:"secretAccessKey,omitempty" mapstructure:"secretAccessKey,omitempty"`
}

Configuration for Velero's external storage backend.

type SpecDistributionModulesDrVeleroSchedules added in v1.28.5

type SpecDistributionModulesDrVeleroSchedules struct {
	// Configuration for Velero schedules.
	Definitions *SpecDistributionModulesDrVeleroSchedulesDefinitions `json:"definitions,omitempty" yaml:"definitions,omitempty" mapstructure:"definitions,omitempty"`

	// Whether to install or not the default `manifests` and `full` backups schedules.
	// Default is `true`.
	Install *bool `json:"install,omitempty" yaml:"install,omitempty" mapstructure:"install,omitempty"`
}

Configuration for Velero's backup schedules.

type SpecDistributionModulesDrVeleroSchedulesDefinitions added in v1.28.5

type SpecDistributionModulesDrVeleroSchedulesDefinitions struct {
	// Configuration for Velero's manifests backup schedule.
	Full *SpecDistributionModulesDrVeleroSchedulesDefinitionsFull `json:"full,omitempty" yaml:"full,omitempty" mapstructure:"full,omitempty"`

	// Configuration for Velero's manifests backup schedule.
	Manifests *SpecDistributionModulesDrVeleroSchedulesDefinitionsManifests `json:"manifests,omitempty" yaml:"manifests,omitempty" mapstructure:"manifests,omitempty"`
}

Configuration for Velero schedules.

type SpecDistributionModulesDrVeleroSchedulesDefinitionsFull added in v1.28.5

type SpecDistributionModulesDrVeleroSchedulesDefinitionsFull struct {
	// The cron expression for the `full` backup schedule (default `0 1 * * *`).
	Schedule *string `json:"schedule,omitempty" yaml:"schedule,omitempty" mapstructure:"schedule,omitempty"`

	// EXPERIMENTAL (if you do more than one backups, the following backups after the
	// first are not automatically restorable, see
	// https://github.com/vmware-tanzu/velero/issues/7057#issuecomment-2466815898 for
	// the manual restore solution): SnapshotMoveData specifies whether snapshot data
	// should be moved. Velero will create a new volume from the snapshot and upload
	// the content to the storageLocation.
	SnapshotMoveData *bool `json:"snapshotMoveData,omitempty" yaml:"snapshotMoveData,omitempty" mapstructure:"snapshotMoveData,omitempty"`

	// The Time To Live (TTL) of the backups created by the backup schedules (default
	// `720h0m0s`, 30 days). Notice that changing this value will affect only newly
	// created backups, prior backups will keep the old TTL.
	Ttl *string `json:"ttl,omitempty" yaml:"ttl,omitempty" mapstructure:"ttl,omitempty"`
}

Configuration for Velero's manifests backup schedule.

type SpecDistributionModulesDrVeleroSchedulesDefinitionsManifests added in v1.28.5

type SpecDistributionModulesDrVeleroSchedulesDefinitionsManifests struct {
	// The cron expression for the `manifests` backup schedule (default `*/15 * * *
	// *`).
	Schedule *string `json:"schedule,omitempty" yaml:"schedule,omitempty" mapstructure:"schedule,omitempty"`

	// The Time To Live (TTL) of the backups created by the backup schedules (default
	// `720h0m0s`, 30 days). Notice that changing this value will affect only newly
	// created backups, prior backups will keep the old TTL.
	Ttl *string `json:"ttl,omitempty" yaml:"ttl,omitempty" mapstructure:"ttl,omitempty"`
}

Configuration for Velero's manifests backup schedule.

type SpecDistributionModulesDrVeleroSnapshotController added in v1.28.5

type SpecDistributionModulesDrVeleroSnapshotController struct {
	// Whether to install or not the snapshotController component in the cluster.
	// Before enabling this field, check if your CSI driver does not have
	// snapshotController built-in.
	Install *bool `json:"install,omitempty" yaml:"install,omitempty" mapstructure:"install,omitempty"`
}

Configuration for the additional snapshotController component installation.

type SpecDistributionModulesIngress

type SpecDistributionModulesIngress struct {
	// The base domain used for all the KFD infrastructural ingresses. If using the
	// nginx `dual` type, this value should be the same as the domain associated with
	// the `internal` ingress class.
	BaseDomain string `json:"baseDomain" yaml:"baseDomain" mapstructure:"baseDomain"`

	// Configuration for the cert-manager package. Required even if
	// `ingress.nginx.type` is `none`, cert-manager is used for managing other
	// certificates in the cluster besides the TLS termination certificates for the
	// ingresses.
	CertManager *SpecDistributionModulesIngressCertManager `json:"certManager,omitempty" yaml:"certManager,omitempty" mapstructure:"certManager,omitempty"`

	// Forecastle corresponds to the JSON schema field "forecastle".
	Forecastle *SpecDistributionModulesIngressForecastle `json:"forecastle,omitempty" yaml:"forecastle,omitempty" mapstructure:"forecastle,omitempty"`

	// If corresponds to the JSON schema field "if".
	If interface{} `json:"if,omitempty" yaml:"if,omitempty" mapstructure:"if,omitempty"`

	// Configurations for the Ingress nginx controller package.
	Nginx SpecDistributionModulesIngressNginx `json:"nginx" yaml:"nginx" mapstructure:"nginx"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *SpecDistributionModulesIngressOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Then corresponds to the JSON schema field "then".
	Then interface{} `json:"then,omitempty" yaml:"then,omitempty" mapstructure:"then,omitempty"`
}

func (*SpecDistributionModulesIngress) UnmarshalJSON

func (j *SpecDistributionModulesIngress) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressCertManager

type SpecDistributionModulesIngressCertManager struct {
	// ClusterIssuer corresponds to the JSON schema field "clusterIssuer".
	ClusterIssuer SpecDistributionModulesIngressCertManagerClusterIssuer `json:"clusterIssuer" yaml:"clusterIssuer" mapstructure:"clusterIssuer"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

Configuration for the cert-manager package. Required even if `ingress.nginx.type` is `none`, cert-manager is used for managing other certificates in the cluster besides the TLS termination certificates for the ingresses.

func (*SpecDistributionModulesIngressCertManager) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressCertManagerClusterIssuer

type SpecDistributionModulesIngressCertManagerClusterIssuer struct {
	// The email address to use during the certificate issuing process.
	Email string `json:"email" yaml:"email" mapstructure:"email"`

	// The name of the clusterIssuer.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The list of challenge solvers to use instead of the default one for the
	// `http01` challenge. Check [cert manager's
	// documentation](https://cert-manager.io/docs/configuration/acme/#adding-multiple-solver-types)
	// for examples for this field.
	Solvers []interface{} `json:"solvers,omitempty" yaml:"solvers,omitempty" mapstructure:"solvers,omitempty"`

	// The type of the clusterIssuer. Only `http01` challenge is supported for
	// on-premises clusters. See solvers for arbitrary configurations.
	Type *SpecDistributionModulesIngressCertManagerClusterIssuerType `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`
}

Configuration for the cert-manager's ACME clusterIssuer used to request certificates from Let's Encrypt.

func (*SpecDistributionModulesIngressCertManagerClusterIssuer) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressCertManagerClusterIssuerType

type SpecDistributionModulesIngressCertManagerClusterIssuerType string
const SpecDistributionModulesIngressCertManagerClusterIssuerTypeHttp01 SpecDistributionModulesIngressCertManagerClusterIssuerType = "http01"

func (*SpecDistributionModulesIngressCertManagerClusterIssuerType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressForecastle

type SpecDistributionModulesIngressForecastle struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

type SpecDistributionModulesIngressNginx

type SpecDistributionModulesIngressNginx struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Tls corresponds to the JSON schema field "tls".
	Tls *SpecDistributionModulesIngressNginxTLS `json:"tls,omitempty" yaml:"tls,omitempty" mapstructure:"tls,omitempty"`

	// The type of the Ingress nginx controller, options are:
	// - `none`: no ingress controller will be installed and no infrastructural
	// ingresses will be created.
	// - `single`: a single ingress controller with ingress class `nginx` will be
	// installed to manage all the ingress resources, infrastructural ingresses will
	// be created.
	// - `dual`: two independent ingress controllers will be installed, one for the
	// `internal` ingress class intended for private ingresses and one for the
	// `external` ingress class intended for public ingresses. KFD infrastructural
	// ingresses wil use the `internal` ingress class when using the dual type.
	//
	// Default is `single`.
	Type SpecDistributionModulesIngressNginxType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecDistributionModulesIngressNginx) UnmarshalJSON

func (j *SpecDistributionModulesIngressNginx) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressNginxTLS

type SpecDistributionModulesIngressNginxTLS struct {
	// The provider of the TLS certificates for the ingresses, one of: `none`,
	// `certManager`, or `secret`.
	Provider SpecDistributionModulesIngressNginxTLSProvider `json:"provider" yaml:"provider" mapstructure:"provider"`

	// Secret corresponds to the JSON schema field "secret".
	Secret *SpecDistributionModulesIngressNginxTLSSecret `json:"secret,omitempty" yaml:"secret,omitempty" mapstructure:"secret,omitempty"`
}

func (*SpecDistributionModulesIngressNginxTLS) UnmarshalJSON

func (j *SpecDistributionModulesIngressNginxTLS) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressNginxTLSProvider

type SpecDistributionModulesIngressNginxTLSProvider string
const (
	SpecDistributionModulesIngressNginxTLSProviderCertManager SpecDistributionModulesIngressNginxTLSProvider = "certManager"
	SpecDistributionModulesIngressNginxTLSProviderNone        SpecDistributionModulesIngressNginxTLSProvider = "none"
	SpecDistributionModulesIngressNginxTLSProviderSecret      SpecDistributionModulesIngressNginxTLSProvider = "secret"
)

func (*SpecDistributionModulesIngressNginxTLSProvider) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressNginxTLSSecret

type SpecDistributionModulesIngressNginxTLSSecret struct {
	// The Certificate Authority certificate file's content. You can use the
	// `"{file://<path>}"` notation to get the content from a file.
	Ca string `json:"ca" yaml:"ca" mapstructure:"ca"`

	// The certificate file's content. You can use the `"{file://<path>}"` notation to
	// get the content from a file.
	Cert string `json:"cert" yaml:"cert" mapstructure:"cert"`

	// The signing key file's content. You can use the `"{file://<path>}"` notation to
	// get the content from a file.
	Key string `json:"key" yaml:"key" mapstructure:"key"`
}

Kubernetes TLS secret for the ingresses TLS certificate.

func (*SpecDistributionModulesIngressNginxTLSSecret) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressNginxType

type SpecDistributionModulesIngressNginxType string
const (
	SpecDistributionModulesIngressNginxTypeDual   SpecDistributionModulesIngressNginxType = "dual"
	SpecDistributionModulesIngressNginxTypeNone   SpecDistributionModulesIngressNginxType = "none"
	SpecDistributionModulesIngressNginxTypeSingle SpecDistributionModulesIngressNginxType = "single"
)

func (*SpecDistributionModulesIngressNginxType) UnmarshalJSON

func (j *SpecDistributionModulesIngressNginxType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressOverrides

type SpecDistributionModulesIngressOverrides struct {
	// Ingresses corresponds to the JSON schema field "ingresses".
	Ingresses *SpecDistributionModulesIngressOverridesIngresses `json:"ingresses,omitempty" yaml:"ingresses,omitempty" mapstructure:"ingresses,omitempty"`

	// Set to override the node selector used to place the pods of the Ingress module.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Set to override the tolerations that will be added to the pods of the Ingress
	// module.
	Tolerations []TypesKubeToleration `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

Override the common configuration with a particular configuration for the Ingress module.

type SpecDistributionModulesIngressOverridesIngresses

type SpecDistributionModulesIngressOverridesIngresses struct {
	// Forecastle corresponds to the JSON schema field "forecastle".
	Forecastle *TypesFuryModuleOverridesIngress `json:"forecastle,omitempty" yaml:"forecastle,omitempty" mapstructure:"forecastle,omitempty"`
}

type SpecDistributionModulesLogging

type SpecDistributionModulesLogging struct {
	// Cerebro corresponds to the JSON schema field "cerebro".
	Cerebro *SpecDistributionModulesLoggingCerebro `json:"cerebro,omitempty" yaml:"cerebro,omitempty" mapstructure:"cerebro,omitempty"`

	// CustomOutputs corresponds to the JSON schema field "customOutputs".
	CustomOutputs *SpecDistributionModulesLoggingCustomOutputs `json:"customOutputs,omitempty" yaml:"customOutputs,omitempty" mapstructure:"customOutputs,omitempty"`

	// Loki corresponds to the JSON schema field "loki".
	Loki *SpecDistributionModulesLoggingLoki `json:"loki,omitempty" yaml:"loki,omitempty" mapstructure:"loki,omitempty"`

	// Minio corresponds to the JSON schema field "minio".
	Minio *SpecDistributionModulesLoggingMinio `json:"minio,omitempty" yaml:"minio,omitempty" mapstructure:"minio,omitempty"`

	// Opensearch corresponds to the JSON schema field "opensearch".
	Opensearch *SpecDistributionModulesLoggingOpensearch `json:"opensearch,omitempty" yaml:"opensearch,omitempty" mapstructure:"opensearch,omitempty"`

	// Operator corresponds to the JSON schema field "operator".
	Operator *SpecDistributionModulesLoggingOperator `json:"operator,omitempty" yaml:"operator,omitempty" mapstructure:"operator,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Selects the logging stack. Options are:
	// - `none`: will disable the centralized logging.
	// - `opensearch`: will deploy and configure the Logging Operator and an
	// OpenSearch cluster (can be single or triple for HA) where the logs will be
	// stored.
	// - `loki`: will use a distributed Grafana Loki instead of OpenSearch for
	// storage.
	// - `customOuputs`: the Logging Operator will be deployed and installed but
	// without in-cluster storage, you will have to create the needed Outputs and
	// ClusterOutputs to ship the logs to your desired storage.
	//
	// Default is `opensearch`.
	Type SpecDistributionModulesLoggingType `json:"type" yaml:"type" mapstructure:"type"`
}

Configuration for the Logging module.

func (*SpecDistributionModulesLogging) UnmarshalJSON

func (j *SpecDistributionModulesLogging) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingCerebro

type SpecDistributionModulesLoggingCerebro struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

DEPRECATED since KFD v1.26.6, 1.27.5, v1.28.0.

type SpecDistributionModulesLoggingCustomOutputs added in v1.27.7

type SpecDistributionModulesLoggingCustomOutputs struct {
	// This value defines where the output from the `audit` Flow will be sent. This
	// will be the `spec` section of the `Output` object. It must be a string (and not
	// a YAML object) following the OutputSpec definition. Use the `nullout` output to
	// discard the flow: `nullout: {}`
	Audit string `json:"audit" yaml:"audit" mapstructure:"audit"`

	// This value defines where the output from the `errors` Flow will be sent. This
	// will be the `spec` section of the `Output` object. It must be a string (and not
	// a YAML object) following the OutputSpec definition. Use the `nullout` output to
	// discard the flow: `nullout: {}`
	Errors string `json:"errors" yaml:"errors" mapstructure:"errors"`

	// This value defines where the output from the `events` Flow will be sent. This
	// will be the `spec` section of the `Output` object. It must be a string (and not
	// a YAML object) following the OutputSpec definition. Use the `nullout` output to
	// discard the flow: `nullout: {}`
	Events string `json:"events" yaml:"events" mapstructure:"events"`

	// This value defines where the output from the `infra` Flow will be sent. This
	// will be the `spec` section of the `Output` object. It must be a string (and not
	// a YAML object) following the OutputSpec definition. Use the `nullout` output to
	// discard the flow: `nullout: {}`
	Infra string `json:"infra" yaml:"infra" mapstructure:"infra"`

	// This value defines where the output from the `ingressNginx` Flow will be sent.
	// This will be the `spec` section of the `Output` object. It must be a string
	// (and not a YAML object) following the OutputSpec definition. Use the `nullout`
	// output to discard the flow: `nullout: {}`
	IngressNginx string `json:"ingressNginx" yaml:"ingressNginx" mapstructure:"ingressNginx"`

	// This value defines where the output from the `kubernetes` Flow will be sent.
	// This will be the `spec` section of the `Output` object. It must be a string
	// (and not a YAML object) following the OutputSpec definition. Use the `nullout`
	// output to discard the flow: `nullout: {}`
	Kubernetes string `json:"kubernetes" yaml:"kubernetes" mapstructure:"kubernetes"`

	// This value defines where the output from the `systemdCommon` Flow will be sent.
	// This will be the `spec` section of the `Output` object. It must be a string
	// (and not a YAML object) following the OutputSpec definition. Use the `nullout`
	// output to discard the flow: `nullout: {}`
	SystemdCommon string `json:"systemdCommon" yaml:"systemdCommon" mapstructure:"systemdCommon"`

	// This value defines where the output from the `systemdEtcd` Flow will be sent.
	// This will be the `spec` section of the `Output` object. It must be a string
	// (and not a YAML object) following the OutputSpec definition. Use the `nullout`
	// output to discard the flow: `nullout: {}`
	SystemdEtcd string `json:"systemdEtcd" yaml:"systemdEtcd" mapstructure:"systemdEtcd"`
}

When using the `customOutputs` logging type, you need to manually specify the spec of the several `Output` and `ClusterOutputs` that the Logging Operator expects to forward the logs collected by the pre-defined flows.

func (*SpecDistributionModulesLoggingCustomOutputs) UnmarshalJSON added in v1.27.7

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingLoki

type SpecDistributionModulesLoggingLoki struct {
	// The storage backend type for Loki. `minio` will use an in-cluster MinIO
	// deployment for object storage, `externalEndpoint` can be used to point to an
	// external object storage instead of deploying an in-cluster MinIO.
	Backend *SpecDistributionModulesLoggingLokiBackend `json:"backend,omitempty" yaml:"backend,omitempty" mapstructure:"backend,omitempty"`

	// Configuration for Loki's external storage backend.
	ExternalEndpoint *SpecDistributionModulesLoggingLokiExternalEndpoint `json:"externalEndpoint,omitempty" yaml:"externalEndpoint,omitempty" mapstructure:"externalEndpoint,omitempty"`

	// Resources corresponds to the JSON schema field "resources".
	Resources *TypesKubeResources `json:"resources,omitempty" yaml:"resources,omitempty" mapstructure:"resources,omitempty"`

	// Starting from versions 1.28.4, 1.29.5 and 1.30.0 of KFD, Loki will change the
	// time series database from BoltDB to TSDB and the schema from v11 to v13 that it
	// uses to store the logs.
	//
	// The value of this field will determine the date when Loki will start writing
	// using the new TSDB and the schema v13, always at midnight UTC. The old BoltDB
	// and schema will be kept until they expire for reading purposes.
	//
	// Value must be a string in `ISO 8601` date format (`yyyy-mm-dd`). Example:
	// `2024-11-18`.
	TsdbStartDate types.SerializableDate `json:"tsdbStartDate" yaml:"tsdbStartDate" mapstructure:"tsdbStartDate"`
}

Configuration for the Loki package.

func (*SpecDistributionModulesLoggingLoki) UnmarshalJSON added in v1.28.5

func (j *SpecDistributionModulesLoggingLoki) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingLokiBackend added in v1.25.9

type SpecDistributionModulesLoggingLokiBackend string
const (
	SpecDistributionModulesLoggingLokiBackendExternalEndpoint SpecDistributionModulesLoggingLokiBackend = "externalEndpoint"
	SpecDistributionModulesLoggingLokiBackendMinio            SpecDistributionModulesLoggingLokiBackend = "minio"
)

func (*SpecDistributionModulesLoggingLokiBackend) UnmarshalJSON added in v1.25.9

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingLokiExternalEndpoint added in v1.25.9

type SpecDistributionModulesLoggingLokiExternalEndpoint struct {
	// The access key ID (username) for the external S3-compatible bucket.
	AccessKeyId *string `json:"accessKeyId,omitempty" yaml:"accessKeyId,omitempty" mapstructure:"accessKeyId,omitempty"`

	// The bucket name of the external S3-compatible object storage.
	BucketName *string `json:"bucketName,omitempty" yaml:"bucketName,omitempty" mapstructure:"bucketName,omitempty"`

	// External S3-compatible endpoint for Loki's storage.
	Endpoint *string `json:"endpoint,omitempty" yaml:"endpoint,omitempty" mapstructure:"endpoint,omitempty"`

	// If true, will use HTTP as protocol instead of HTTPS.
	Insecure *bool `json:"insecure,omitempty" yaml:"insecure,omitempty" mapstructure:"insecure,omitempty"`

	// The secret access key (password) for the external S3-compatible bucket.
	SecretAccessKey *string `json:"secretAccessKey,omitempty" yaml:"secretAccessKey,omitempty" mapstructure:"secretAccessKey,omitempty"`
}

Configuration for Loki's external storage backend.

type SpecDistributionModulesLoggingMinio

type SpecDistributionModulesLoggingMinio struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// RootUser corresponds to the JSON schema field "rootUser".
	RootUser *SpecDistributionModulesLoggingMinioRootUser `json:"rootUser,omitempty" yaml:"rootUser,omitempty" mapstructure:"rootUser,omitempty"`

	// The PVC size for each MinIO disk, 6 disks total.
	StorageSize *string `json:"storageSize,omitempty" yaml:"storageSize,omitempty" mapstructure:"storageSize,omitempty"`
}

Configuration for Logging's MinIO deployment.

type SpecDistributionModulesLoggingMinioRootUser added in v1.25.9

type SpecDistributionModulesLoggingMinioRootUser struct {
	// The password for the default MinIO root user.
	Password *string `json:"password,omitempty" yaml:"password,omitempty" mapstructure:"password,omitempty"`

	// The username for the default MinIO root user.
	Username *string `json:"username,omitempty" yaml:"username,omitempty" mapstructure:"username,omitempty"`
}

type SpecDistributionModulesLoggingOpensearch

type SpecDistributionModulesLoggingOpensearch struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Resources corresponds to the JSON schema field "resources".
	Resources *TypesKubeResources `json:"resources,omitempty" yaml:"resources,omitempty" mapstructure:"resources,omitempty"`

	// The storage size for the OpenSearch volumes. Follows Kubernetes resources
	// storage requests. Default is `150Gi`.
	StorageSize *string `json:"storageSize,omitempty" yaml:"storageSize,omitempty" mapstructure:"storageSize,omitempty"`

	// The type of OpenSearch deployment. One of: `single` for a single replica or
	// `triple` for an HA 3-replicas deployment.
	Type SpecDistributionModulesLoggingOpensearchType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecDistributionModulesLoggingOpensearch) UnmarshalJSON

func (j *SpecDistributionModulesLoggingOpensearch) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingOpensearchType

type SpecDistributionModulesLoggingOpensearchType string
const (
	SpecDistributionModulesLoggingOpensearchTypeSingle SpecDistributionModulesLoggingOpensearchType = "single"
	SpecDistributionModulesLoggingOpensearchTypeTriple SpecDistributionModulesLoggingOpensearchType = "triple"
)

func (*SpecDistributionModulesLoggingOpensearchType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesLoggingOperator

type SpecDistributionModulesLoggingOperator struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

Configuration for the Logging Operator.

type SpecDistributionModulesLoggingType

type SpecDistributionModulesLoggingType string
const (
	SpecDistributionModulesLoggingTypeCustomOutputs SpecDistributionModulesLoggingType = "customOutputs"
	SpecDistributionModulesLoggingTypeLoki          SpecDistributionModulesLoggingType = "loki"
	SpecDistributionModulesLoggingTypeNone          SpecDistributionModulesLoggingType = "none"
	SpecDistributionModulesLoggingTypeOpensearch    SpecDistributionModulesLoggingType = "opensearch"
)

func (*SpecDistributionModulesLoggingType) UnmarshalJSON

func (j *SpecDistributionModulesLoggingType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesMonitoring

type SpecDistributionModulesMonitoring struct {
	// Alertmanager corresponds to the JSON schema field "alertmanager".
	Alertmanager *SpecDistributionModulesMonitoringAlertManager `json:"alertmanager,omitempty" yaml:"alertmanager,omitempty" mapstructure:"alertmanager,omitempty"`

	// BlackboxExporter corresponds to the JSON schema field "blackboxExporter".
	BlackboxExporter *SpecDistributionModulesMonitoringBlackboxExporter `json:"blackboxExporter,omitempty" yaml:"blackboxExporter,omitempty" mapstructure:"blackboxExporter,omitempty"`

	// Grafana corresponds to the JSON schema field "grafana".
	Grafana *SpecDistributionModulesMonitoringGrafana `json:"grafana,omitempty" yaml:"grafana,omitempty" mapstructure:"grafana,omitempty"`

	// KubeStateMetrics corresponds to the JSON schema field "kubeStateMetrics".
	KubeStateMetrics *SpecDistributionModulesMonitoringKubeStateMetrics `json:"kubeStateMetrics,omitempty" yaml:"kubeStateMetrics,omitempty" mapstructure:"kubeStateMetrics,omitempty"`

	// Mimir corresponds to the JSON schema field "mimir".
	Mimir *SpecDistributionModulesMonitoringMimir `json:"mimir,omitempty" yaml:"mimir,omitempty" mapstructure:"mimir,omitempty"`

	// Minio corresponds to the JSON schema field "minio".
	Minio *SpecDistributionModulesMonitoringMinio `json:"minio,omitempty" yaml:"minio,omitempty" mapstructure:"minio,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Prometheus corresponds to the JSON schema field "prometheus".
	Prometheus *SpecDistributionModulesMonitoringPrometheus `json:"prometheus,omitempty" yaml:"prometheus,omitempty" mapstructure:"prometheus,omitempty"`

	// PrometheusAgent corresponds to the JSON schema field "prometheusAgent".
	PrometheusAgent *SpecDistributionModulesMonitoringPrometheusAgent `json:"prometheusAgent,omitempty" yaml:"prometheusAgent,omitempty" mapstructure:"prometheusAgent,omitempty"`

	// The type of the monitoring, must be `none`, `prometheus`, `prometheusAgent` or
	// `mimir`.
	//
	// - `none`: will disable the whole monitoring stack.
	// - `prometheus`: will install Prometheus Operator and a preconfigured Prometheus
	// instance, Alertmanager, a set of alert rules, exporters needed to monitor all
	// the components of the cluster, Grafana and a series of dashboards to view the
	// collected metrics, and more.
	// - `prometheusAgent`: will install Prometheus operator, an instance of
	// Prometheus in Agent mode (no alerting, no queries, no storage), and all the
	// exporters needed to get metrics for the status of the cluster and the
	// workloads. Useful when having a centralized (remote) Prometheus where to ship
	// the metrics and not storing them locally in the cluster.
	// - `mimir`: will install the same as the `prometheus` option, plus Grafana Mimir
	// that allows for longer retention of metrics and the usage of Object Storage.
	//
	// Default is `prometheus`.
	Type SpecDistributionModulesMonitoringType `json:"type" yaml:"type" mapstructure:"type"`

	// X509Exporter corresponds to the JSON schema field "x509Exporter".
	X509Exporter *SpecDistributionModulesMonitoringX509Exporter `json:"x509Exporter,omitempty" yaml:"x509Exporter,omitempty" mapstructure:"x509Exporter,omitempty"`
}

Configuration for the Monitoring module.

func (*SpecDistributionModulesMonitoring) UnmarshalJSON added in v1.25.9

func (j *SpecDistributionModulesMonitoring) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesMonitoringAlertManager

type SpecDistributionModulesMonitoringAlertManager struct {
	// The webhook URL to send dead man's switch monitoring, for example to use with
	// healthchecks.io.
	DeadManSwitchWebhookUrl *string `` /* 130-byte string literal not displayed */

	// Set to false to avoid installing the Prometheus rules (alerts) included with
	// the distribution.
	InstallDefaultRules *bool `json:"installDefaultRules,omitempty" yaml:"installDefaultRules,omitempty" mapstructure:"installDefaultRules,omitempty"`

	// The Slack webhook URL where to send the infrastructural and workload alerts to.
	SlackWebhookUrl *string `json:"slackWebhookUrl,omitempty" yaml:"slackWebhookUrl,omitempty" mapstructure:"slackWebhookUrl,omitempty"`
}

type SpecDistributionModulesMonitoringBlackboxExporter

type SpecDistributionModulesMonitoringBlackboxExporter struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

type SpecDistributionModulesMonitoringGrafana

type SpecDistributionModulesMonitoringGrafana struct {
	// Setting this to true will deploy an additional `grafana-basic-auth` ingress
	// protected with Grafana's basic auth instead of SSO. It's intended use is as a
	// temporary ingress for when there are problems with the SSO login flow.
	//
	// Notice that by default anonymous access is enabled.
	BasicAuthIngress *bool `json:"basicAuthIngress,omitempty" yaml:"basicAuthIngress,omitempty" mapstructure:"basicAuthIngress,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// [JMESPath](http://jmespath.org/examples.html) expression to retrieve the user's
	// role. Example:
	//
	// “`yaml
	// usersRoleAttributePath: "contains(groups[*], 'beta') && 'Admin' ||
	// contains(groups[*], 'gamma') && 'Editor' || contains(groups[*], 'delta') &&
	// 'Viewer'
	// “`
	//
	// More details in [Grafana's
	// documentation](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/generic-oauth/#configure-role-mapping).
	UsersRoleAttributePath *string `` /* 127-byte string literal not displayed */
}

type SpecDistributionModulesMonitoringKubeStateMetrics

type SpecDistributionModulesMonitoringKubeStateMetrics struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

type SpecDistributionModulesMonitoringMimir added in v1.26.4

type SpecDistributionModulesMonitoringMimir struct {
	// The storage backend type for Mimir. `minio` will use an in-cluster MinIO
	// deployment for object storage, `externalEndpoint` can be used to point to an
	// external S3-compatible object storage instead of deploying an in-cluster MinIO.
	Backend *SpecDistributionModulesMonitoringMimirBackend `json:"backend,omitempty" yaml:"backend,omitempty" mapstructure:"backend,omitempty"`

	// Configuration for Mimir's external storage backend.
	ExternalEndpoint *SpecDistributionModulesMonitoringMimirExternalEndpoint `json:"externalEndpoint,omitempty" yaml:"externalEndpoint,omitempty" mapstructure:"externalEndpoint,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// The retention time for the logs stored in Mimir. Default is `30d`. Value must
	// match the regular expression `[0-9]+(ns|us|µs|ms|s|m|h|d|w|y)` where y = 365
	// days.
	RetentionTime *string `json:"retentionTime,omitempty" yaml:"retentionTime,omitempty" mapstructure:"retentionTime,omitempty"`
}

Configuration for the Mimir package.

type SpecDistributionModulesMonitoringMimirBackend added in v1.26.4

type SpecDistributionModulesMonitoringMimirBackend string
const (
	SpecDistributionModulesMonitoringMimirBackendExternalEndpoint SpecDistributionModulesMonitoringMimirBackend = "externalEndpoint"
	SpecDistributionModulesMonitoringMimirBackendMinio            SpecDistributionModulesMonitoringMimirBackend = "minio"
)

func (*SpecDistributionModulesMonitoringMimirBackend) UnmarshalJSON added in v1.26.4

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesMonitoringMimirExternalEndpoint added in v1.26.4

type SpecDistributionModulesMonitoringMimirExternalEndpoint struct {
	// The access key ID (username) for the external S3-compatible bucket.
	AccessKeyId *string `json:"accessKeyId,omitempty" yaml:"accessKeyId,omitempty" mapstructure:"accessKeyId,omitempty"`

	// The bucket name of the external S3-compatible object storage.
	BucketName *string `json:"bucketName,omitempty" yaml:"bucketName,omitempty" mapstructure:"bucketName,omitempty"`

	// The external S3-compatible endpoint for Mimir's storage.
	Endpoint *string `json:"endpoint,omitempty" yaml:"endpoint,omitempty" mapstructure:"endpoint,omitempty"`

	// If true, will use HTTP as protocol instead of HTTPS.
	Insecure *bool `json:"insecure,omitempty" yaml:"insecure,omitempty" mapstructure:"insecure,omitempty"`

	// The secret access key (password) for the external S3-compatible bucket.
	SecretAccessKey *string `json:"secretAccessKey,omitempty" yaml:"secretAccessKey,omitempty" mapstructure:"secretAccessKey,omitempty"`
}

Configuration for Mimir's external storage backend.

type SpecDistributionModulesMonitoringMinio added in v1.26.4

type SpecDistributionModulesMonitoringMinio struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// RootUser corresponds to the JSON schema field "rootUser".
	RootUser *SpecDistributionModulesMonitoringMinioRootUser `json:"rootUser,omitempty" yaml:"rootUser,omitempty" mapstructure:"rootUser,omitempty"`

	// The PVC size for each MinIO disk, 6 disks total.
	StorageSize *string `json:"storageSize,omitempty" yaml:"storageSize,omitempty" mapstructure:"storageSize,omitempty"`
}

Configuration for Monitoring's MinIO deployment.

type SpecDistributionModulesMonitoringMinioRootUser added in v1.26.4

type SpecDistributionModulesMonitoringMinioRootUser struct {
	// The password for the default MinIO root user.
	Password *string `json:"password,omitempty" yaml:"password,omitempty" mapstructure:"password,omitempty"`

	// The username for the default MinIO root user.
	Username *string `json:"username,omitempty" yaml:"username,omitempty" mapstructure:"username,omitempty"`
}

type SpecDistributionModulesMonitoringPrometheus

type SpecDistributionModulesMonitoringPrometheus struct {
	// Set this option to ship the collected metrics to a remote Prometheus receiver.
	//
	// `remoteWrite` is an array of objects that allows configuring the
	// [remoteWrite](https://prometheus.io/docs/specs/remote_write_spec/) options for
	// Prometheus. The objects in the array follow [the same schema as in the
	// prometheus
	// operator](https://prometheus-operator.dev/docs/operator/api/#monitoring.coreos.com/v1.RemoteWriteSpec).
	RemoteWrite []SpecDistributionModulesMonitoringPrometheusRemoteWriteElem `json:"remoteWrite,omitempty" yaml:"remoteWrite,omitempty" mapstructure:"remoteWrite,omitempty"`

	// Resources corresponds to the JSON schema field "resources".
	Resources *TypesKubeResources `json:"resources,omitempty" yaml:"resources,omitempty" mapstructure:"resources,omitempty"`

	// The retention size for the `k8s` Prometheus instance.
	RetentionSize *string `json:"retentionSize,omitempty" yaml:"retentionSize,omitempty" mapstructure:"retentionSize,omitempty"`

	// The retention time for the `k8s` Prometheus instance.
	RetentionTime *string `json:"retentionTime,omitempty" yaml:"retentionTime,omitempty" mapstructure:"retentionTime,omitempty"`

	// The storage size for the `k8s` Prometheus instance.
	StorageSize *string `json:"storageSize,omitempty" yaml:"storageSize,omitempty" mapstructure:"storageSize,omitempty"`
}

type SpecDistributionModulesMonitoringPrometheusAgent added in v1.27.7

type SpecDistributionModulesMonitoringPrometheusAgent struct {
	// Set this option to ship the collected metrics to a remote Prometheus receiver.
	//
	// `remoteWrite` is an array of objects that allows configuring the
	// [remoteWrite](https://prometheus.io/docs/specs/remote_write_spec/) options for
	// Prometheus. The objects in the array follow [the same schema as in the
	// prometheus
	// operator](https://prometheus-operator.dev/docs/operator/api/#monitoring.coreos.com/v1.RemoteWriteSpec).
	RemoteWrite []SpecDistributionModulesMonitoringPrometheusAgentRemoteWriteElem `json:"remoteWrite,omitempty" yaml:"remoteWrite,omitempty" mapstructure:"remoteWrite,omitempty"`

	// Resources corresponds to the JSON schema field "resources".
	Resources *TypesKubeResources `json:"resources,omitempty" yaml:"resources,omitempty" mapstructure:"resources,omitempty"`
}

type SpecDistributionModulesMonitoringPrometheusAgentRemoteWriteElem added in v1.27.7

type SpecDistributionModulesMonitoringPrometheusAgentRemoteWriteElem map[string]interface{}

type SpecDistributionModulesMonitoringPrometheusRemoteWriteElem added in v1.27.7

type SpecDistributionModulesMonitoringPrometheusRemoteWriteElem map[string]interface{}

type SpecDistributionModulesMonitoringType added in v1.25.9

type SpecDistributionModulesMonitoringType string
const (
	SpecDistributionModulesMonitoringTypeNone            SpecDistributionModulesMonitoringType = "none"
	SpecDistributionModulesMonitoringTypePrometheus      SpecDistributionModulesMonitoringType = "prometheus"
	SpecDistributionModulesMonitoringTypePrometheusAgent SpecDistributionModulesMonitoringType = "prometheusAgent"
	SpecDistributionModulesMonitoringTypeMimir           SpecDistributionModulesMonitoringType = "mimir"
)

func (*SpecDistributionModulesMonitoringType) UnmarshalJSON added in v1.25.9

func (j *SpecDistributionModulesMonitoringType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesMonitoringX509Exporter

type SpecDistributionModulesMonitoringX509Exporter struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

type SpecDistributionModulesNetworking

type SpecDistributionModulesNetworking struct {
	// Cilium corresponds to the JSON schema field "cilium".
	Cilium *SpecDistributionModulesNetworkingCilium `json:"cilium,omitempty" yaml:"cilium,omitempty" mapstructure:"cilium,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// TigeraOperator corresponds to the JSON schema field "tigeraOperator".
	TigeraOperator *SpecDistributionModulesNetworkingTigeraOperator `json:"tigeraOperator,omitempty" yaml:"tigeraOperator,omitempty" mapstructure:"tigeraOperator,omitempty"`

	// The type of CNI plugin to use, either `calico` (Tigera Operator) or `cilium`.
	// Default is `calico`.
	Type SpecDistributionModulesNetworkingType `json:"type" yaml:"type" mapstructure:"type"`
}

Configuration for the Networking module.

func (*SpecDistributionModulesNetworking) UnmarshalJSON

func (j *SpecDistributionModulesNetworking) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesNetworkingCilium

type SpecDistributionModulesNetworkingCilium struct {
	// The mask size to use for the Pods network on each node.
	MaskSize *string `json:"maskSize,omitempty" yaml:"maskSize,omitempty" mapstructure:"maskSize,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Allows specifing a CIDR for the Pods network different from
	// `.spec.kubernetes.podCidr`. If not set the default is to use
	// `.spec.kubernetes.podCidr`.
	PodCidr *TypesCidr `json:"podCidr,omitempty" yaml:"podCidr,omitempty" mapstructure:"podCidr,omitempty"`
}

type SpecDistributionModulesNetworkingTigeraOperator

type SpecDistributionModulesNetworkingTigeraOperator struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

type SpecDistributionModulesNetworkingType

type SpecDistributionModulesNetworkingType string
const (
	SpecDistributionModulesNetworkingTypeCalico SpecDistributionModulesNetworkingType = "calico"
	SpecDistributionModulesNetworkingTypeCilium SpecDistributionModulesNetworkingType = "cilium"
)

func (*SpecDistributionModulesNetworkingType) UnmarshalJSON

func (j *SpecDistributionModulesNetworkingType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicy

type SpecDistributionModulesPolicy struct {
	// Gatekeeper corresponds to the JSON schema field "gatekeeper".
	Gatekeeper *SpecDistributionModulesPolicyGatekeeper `json:"gatekeeper,omitempty" yaml:"gatekeeper,omitempty" mapstructure:"gatekeeper,omitempty"`

	// Kyverno corresponds to the JSON schema field "kyverno".
	Kyverno *SpecDistributionModulesPolicyKyverno `json:"kyverno,omitempty" yaml:"kyverno,omitempty" mapstructure:"kyverno,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// The type of policy enforcement to use, either `none`, `gatekeeper` or
	// `kyverno`.
	//
	// Default is `none`.
	Type SpecDistributionModulesPolicyType `json:"type" yaml:"type" mapstructure:"type"`
}

Configuration for the Policy module.

func (*SpecDistributionModulesPolicy) UnmarshalJSON

func (j *SpecDistributionModulesPolicy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicyGatekeeper

type SpecDistributionModulesPolicyGatekeeper struct {
	// This parameter adds namespaces to Gatekeeper's exemption list, so it will not
	// enforce the constraints on them.
	AdditionalExcludedNamespaces []string `` /* 145-byte string literal not displayed */

	// The default enforcement action to use for the included constraints. `deny` will
	// block the admission when violations to the policies are found, `warn` will show
	// a message to the user but will admit the violating requests and `dryrun` won't
	// give any feedback to the user but it will log the violations.
	EnforcementAction SpecDistributionModulesPolicyGatekeeperEnforcementAction `json:"enforcementAction" yaml:"enforcementAction" mapstructure:"enforcementAction"`

	// Set to `false` to avoid installing the default Gatekeeper policies (constraints
	// templates and constraints) included with the distribution.
	InstallDefaultPolicies bool `json:"installDefaultPolicies" yaml:"installDefaultPolicies" mapstructure:"installDefaultPolicies"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`
}

Configuration for the Gatekeeper package.

func (*SpecDistributionModulesPolicyGatekeeper) UnmarshalJSON added in v1.25.10

func (j *SpecDistributionModulesPolicyGatekeeper) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicyGatekeeperEnforcementAction added in v1.25.10

type SpecDistributionModulesPolicyGatekeeperEnforcementAction string
const (
	SpecDistributionModulesPolicyGatekeeperEnforcementActionDeny   SpecDistributionModulesPolicyGatekeeperEnforcementAction = "deny"
	SpecDistributionModulesPolicyGatekeeperEnforcementActionDryrun SpecDistributionModulesPolicyGatekeeperEnforcementAction = "dryrun"
	SpecDistributionModulesPolicyGatekeeperEnforcementActionWarn   SpecDistributionModulesPolicyGatekeeperEnforcementAction = "warn"
)

func (*SpecDistributionModulesPolicyGatekeeperEnforcementAction) UnmarshalJSON added in v1.25.10

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicyKyverno added in v1.25.9

type SpecDistributionModulesPolicyKyverno struct {
	// This parameter adds namespaces to Kyverno's exemption list, so it will not
	// enforce the policies on them.
	AdditionalExcludedNamespaces []string `` /* 145-byte string literal not displayed */

	// Set to `false` to avoid installing the default Kyverno policies included with
	// distribution.
	InstallDefaultPolicies bool `json:"installDefaultPolicies" yaml:"installDefaultPolicies" mapstructure:"installDefaultPolicies"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// The validation failure action to use for the policies, `Enforce` will block
	// when a request does not comply with the policies and `Audit` will not block but
	// log when a request does not comply with the policies.
	ValidationFailureAction SpecDistributionModulesPolicyKyvernoValidationFailureAction `json:"validationFailureAction" yaml:"validationFailureAction" mapstructure:"validationFailureAction"`
}

Configuration for the Kyverno package.

func (*SpecDistributionModulesPolicyKyverno) UnmarshalJSON added in v1.25.10

func (j *SpecDistributionModulesPolicyKyverno) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicyKyvernoValidationFailureAction added in v1.25.10

type SpecDistributionModulesPolicyKyvernoValidationFailureAction string
const (
	SpecDistributionModulesPolicyKyvernoValidationFailureActionAudit   SpecDistributionModulesPolicyKyvernoValidationFailureAction = "Audit"
	SpecDistributionModulesPolicyKyvernoValidationFailureActionEnforce SpecDistributionModulesPolicyKyvernoValidationFailureAction = "Enforce"
)

func (*SpecDistributionModulesPolicyKyvernoValidationFailureAction) UnmarshalJSON added in v1.25.10

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesPolicyType

type SpecDistributionModulesPolicyType string
const (
	SpecDistributionModulesPolicyTypeNone       SpecDistributionModulesPolicyType = "none"
	SpecDistributionModulesPolicyTypeGatekeeper SpecDistributionModulesPolicyType = "gatekeeper"
	SpecDistributionModulesPolicyTypeKyverno    SpecDistributionModulesPolicyType = "kyverno"
)

func (*SpecDistributionModulesPolicyType) UnmarshalJSON

func (j *SpecDistributionModulesPolicyType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesTracing added in v1.26.4

type SpecDistributionModulesTracing struct {
	// Minio corresponds to the JSON schema field "minio".
	Minio *SpecDistributionModulesTracingMinio `json:"minio,omitempty" yaml:"minio,omitempty" mapstructure:"minio,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// Tempo corresponds to the JSON schema field "tempo".
	Tempo *SpecDistributionModulesTracingTempo `json:"tempo,omitempty" yaml:"tempo,omitempty" mapstructure:"tempo,omitempty"`

	// The type of tracing to use, either `none` or `tempo`. `none` will disable the
	// Tracing module and `tempo` will install a Grafana Tempo deployment.
	//
	// Default is `tempo`.
	Type SpecDistributionModulesTracingType `json:"type" yaml:"type" mapstructure:"type"`
}

Configuration for the Tracing module.

func (*SpecDistributionModulesTracing) UnmarshalJSON added in v1.26.4

func (j *SpecDistributionModulesTracing) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesTracingMinio added in v1.26.4

type SpecDistributionModulesTracingMinio struct {
	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// RootUser corresponds to the JSON schema field "rootUser".
	RootUser *SpecDistributionModulesTracingMinioRootUser `json:"rootUser,omitempty" yaml:"rootUser,omitempty" mapstructure:"rootUser,omitempty"`

	// The PVC size for each MinIO disk, 6 disks total.
	StorageSize *string `json:"storageSize,omitempty" yaml:"storageSize,omitempty" mapstructure:"storageSize,omitempty"`
}

Configuration for Tracing's MinIO deployment.

type SpecDistributionModulesTracingMinioRootUser added in v1.26.4

type SpecDistributionModulesTracingMinioRootUser struct {
	// The password for the default MinIO root user.
	Password *string `json:"password,omitempty" yaml:"password,omitempty" mapstructure:"password,omitempty"`

	// The username for the default MinIO root user.
	Username *string `json:"username,omitempty" yaml:"username,omitempty" mapstructure:"username,omitempty"`
}

type SpecDistributionModulesTracingTempo added in v1.26.4

type SpecDistributionModulesTracingTempo struct {
	// The storage backend type for Tempo. `minio` will use an in-cluster MinIO
	// deployment for object storage, `externalEndpoint` can be used to point to an
	// external S3-compatible object storage instead of deploying an in-cluster MinIO.
	Backend *SpecDistributionModulesTracingTempoBackend `json:"backend,omitempty" yaml:"backend,omitempty" mapstructure:"backend,omitempty"`

	// Configuration for Tempo's external storage backend.
	ExternalEndpoint *SpecDistributionModulesTracingTempoExternalEndpoint `json:"externalEndpoint,omitempty" yaml:"externalEndpoint,omitempty" mapstructure:"externalEndpoint,omitempty"`

	// Overrides corresponds to the JSON schema field "overrides".
	Overrides *TypesFuryModuleComponentOverrides `json:"overrides,omitempty" yaml:"overrides,omitempty" mapstructure:"overrides,omitempty"`

	// The retention time for the traces stored in Tempo.
	RetentionTime *string `json:"retentionTime,omitempty" yaml:"retentionTime,omitempty" mapstructure:"retentionTime,omitempty"`
}

Configuration for the Tempo package.

type SpecDistributionModulesTracingTempoBackend added in v1.26.4

type SpecDistributionModulesTracingTempoBackend string
const (
	SpecDistributionModulesTracingTempoBackendMinio            SpecDistributionModulesTracingTempoBackend = "minio"
	SpecDistributionModulesTracingTempoBackendExternalEndpoint SpecDistributionModulesTracingTempoBackend = "externalEndpoint"
)

func (*SpecDistributionModulesTracingTempoBackend) UnmarshalJSON added in v1.26.4

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesTracingTempoExternalEndpoint added in v1.26.4

type SpecDistributionModulesTracingTempoExternalEndpoint struct {
	// The access key ID (username) for the external S3-compatible bucket.
	AccessKeyId *string `json:"accessKeyId,omitempty" yaml:"accessKeyId,omitempty" mapstructure:"accessKeyId,omitempty"`

	// The bucket name of the external S3-compatible object storage.
	BucketName *string `json:"bucketName,omitempty" yaml:"bucketName,omitempty" mapstructure:"bucketName,omitempty"`

	// The external S3-compatible endpoint for Tempo's storage.
	Endpoint *string `json:"endpoint,omitempty" yaml:"endpoint,omitempty" mapstructure:"endpoint,omitempty"`

	// If true, will use HTTP as protocol instead of HTTPS.
	Insecure *bool `json:"insecure,omitempty" yaml:"insecure,omitempty" mapstructure:"insecure,omitempty"`

	// The secret access key (password) for the external S3-compatible bucket.
	SecretAccessKey *string `json:"secretAccessKey,omitempty" yaml:"secretAccessKey,omitempty" mapstructure:"secretAccessKey,omitempty"`
}

Configuration for Tempo's external storage backend.

type SpecDistributionModulesTracingType added in v1.26.4

type SpecDistributionModulesTracingType string
const (
	SpecDistributionModulesTracingTypeNone  SpecDistributionModulesTracingType = "none"
	SpecDistributionModulesTracingTypeTempo SpecDistributionModulesTracingType = "tempo"
)

func (*SpecDistributionModulesTracingType) UnmarshalJSON added in v1.26.4

func (j *SpecDistributionModulesTracingType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetes

type SpecKubernetes struct {
	// Advanced corresponds to the JSON schema field "advanced".
	Advanced *SpecKubernetesAdvanced `json:"advanced,omitempty" yaml:"advanced,omitempty" mapstructure:"advanced,omitempty"`

	// AdvancedAnsible corresponds to the JSON schema field "advancedAnsible".
	AdvancedAnsible *SpecKubernetesAdvancedAnsible `json:"advancedAnsible,omitempty" yaml:"advancedAnsible,omitempty" mapstructure:"advancedAnsible,omitempty"`

	// The address for the Kubernetes control plane. Usually a DNS entry pointing to a
	// Load Balancer on port 6443.
	ControlPlaneAddress string `json:"controlPlaneAddress" yaml:"controlPlaneAddress" mapstructure:"controlPlaneAddress"`

	// The DNS zone of the machines. It will be appended to the name of each host to
	// generate the `kubernetes_hostname` in the Ansible inventory file. It is also
	// used to calculate etcd's initial cluster value.
	DnsZone string `json:"dnsZone" yaml:"dnsZone" mapstructure:"dnsZone"`

	// LoadBalancers corresponds to the JSON schema field "loadBalancers".
	LoadBalancers SpecKubernetesLoadBalancers `json:"loadBalancers" yaml:"loadBalancers" mapstructure:"loadBalancers"`

	// Masters corresponds to the JSON schema field "masters".
	Masters SpecKubernetesMasters `json:"masters" yaml:"masters" mapstructure:"masters"`

	// Nodes corresponds to the JSON schema field "nodes".
	Nodes SpecKubernetesNodes `json:"nodes" yaml:"nodes" mapstructure:"nodes"`

	// The path to the folder where the PKI files for Kubernetes and etcd are stored.
	PkiFolder string `json:"pkiFolder" yaml:"pkiFolder" mapstructure:"pkiFolder"`

	// The subnet CIDR to use for the Pods network.
	PodCidr TypesCidr `json:"podCidr" yaml:"podCidr" mapstructure:"podCidr"`

	// Proxy corresponds to the JSON schema field "proxy".
	Proxy *SpecKubernetesProxy `json:"proxy,omitempty" yaml:"proxy,omitempty" mapstructure:"proxy,omitempty"`

	// Ssh corresponds to the JSON schema field "ssh".
	Ssh SpecKubernetesSSH `json:"ssh" yaml:"ssh" mapstructure:"ssh"`

	// The subnet CIDR to use for the Services network.
	SvcCidr TypesCidr `json:"svcCidr" yaml:"svcCidr" mapstructure:"svcCidr"`
}

Defines the Kubernetes components configuration and the values needed for the kubernetes phase of furyctl.

func (*SpecKubernetes) UnmarshalJSON

func (j *SpecKubernetes) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesAdvanced

type SpecKubernetesAdvanced struct {
	// AirGap corresponds to the JSON schema field "airGap".
	AirGap *SpecKubernetesAdvancedAirGap `json:"airGap,omitempty" yaml:"airGap,omitempty" mapstructure:"airGap,omitempty"`

	// Cloud corresponds to the JSON schema field "cloud".
	Cloud *SpecKubernetesAdvancedCloud `json:"cloud,omitempty" yaml:"cloud,omitempty" mapstructure:"cloud,omitempty"`

	// Containerd corresponds to the JSON schema field "containerd".
	Containerd *SpecKubernetesAdvancedContainerd `json:"containerd,omitempty" yaml:"containerd,omitempty" mapstructure:"containerd,omitempty"`

	// Encryption corresponds to the JSON schema field "encryption".
	Encryption *SpecKubernetesAdvancedEncryption `json:"encryption,omitempty" yaml:"encryption,omitempty" mapstructure:"encryption,omitempty"`

	// Oidc corresponds to the JSON schema field "oidc".
	Oidc *SpecKubernetesAdvancedOIDC `json:"oidc,omitempty" yaml:"oidc,omitempty" mapstructure:"oidc,omitempty"`

	// URL of the registry where to pull images from for the Kubernetes phase.
	// (Default is registry.sighup.io/fury/on-premises).
	Registry *string `json:"registry,omitempty" yaml:"registry,omitempty" mapstructure:"registry,omitempty"`

	// Users corresponds to the JSON schema field "users".
	Users *SpecKubernetesAdvancedUsers `json:"users,omitempty" yaml:"users,omitempty" mapstructure:"users,omitempty"`
}

type SpecKubernetesAdvancedAirGap added in v1.27.6

type SpecKubernetesAdvancedAirGap struct {
	// URL where to download the `.tar.gz` with containerd from. The `tar.gz` should
	// be as the one downloaded from containerd GitHub releases page.
	ContainerdDownloadUrl *string `json:"containerdDownloadUrl,omitempty" yaml:"containerdDownloadUrl,omitempty" mapstructure:"containerdDownloadUrl,omitempty"`

	// DependenciesOverride corresponds to the JSON schema field
	// "dependenciesOverride".
	DependenciesOverride *SpecKubernetesAdvancedAirGapDependenciesOverride `json:"dependenciesOverride,omitempty" yaml:"dependenciesOverride,omitempty" mapstructure:"dependenciesOverride,omitempty"`

	// URL to the path where the etcd `tar.gz`s are available. etcd will be downloaded
	// from
	// `<etcdDownloadUrl>/<etcd_version>/etcd-<etcd_version>-linux-<host_architecture>.tar.gz`
	EtcdDownloadUrl *string `json:"etcdDownloadUrl,omitempty" yaml:"etcdDownloadUrl,omitempty" mapstructure:"etcdDownloadUrl,omitempty"`

	// Checksum for the runc binary.
	RuncChecksum *string `json:"runcChecksum,omitempty" yaml:"runcChecksum,omitempty" mapstructure:"runcChecksum,omitempty"`

	// URL where to download the runc binary from.
	RuncDownloadUrl *string `json:"runcDownloadUrl,omitempty" yaml:"runcDownloadUrl,omitempty" mapstructure:"runcDownloadUrl,omitempty"`
}

Advanced configuration for air-gapped installations. Allows setting custom URLs where to download the binaries dependencies from and custom .deb and .rpm package repositories.

type SpecKubernetesAdvancedAirGapDependenciesOverride added in v1.27.6

type SpecKubernetesAdvancedAirGapDependenciesOverride struct {
	// Apt corresponds to the JSON schema field "apt".
	Apt *SpecKubernetesAdvancedAirGapDependenciesOverrideApt `json:"apt,omitempty" yaml:"apt,omitempty" mapstructure:"apt,omitempty"`

	// Yum corresponds to the JSON schema field "yum".
	Yum *SpecKubernetesAdvancedAirGapDependenciesOverrideYum `json:"yum,omitempty" yaml:"yum,omitempty" mapstructure:"yum,omitempty"`
}

type SpecKubernetesAdvancedAirGapDependenciesOverrideApt added in v1.27.6

type SpecKubernetesAdvancedAirGapDependenciesOverrideApt struct {
	// URL where to download the GPG key of the Apt repository. Example:
	// `https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key`
	GpgKey string `json:"gpg_key" yaml:"gpg_key" mapstructure:"gpg_key"`

	// The GPG key ID of the Apt repository. Example:
	// `36A1D7869245C8950F966E92D8576A8BA88D21E9`
	GpgKeyId string `json:"gpg_key_id" yaml:"gpg_key_id" mapstructure:"gpg_key_id"`

	// An indicative name for the Apt repository. Example: `k8s-1.29`
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// A source string for the new Apt repository. Example: `deb
	// https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /`
	Repo string `json:"repo" yaml:"repo" mapstructure:"repo"`
}

func (*SpecKubernetesAdvancedAirGapDependenciesOverrideApt) UnmarshalJSON added in v1.27.6

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesAdvancedAirGapDependenciesOverrideYum added in v1.27.6

type SpecKubernetesAdvancedAirGapDependenciesOverrideYum struct {
	// URL where to download the ASCII-armored GPG key of the Yum repository. Example:
	// `https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key`
	GpgKey string `json:"gpg_key" yaml:"gpg_key" mapstructure:"gpg_key"`

	// If true, the GPG signature check on the packages will be enabled.
	GpgKeyCheck bool `json:"gpg_key_check" yaml:"gpg_key_check" mapstructure:"gpg_key_check"`

	// An indicative name for the Yum repository. Example: `k8s-1.29`
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// URL to the directory where the Yum repository's `repodata` directory lives.
	// Example: `https://pkgs.k8s.io/core:/stable:/v1.29/rpm/`
	Repo string `json:"repo" yaml:"repo" mapstructure:"repo"`

	// If true, the GPG signature check on the `repodata` will be enabled.
	RepoGpgCheck bool `json:"repo_gpg_check" yaml:"repo_gpg_check" mapstructure:"repo_gpg_check"`
}

func (*SpecKubernetesAdvancedAirGapDependenciesOverrideYum) UnmarshalJSON added in v1.27.6

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesAdvancedAnsible added in v1.27.6

type SpecKubernetesAdvancedAnsible struct {
	// Additional configuration to append to the ansible.cfg file
	Config *string `json:"config,omitempty" yaml:"config,omitempty" mapstructure:"config,omitempty"`

	// The Python interpreter to use for running Ansible. Example: python3
	PythonInterpreter *string `json:"pythonInterpreter,omitempty" yaml:"pythonInterpreter,omitempty" mapstructure:"pythonInterpreter,omitempty"`
}

type SpecKubernetesAdvancedCloud

type SpecKubernetesAdvancedCloud struct {
	// Sets cloud config for the Kubelet
	Config *string `json:"config,omitempty" yaml:"config,omitempty" mapstructure:"config,omitempty"`

	// Sets the cloud provider for the Kubelet
	Provider *string `json:"provider,omitempty" yaml:"provider,omitempty" mapstructure:"provider,omitempty"`
}

type SpecKubernetesAdvancedContainerd added in v1.25.10

type SpecKubernetesAdvancedContainerd struct {
	// RegistryConfigs corresponds to the JSON schema field "registryConfigs".
	RegistryConfigs SpecKubernetesAdvancedContainerdRegistryConfigs `json:"registryConfigs,omitempty" yaml:"registryConfigs,omitempty" mapstructure:"registryConfigs,omitempty"`
}

Advanced configuration for containerd

type SpecKubernetesAdvancedContainerdRegistryConfigs added in v1.25.10

type SpecKubernetesAdvancedContainerdRegistryConfigs []struct {
	// Set to `true` to skip TLS verification (e.g. when using self-signed
	// certificates).
	InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty" yaml:"insecureSkipVerify,omitempty" mapstructure:"insecureSkipVerify,omitempty"`

	// Array of URLs with the mirrors to use for the registry. Example:
	// `["http://mymirror.tld:8080"]`
	MirrorEndpoint []string `json:"mirrorEndpoint,omitempty" yaml:"mirrorEndpoint,omitempty" mapstructure:"mirrorEndpoint,omitempty"`

	// The password containerd will use to authenticate against the registry.
	Password *string `json:"password,omitempty" yaml:"password,omitempty" mapstructure:"password,omitempty"`

	// Registry address on which you would like to configure authentication or
	// mirror(s). Example: `myregistry.tld:5000`
	Registry *string `json:"registry,omitempty" yaml:"registry,omitempty" mapstructure:"registry,omitempty"`

	// The username containerd will use to authenticate against the registry.
	Username *string `json:"username,omitempty" yaml:"username,omitempty" mapstructure:"username,omitempty"`
}

Allows specifying custom configuration for a registry at containerd level. You can set authentication details and mirrors for a registry. This feature can be used for example to authenticate to a private registry at containerd (container runtime) level, i.e. globally instead of using `imagePullSecrets`. It also can be used to use a mirror for a registry or to enable insecure connections to trusted registries that have self-signed certificates.

type SpecKubernetesAdvancedEncryption added in v1.26.6

type SpecKubernetesAdvancedEncryption struct {
	// etcd's encryption at rest configuration. Must be a string with the
	// EncryptionConfiguration object in YAML. Example:
	//
	// “`yaml
	//
	// apiVersion: apiserver.config.k8s.io/v1
	// kind: EncryptionConfiguration
	// resources:
	//   - resources:
	//     - secrets
	//     providers:
	//     - aescbc:
	//         keys:
	//         - name: mykey
	//           secret: base64_encoded_secret
	// “`
	//
	Configuration *string `json:"configuration,omitempty" yaml:"configuration,omitempty" mapstructure:"configuration,omitempty"`

	// The TLS cipher suites to use for etcd, kubelet, and kubeadm static pods.
	// Example:
	// “`yaml
	// tlsCipherSuites:
	//   - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
	//   - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
	//   - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
	//   - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
	//   - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"
	//   - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
	//   - "TLS_AES_128_GCM_SHA256"
	//   - "TLS_AES_256_GCM_SHA384"
	//   - "TLS_CHACHA20_POLY1305_SHA256"
	// “`
	TlsCipherSuites []string `json:"tlsCipherSuites,omitempty" yaml:"tlsCipherSuites,omitempty" mapstructure:"tlsCipherSuites,omitempty"`
}

type SpecKubernetesAdvancedOIDC

type SpecKubernetesAdvancedOIDC struct {
	// The path to the certificate for the CA that signed the identity provider's web
	// certificate. Defaults to the host's root CAs. This should be a path available
	// to the API Server.
	CaFile *string `json:"ca_file,omitempty" yaml:"ca_file,omitempty" mapstructure:"ca_file,omitempty"`

	// The client ID the API server will use to authenticate to the OIDC provider.
	ClientId *string `json:"client_id,omitempty" yaml:"client_id,omitempty" mapstructure:"client_id,omitempty"`

	// Prefix prepended to group claims to prevent clashes with existing names (such
	// as system: groups).
	GroupPrefix *string `json:"group_prefix,omitempty" yaml:"group_prefix,omitempty" mapstructure:"group_prefix,omitempty"`

	// JWT claim to use as the user's group.
	GroupsClaim *string `json:"groups_claim,omitempty" yaml:"groups_claim,omitempty" mapstructure:"groups_claim,omitempty"`

	// The issuer URL of the OIDC provider.
	IssuerUrl *string `json:"issuer_url,omitempty" yaml:"issuer_url,omitempty" mapstructure:"issuer_url,omitempty"`

	// JWT claim to use as the user name. The default value is `sub`, which is
	// expected to be a unique identifier of the end user.
	UsernameClaim *string `json:"username_claim,omitempty" yaml:"username_claim,omitempty" mapstructure:"username_claim,omitempty"`

	// Prefix prepended to username claims to prevent clashes with existing names
	// (such as system: users).
	UsernamePrefix *string `json:"username_prefix,omitempty" yaml:"username_prefix,omitempty" mapstructure:"username_prefix,omitempty"`
}

OIDC configuration for the Kubernetes API server.

type SpecKubernetesAdvancedUsers

type SpecKubernetesAdvancedUsers struct {
	// List of user names to create and get a kubeconfig file. Users will not have any
	// permissions by default, RBAC setup for the new users is needed.
	Names []string `json:"names,omitempty" yaml:"names,omitempty" mapstructure:"names,omitempty"`

	// The organization the users belong to.
	Org *string `json:"org,omitempty" yaml:"org,omitempty" mapstructure:"org,omitempty"`
}

type SpecKubernetesLoadBalancers

type SpecKubernetesLoadBalancers struct {
	// Additional configuration to append to HAProxy's configuration file.
	AdditionalConfig *string `json:"additionalConfig,omitempty" yaml:"additionalConfig,omitempty" mapstructure:"additionalConfig,omitempty"`

	// Set to true to install HAProxy and configure it as a load balancer on the the
	// load balancer hosts.
	Enabled bool `json:"enabled" yaml:"enabled" mapstructure:"enabled"`

	// Hosts corresponds to the JSON schema field "hosts".
	Hosts []SpecKubernetesLoadBalancersHost `json:"hosts,omitempty" yaml:"hosts,omitempty" mapstructure:"hosts,omitempty"`

	// Keepalived corresponds to the JSON schema field "keepalived".
	Keepalived *SpecKubernetesLoadBalancersKeepalived `json:"keepalived,omitempty" yaml:"keepalived,omitempty" mapstructure:"keepalived,omitempty"`

	// Stats corresponds to the JSON schema field "stats".
	Stats *SpecKubernetesLoadBalancersStats `json:"stats,omitempty" yaml:"stats,omitempty" mapstructure:"stats,omitempty"`
}

func (*SpecKubernetesLoadBalancers) UnmarshalJSON

func (j *SpecKubernetesLoadBalancers) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesLoadBalancersHost

type SpecKubernetesLoadBalancersHost struct {
	// The IP address of the host.
	Ip string `json:"ip" yaml:"ip" mapstructure:"ip"`

	// A name to identify the host. This value will be concatenated to
	// `.spec.kubernetes.dnsZone` to calculate the FQDN for the host as
	// `<name>.<dnsZone>`.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

func (*SpecKubernetesLoadBalancersHost) UnmarshalJSON

func (j *SpecKubernetesLoadBalancersHost) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesLoadBalancersKeepalived

type SpecKubernetesLoadBalancersKeepalived struct {
	// Set to install keepalived with a floating virtual IP shared between the load
	// balancer hosts for a deployment in High Availability.
	Enabled bool `json:"enabled" yaml:"enabled" mapstructure:"enabled"`

	// Name of the network interface where to bind the Keepalived virtual IP.
	Interface *string `json:"interface,omitempty" yaml:"interface,omitempty" mapstructure:"interface,omitempty"`

	// The Virtual floating IP for Keepalived
	Ip *string `json:"ip,omitempty" yaml:"ip,omitempty" mapstructure:"ip,omitempty"`

	// The passphrase for the Keepalived clustering.
	Passphrase *string `json:"passphrase,omitempty" yaml:"passphrase,omitempty" mapstructure:"passphrase,omitempty"`

	// The virtual router ID of Keepalived, must be different from other Keepalived
	// instances in the same network.
	VirtualRouterId *string `json:"virtualRouterId,omitempty" yaml:"virtualRouterId,omitempty" mapstructure:"virtualRouterId,omitempty"`
}

func (*SpecKubernetesLoadBalancersKeepalived) UnmarshalJSON

func (j *SpecKubernetesLoadBalancersKeepalived) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesLoadBalancersStats

type SpecKubernetesLoadBalancersStats struct {
	// The basic-auth password for HAProxy's stats page.
	Password string `json:"password" yaml:"password" mapstructure:"password"`

	// The basic-auth username for HAProxy's stats page
	Username string `json:"username" yaml:"username" mapstructure:"username"`
}

Configuration for HAProxy stats page. Accessible at http://<haproxy host>:1936/stats

func (*SpecKubernetesLoadBalancersStats) UnmarshalJSON

func (j *SpecKubernetesLoadBalancersStats) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesMasters

type SpecKubernetesMasters struct {
	// Hosts corresponds to the JSON schema field "hosts".
	Hosts []SpecKubernetesMastersHost `json:"hosts" yaml:"hosts" mapstructure:"hosts"`
}

Configuration for the control plane hosts

func (*SpecKubernetesMasters) UnmarshalJSON

func (j *SpecKubernetesMasters) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesMastersHost

type SpecKubernetesMastersHost struct {
	// The IP address of the host
	Ip string `json:"ip" yaml:"ip" mapstructure:"ip"`

	// A name to identify the host. This value will be concatenated to
	// `.spec.kubernetes.dnsZone` to calculate the FQDN for the host as
	// `<name>.<dnsZone>`.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

func (*SpecKubernetesMastersHost) UnmarshalJSON

func (j *SpecKubernetesMastersHost) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodes

type SpecKubernetesNodes []SpecKubernetesNodesNode

Configuration for the node hosts

type SpecKubernetesNodesNode

type SpecKubernetesNodesNode struct {
	// Hosts corresponds to the JSON schema field "hosts".
	Hosts []SpecKubernetesNodesNodeHost `json:"hosts" yaml:"hosts" mapstructure:"hosts"`

	// Name for the node group. It will be also used as the node role label. It should
	// follow the [valid variable names
	// guideline](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#valid-variable-names)
	// from Ansible.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// Taints corresponds to the JSON schema field "taints".
	Taints []TypesKubeTaints `json:"taints,omitempty" yaml:"taints,omitempty" mapstructure:"taints,omitempty"`
}

func (*SpecKubernetesNodesNode) UnmarshalJSON

func (j *SpecKubernetesNodesNode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodesNodeHost

type SpecKubernetesNodesNodeHost struct {
	// The IP address of the host
	Ip string `json:"ip" yaml:"ip" mapstructure:"ip"`

	// A name to identify the host. This value will be concatenated to
	// `.spec.kubernetes.dnsZone` to calculate the FQDN for the host as
	// `<name>.<dnsZone>`.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

func (*SpecKubernetesNodesNodeHost) UnmarshalJSON

func (j *SpecKubernetesNodesNodeHost) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesProxy

type SpecKubernetesProxy struct {
	// The HTTP proxy URL. Example: http://test.example.dev:3128
	Http *TypesUri `json:"http,omitempty" yaml:"http,omitempty" mapstructure:"http,omitempty"`

	// The HTTPS proxy URL. Example: https://test.example.dev:3128
	Https *TypesUri `json:"https,omitempty" yaml:"https,omitempty" mapstructure:"https,omitempty"`

	// Comma-separated list of hosts that should not use the HTTP(S) proxy. Example:
	// localhost,127.0.0.1,172.16.0.0/17,172.16.128.0/17,10.0.0.0/8,.example.dev
	NoProxy *string `json:"noProxy,omitempty" yaml:"noProxy,omitempty" mapstructure:"noProxy,omitempty"`
}

type SpecKubernetesSSH

type SpecKubernetesSSH struct {
	// The path to the private key to use to connect to the hosts
	KeyPath string `json:"keyPath" yaml:"keyPath" mapstructure:"keyPath"`

	// The username to use to connect to the hosts
	Username string `json:"username" yaml:"username" mapstructure:"username"`
}

SSH credentials to access the hosts

func (*SpecKubernetesSSH) UnmarshalJSON

func (j *SpecKubernetesSSH) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecPlugins

type SpecPlugins struct {
	// Helm corresponds to the JSON schema field "helm".
	Helm *SpecPluginsHelm `json:"helm,omitempty" yaml:"helm,omitempty" mapstructure:"helm,omitempty"`

	// Kustomize corresponds to the JSON schema field "kustomize".
	Kustomize SpecPluginsKustomize `json:"kustomize,omitempty" yaml:"kustomize,omitempty" mapstructure:"kustomize,omitempty"`
}

type SpecPluginsHelm

type SpecPluginsHelm struct {
	// Releases corresponds to the JSON schema field "releases".
	Releases SpecPluginsHelmReleases `json:"releases,omitempty" yaml:"releases,omitempty" mapstructure:"releases,omitempty"`

	// Repositories corresponds to the JSON schema field "repositories".
	Repositories SpecPluginsHelmRepositories `json:"repositories,omitempty" yaml:"repositories,omitempty" mapstructure:"repositories,omitempty"`
}

type SpecPluginsHelmReleases

type SpecPluginsHelmReleases []struct {
	// The chart of the release
	Chart string `json:"chart" yaml:"chart" mapstructure:"chart"`

	// Disable running `helm diff` validation when installing the plugin, it will
	// still be done when upgrading.
	DisableValidationOnInstall *bool `` /* 139-byte string literal not displayed */

	// The name of the release
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The namespace of the release
	Namespace string `json:"namespace" yaml:"namespace" mapstructure:"namespace"`

	// Set corresponds to the JSON schema field "set".
	Set []SpecPluginsHelmReleasesElemSetElem `json:"set,omitempty" yaml:"set,omitempty" mapstructure:"set,omitempty"`

	// The values of the release
	Values []string `json:"values,omitempty" yaml:"values,omitempty" mapstructure:"values,omitempty"`

	// The version of the release
	Version *string `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`
}

type SpecPluginsHelmReleasesElemSetElem

type SpecPluginsHelmReleasesElemSetElem struct {
	// The name of the set
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The value of the set
	Value string `json:"value" yaml:"value" mapstructure:"value"`
}

func (*SpecPluginsHelmReleasesElemSetElem) UnmarshalJSON

func (j *SpecPluginsHelmReleasesElemSetElem) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecPluginsHelmRepositories

type SpecPluginsHelmRepositories []struct {
	// The name of the repository
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// The url of the repository
	Url string `json:"url" yaml:"url" mapstructure:"url"`
}

type SpecPluginsKustomize

type SpecPluginsKustomize []struct {
	// The folder of the kustomize plugin
	Folder string `json:"folder" yaml:"folder" mapstructure:"folder"`

	// The name of the kustomize plugin
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

type TypesCidr

type TypesCidr string

type TypesEnvRef

type TypesEnvRef string

type TypesFileRef

type TypesFileRef string

type TypesFuryModuleComponentOverrides

type TypesFuryModuleComponentOverrides struct {
	// Set to override the node selector used to place the pods of the package.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Set to override the tolerations that will be added to the pods of the package.
	Tolerations []TypesKubeToleration `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

type TypesFuryModuleComponentOverrides_1 added in v1.27.7

type TypesFuryModuleComponentOverrides_1 struct {
	// NodeSelector corresponds to the JSON schema field "nodeSelector".
	NodeSelector TypesKubeNodeSelector_1 `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Tolerations corresponds to the JSON schema field "tolerations".
	Tolerations []TypesKubeToleration_1 `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

type TypesFuryModuleOverrides

type TypesFuryModuleOverrides struct {
	// Ingresses corresponds to the JSON schema field "ingresses".
	Ingresses TypesFuryModuleOverridesIngresses `json:"ingresses,omitempty" yaml:"ingresses,omitempty" mapstructure:"ingresses,omitempty"`

	// Set to override the node selector used to place the pods of the module.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// Set to override the tolerations that will be added to the pods of the module.
	Tolerations []TypesKubeToleration `json:"tolerations,omitempty" yaml:"tolerations,omitempty" mapstructure:"tolerations,omitempty"`
}

Override the common configuration with a particular configuration for the module.

type TypesFuryModuleOverridesIngress

type TypesFuryModuleOverridesIngress struct {
	// If true, the ingress will not have authentication even if
	// `.spec.modules.auth.provider.type` is SSO or Basic Auth.
	DisableAuth *bool `json:"disableAuth,omitempty" yaml:"disableAuth,omitempty" mapstructure:"disableAuth,omitempty"`

	// Use this host for the ingress instead of the default one.
	Host *string `json:"host,omitempty" yaml:"host,omitempty" mapstructure:"host,omitempty"`

	// Use this ingress class for the ingress instead of the default one.
	IngressClass *string `json:"ingressClass,omitempty" yaml:"ingressClass,omitempty" mapstructure:"ingressClass,omitempty"`
}

type TypesFuryModuleOverridesIngresses

type TypesFuryModuleOverridesIngresses map[string]TypesFuryModuleOverridesIngress

type TypesIpAddress

type TypesIpAddress string

type TypesKubeLabels

type TypesKubeLabels map[string]string

type TypesKubeLabels_1 added in v1.26.6

type TypesKubeLabels_1 map[string]string

type TypesKubeNodeSelector

type TypesKubeNodeSelector map[string]string

type TypesKubeNodeSelector_1 added in v1.27.7

type TypesKubeNodeSelector_1 map[string]string

type TypesKubeResources

type TypesKubeResources struct {
	// Limits corresponds to the JSON schema field "limits".
	Limits *TypesKubeResourcesLimits `json:"limits,omitempty" yaml:"limits,omitempty" mapstructure:"limits,omitempty"`

	// Requests corresponds to the JSON schema field "requests".
	Requests *TypesKubeResourcesRequests `json:"requests,omitempty" yaml:"requests,omitempty" mapstructure:"requests,omitempty"`
}

type TypesKubeResourcesLimits

type TypesKubeResourcesLimits struct {
	// The CPU limit for the Pod. Example: `1000m`.
	Cpu *string `json:"cpu,omitempty" yaml:"cpu,omitempty" mapstructure:"cpu,omitempty"`

	// The memory limit for the Pod. Example: `1G`.
	Memory *string `json:"memory,omitempty" yaml:"memory,omitempty" mapstructure:"memory,omitempty"`
}

type TypesKubeResourcesRequests

type TypesKubeResourcesRequests struct {
	// The CPU request for the Pod, in cores. Example: `500m`.
	Cpu *string `json:"cpu,omitempty" yaml:"cpu,omitempty" mapstructure:"cpu,omitempty"`

	// The memory request for the Pod. Example: `500M`.
	Memory *string `json:"memory,omitempty" yaml:"memory,omitempty" mapstructure:"memory,omitempty"`
}

type TypesKubeTaints

type TypesKubeTaints struct {
	// Effect corresponds to the JSON schema field "effect".
	Effect TypesKubeTaintsEffect `json:"effect" yaml:"effect" mapstructure:"effect"`

	// Key corresponds to the JSON schema field "key".
	Key string `json:"key" yaml:"key" mapstructure:"key"`

	// Value corresponds to the JSON schema field "value".
	Value string `json:"value" yaml:"value" mapstructure:"value"`
}

func (*TypesKubeTaints) UnmarshalJSON

func (j *TypesKubeTaints) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTaintsEffect

type TypesKubeTaintsEffect string
const (
	TypesKubeTaintsEffectNoSchedule       TypesKubeTaintsEffect = "NoSchedule"
	TypesKubeTaintsEffectPreferNoSchedule TypesKubeTaintsEffect = "PreferNoSchedule"
	TypesKubeTaintsEffectNoExecute        TypesKubeTaintsEffect = "NoExecute"
)

func (*TypesKubeTaintsEffect) UnmarshalJSON

func (j *TypesKubeTaintsEffect) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeToleration

type TypesKubeToleration struct {
	// Effect corresponds to the JSON schema field "effect".
	Effect TypesKubeTolerationEffect `json:"effect" yaml:"effect" mapstructure:"effect"`

	// The key of the toleration
	Key string `json:"key" yaml:"key" mapstructure:"key"`

	// Operator corresponds to the JSON schema field "operator".
	Operator *TypesKubeTolerationOperator `json:"operator,omitempty" yaml:"operator,omitempty" mapstructure:"operator,omitempty"`

	// The value of the toleration
	Value *string `json:"value,omitempty" yaml:"value,omitempty" mapstructure:"value,omitempty"`
}

func (*TypesKubeToleration) UnmarshalJSON

func (j *TypesKubeToleration) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTolerationEffect

type TypesKubeTolerationEffect string
const (
	TypesKubeTolerationEffectNoExecute        TypesKubeTolerationEffect = "NoExecute"
	TypesKubeTolerationEffectPreferNoSchedule TypesKubeTolerationEffect = "PreferNoSchedule"
	TypesKubeTolerationEffectNoSchedule       TypesKubeTolerationEffect = "NoSchedule"
)

func (*TypesKubeTolerationEffect) UnmarshalJSON

func (j *TypesKubeTolerationEffect) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTolerationEffect_1 added in v1.27.7

type TypesKubeTolerationEffect_1 string
const (
	TypesKubeTolerationEffect_1_NoSchedule       TypesKubeTolerationEffect_1 = "NoSchedule"
	TypesKubeTolerationEffect_1_PreferNoSchedule TypesKubeTolerationEffect_1 = "PreferNoSchedule"
	TypesKubeTolerationEffect_1_NoExecute        TypesKubeTolerationEffect_1 = "NoExecute"
)

func (*TypesKubeTolerationEffect_1) UnmarshalJSON added in v1.27.7

func (j *TypesKubeTolerationEffect_1) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTolerationOperator

type TypesKubeTolerationOperator string
const (
	TypesKubeTolerationOperatorEqual  TypesKubeTolerationOperator = "Equal"
	TypesKubeTolerationOperatorExists TypesKubeTolerationOperator = "Exists"
)

func (*TypesKubeTolerationOperator) UnmarshalJSON

func (j *TypesKubeTolerationOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTolerationOperator_1 added in v1.27.7

type TypesKubeTolerationOperator_1 string
const (
	TypesKubeTolerationOperator_1_Exists TypesKubeTolerationOperator_1 = "Exists"
	TypesKubeTolerationOperator_1_Equal  TypesKubeTolerationOperator_1 = "Equal"
)

func (*TypesKubeTolerationOperator_1) UnmarshalJSON added in v1.27.7

func (j *TypesKubeTolerationOperator_1) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeToleration_1 added in v1.27.7

type TypesKubeToleration_1 struct {
	// Effect corresponds to the JSON schema field "effect".
	Effect TypesKubeTolerationEffect_1 `json:"effect" yaml:"effect" mapstructure:"effect"`

	// Key corresponds to the JSON schema field "key".
	Key string `json:"key" yaml:"key" mapstructure:"key"`

	// Operator corresponds to the JSON schema field "operator".
	Operator *TypesKubeTolerationOperator_1 `json:"operator,omitempty" yaml:"operator,omitempty" mapstructure:"operator,omitempty"`

	// Value corresponds to the JSON schema field "value".
	Value string `json:"value" yaml:"value" mapstructure:"value"`
}

func (*TypesKubeToleration_1) UnmarshalJSON added in v1.27.7

func (j *TypesKubeToleration_1) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TypesSemVer

type TypesSemVer string

type TypesSshPubKey

type TypesSshPubKey string

type TypesTcpPort

type TypesTcpPort int

type TypesUri

type TypesUri string

Jump to

Keyboard shortcuts

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