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 EksclusterKfdV1Alpha2

type EksclusterKfdV1Alpha2 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 EksclusterKfdV1Alpha2Kind `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 AWS's Elastic Kubernetes Service (EKS).

func (*EksclusterKfdV1Alpha2) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type EksclusterKfdV1Alpha2Kind

type EksclusterKfdV1Alpha2Kind string
const EksclusterKfdV1Alpha2KindEKSCluster EksclusterKfdV1Alpha2Kind = "EKSCluster"

func (*EksclusterKfdV1Alpha2Kind) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

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 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"`

	// Infrastructure corresponds to the JSON schema field "infrastructure".
	Infrastructure *SpecInfrastructure `json:"infrastructure,omitempty" yaml:"infrastructure,omitempty" mapstructure:"infrastructure,omitempty"`

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

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

	// Defines in which AWS region the cluster and all the related resources will be
	// created.
	Region TypesAwsRegion `json:"region" yaml:"region" mapstructure:"region"`

	// This map defines which will be the common tags that will be added to all the
	// resources created on AWS.
	Tags TypesAwsTags `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Configuration for tools used by furyctl, like Terraform.
	ToolsConfiguration SpecToolsConfiguration `json:"toolsConfiguration" yaml:"toolsConfiguration" mapstructure:"toolsConfiguration"`
}

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 {
	// 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"`

	// Aws corresponds to the JSON schema field "aws".
	Aws *SpecDistributionModulesAws `json:"aws,omitempty" yaml:"aws,omitempty" mapstructure:"aws,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"`

	// 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 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 map[string]SpecDistributionModulesAuthOverridesIngress

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 SpecDistributionModulesAws

type SpecDistributionModulesAws struct {
	// ClusterAutoscaler corresponds to the JSON schema field "clusterAutoscaler".
	ClusterAutoscaler *SpecDistributionModulesAwsClusterAutoscaler `json:"clusterAutoscaler,omitempty" yaml:"clusterAutoscaler,omitempty" mapstructure:"clusterAutoscaler,omitempty"`

	// EbsCsiDriver corresponds to the JSON schema field "ebsCsiDriver".
	EbsCsiDriver *SpecDistributionModulesAwsEbsCsiDriver `json:"ebsCsiDriver,omitempty" yaml:"ebsCsiDriver,omitempty" mapstructure:"ebsCsiDriver,omitempty"`

	// EbsSnapshotController corresponds to the JSON schema field
	// "ebsSnapshotController".
	EbsSnapshotController *SpecDistributionModulesAwsEbsSnapshotController `json:"ebsSnapshotController,omitempty" yaml:"ebsSnapshotController,omitempty" mapstructure:"ebsSnapshotController,omitempty"`

	// LoadBalancerController corresponds to the JSON schema field
	// "loadBalancerController".
	LoadBalancerController *SpecDistributionModulesAwsLoadBalancerController `` /* 127-byte string literal not displayed */

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

type SpecDistributionModulesAwsClusterAutoscaler

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

type SpecDistributionModulesAwsEbsCsiDriver

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

type SpecDistributionModulesAwsEbsSnapshotController

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

type SpecDistributionModulesAwsLoadBalancerController

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

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 `eks`. `none` disables the
	// module and `eks` will install Velero  and use an S3 bucket to store the
	// backups.
	//
	// 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 (
	SpecDistributionModulesDrTypeEks  SpecDistributionModulesDrType = "eks"
	SpecDistributionModulesDrTypeNone SpecDistributionModulesDrType = "none"
)

func (*SpecDistributionModulesDrType) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDrVelero

type SpecDistributionModulesDrVelero struct {
	// Eks corresponds to the JSON schema field "eks".
	Eks SpecDistributionModulesDrVeleroEks `json:"eks" yaml:"eks" mapstructure:"eks"`

	// 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"`
}

func (*SpecDistributionModulesDrVelero) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesDrVeleroEks

type SpecDistributionModulesDrVeleroEks struct {
	// The name of the bucket for Velero.
	BucketName TypesAwsS3BucketName `json:"bucketName" yaml:"bucketName" mapstructure:"bucketName"`

	// The region where the bucket for Velero will be located.
	Region TypesAwsRegion `json:"region" yaml:"region" mapstructure:"region"`
}

func (*SpecDistributionModulesDrVeleroEks) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

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 SpecDistributionModulesIngress

type SpecDistributionModulesIngress struct {
	// The base domain used for all the KFD infrastructural ingresses. If in the nginx
	// `dual` configuration type, this value should be the same as the
	// `.spec.distribution.modules.ingress.dns.private.name` zone.
	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"`

	// Dns corresponds to the JSON schema field "dns".
	Dns *SpecDistributionModulesIngressDNS `json:"dns,omitempty" yaml:"dns,omitempty" mapstructure:"dns,omitempty"`

	// Forecastle corresponds to the JSON schema field "forecastle".
	Forecastle *SpecDistributionModulesIngressForecastle `json:"forecastle,omitempty" yaml:"forecastle,omitempty" mapstructure:"forecastle,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"`
}

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, must be `dns01` for using DNS challenge or
	// `http01` for using HTTP challenge.
	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 (
	SpecDistributionModulesIngressCertManagerClusterIssuerTypeDns01  SpecDistributionModulesIngressCertManagerClusterIssuerType = "dns01"
	SpecDistributionModulesIngressCertManagerClusterIssuerTypeHttp01 SpecDistributionModulesIngressCertManagerClusterIssuerType = "http01"
)

func (*SpecDistributionModulesIngressCertManagerClusterIssuerType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressDNS

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

	// Private corresponds to the JSON schema field "private".
	Private *SpecDistributionModulesIngressDNSPrivate `json:"private,omitempty" yaml:"private,omitempty" mapstructure:"private,omitempty"`

	// Public corresponds to the JSON schema field "public".
	Public *SpecDistributionModulesIngressDNSPublic `json:"public,omitempty" yaml:"public,omitempty" mapstructure:"public,omitempty"`
}

DNS definition, used in conjunction with `externalDNS` package to automate DNS management and certificates emission.

type SpecDistributionModulesIngressDNSPrivate

type SpecDistributionModulesIngressDNSPrivate struct {
	// By default, a Terraform data source will be used to get the private DNS zone.
	// Set to `true` to create the private zone instead.
	Create bool `json:"create" yaml:"create" mapstructure:"create"`

	// The name of the private hosted zone. Example: `internal.fury-demo.sighup.io`.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

The private DNS zone is used only when `ingress.nginx.type` is `dual`, for exposing infrastructural services only in the private DNS zone.

func (*SpecDistributionModulesIngressDNSPrivate) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecDistributionModulesIngressDNSPublic

type SpecDistributionModulesIngressDNSPublic struct {
	// By default, a Terraform data source will be used to get the public DNS zone.
	// Set to `true` to create the public zone instead.
	Create bool `json:"create" yaml:"create" mapstructure:"create"`

	// The name of the public hosted zone.
	Name string `json:"name" yaml:"name" mapstructure:"name"`
}

func (*SpecDistributionModulesIngressDNSPublic) UnmarshalJSON

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

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 (
	SpecDistributionModulesMonitoringTypeMimir           SpecDistributionModulesMonitoringType = "mimir"
	SpecDistributionModulesMonitoringTypeNone            SpecDistributionModulesMonitoringType = "none"
	SpecDistributionModulesMonitoringTypePrometheus      SpecDistributionModulesMonitoringType = "prometheus"
	SpecDistributionModulesMonitoringTypePrometheusAgent SpecDistributionModulesMonitoringType = "prometheusAgent"
)

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 {
	// 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"`
}

Configuration for the Networking module.

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 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 (
	SpecDistributionModulesPolicyTypeGatekeeper SpecDistributionModulesPolicyType = "gatekeeper"
	SpecDistributionModulesPolicyTypeKyverno    SpecDistributionModulesPolicyType = "kyverno"
	SpecDistributionModulesPolicyTypeNone       SpecDistributionModulesPolicyType = "none"
)

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 (
	SpecDistributionModulesTracingTempoBackendExternalEndpoint SpecDistributionModulesTracingTempoBackend = "externalEndpoint"
	SpecDistributionModulesTracingTempoBackendMinio            SpecDistributionModulesTracingTempoBackend = "minio"
)

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 SpecInfrastructure

type SpecInfrastructure struct {
	// Vpc corresponds to the JSON schema field "vpc".
	Vpc *SpecInfrastructureVpc `json:"vpc,omitempty" yaml:"vpc,omitempty" mapstructure:"vpc,omitempty"`

	// Vpn corresponds to the JSON schema field "vpn".
	Vpn *SpecInfrastructureVpn `json:"vpn,omitempty" yaml:"vpn,omitempty" mapstructure:"vpn,omitempty"`
}

type SpecInfrastructureVpc

type SpecInfrastructureVpc struct {
	// Network corresponds to the JSON schema field "network".
	Network SpecInfrastructureVpcNetwork `json:"network" yaml:"network" mapstructure:"network"`
}

Configuration for the VPC that will be created to host the EKS cluster and its related resources. If you already have a VPC that you want to use, leave this section empty and use `.spec.kubernetes.vpcId` instead.

func (*SpecInfrastructureVpc) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecInfrastructureVpcNetwork

type SpecInfrastructureVpcNetwork struct {
	// The network CIDR for the VPC that will be created
	Cidr TypesCidr `json:"cidr" yaml:"cidr" mapstructure:"cidr"`

	// SubnetsCidrs corresponds to the JSON schema field "subnetsCidrs".
	SubnetsCidrs SpecInfrastructureVpcNetworkSubnetsCidrs `json:"subnetsCidrs" yaml:"subnetsCidrs" mapstructure:"subnetsCidrs"`
}

func (*SpecInfrastructureVpcNetwork) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecInfrastructureVpcNetworkSubnetsCidrs

type SpecInfrastructureVpcNetworkSubnetsCidrs struct {
	// The network CIDRs for the private subnets, where the nodes, the pods, and the
	// private load balancers will be created
	Private []TypesCidr `json:"private" yaml:"private" mapstructure:"private"`

	// The network CIDRs for the public subnets, where the public load balancers and
	// the VPN servers will be created
	Public []TypesCidr `json:"public" yaml:"public" mapstructure:"public"`
}

Network CIDRS configuration for private and public subnets.

func (*SpecInfrastructureVpcNetworkSubnetsCidrs) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecInfrastructureVpn

type SpecInfrastructureVpn struct {
	// This value defines the prefix for the bucket name where the VPN servers will
	// store their state (VPN certificates, users).
	BucketNamePrefix *TypesAwsS3BucketNamePrefix `json:"bucketNamePrefix,omitempty" yaml:"bucketNamePrefix,omitempty" mapstructure:"bucketNamePrefix,omitempty"`

	// The `dhParamsBits` size used for the creation of the .pem file that will be
	// used in the dh openvpn server.conf file.
	DhParamsBits *int `json:"dhParamsBits,omitempty" yaml:"dhParamsBits,omitempty" mapstructure:"dhParamsBits,omitempty"`

	// The size of the disk in GB for each VPN server. Example: entering `50` will
	// create disks of 50 GB.
	DiskSize *int `json:"diskSize,omitempty" yaml:"diskSize,omitempty" mapstructure:"diskSize,omitempty"`

	// Overrides IAM user name for the VPN. Default is to use the cluster name.
	IamUserNameOverride *TypesAwsIamRoleName `json:"iamUserNameOverride,omitempty" yaml:"iamUserNameOverride,omitempty" mapstructure:"iamUserNameOverride,omitempty"`

	// The type of the AWS EC2 instance for each VPN server. Follows AWS EC2
	// nomenclature. Example: `t3-micro`.
	InstanceType *string `json:"instanceType,omitempty" yaml:"instanceType,omitempty" mapstructure:"instanceType,omitempty"`

	// The number of VPN server instances to create, `0` to skip the creation.
	Instances *int `json:"instances,omitempty" yaml:"instances,omitempty" mapstructure:"instances,omitempty"`

	// The username of the account to create in the bastion's operating system.
	OperatorName *string `json:"operatorName,omitempty" yaml:"operatorName,omitempty" mapstructure:"operatorName,omitempty"`

	// The port where each OpenVPN server will listen for connections.
	Port *TypesTcpPort `json:"port,omitempty" yaml:"port,omitempty" mapstructure:"port,omitempty"`

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

	// The ID of the VPC where the VPN server instances will be created, required only
	// if `.spec.infrastructure.vpc` is omitted.
	VpcId *TypesAwsVpcId `json:"vpcId,omitempty" yaml:"vpcId,omitempty" mapstructure:"vpcId,omitempty"`

	// The network CIDR that will be used to assign IP addresses to the VPN clients
	// when connected.
	VpnClientsSubnetCidr TypesCidr `json:"vpnClientsSubnetCidr" yaml:"vpnClientsSubnetCidr" mapstructure:"vpnClientsSubnetCidr"`
}

Configuration for the VPN server instances.

func (*SpecInfrastructureVpn) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecInfrastructureVpnSsh

type SpecInfrastructureVpnSsh struct {
	// The network CIDR enabled in the security group to access the VPN servers
	// (bastions) via SSH. Setting this to `0.0.0.0/0` will allow any source.
	AllowedFromCidrs []TypesCidr `json:"allowedFromCidrs" yaml:"allowedFromCidrs" mapstructure:"allowedFromCidrs"`

	// List of GitHub usernames from whom get their SSH public key and add as
	// authorized keys of the `operatorName` user.
	GithubUsersName []string `json:"githubUsersName" yaml:"githubUsersName" mapstructure:"githubUsersName"`

	// **NOT IN USE**, use `githubUsersName` instead. This value defines the public
	// keys that will be added to the bastion's operating system.
	PublicKeys []interface{} `json:"publicKeys,omitempty" yaml:"publicKeys,omitempty" mapstructure:"publicKeys,omitempty"`
}

func (*SpecInfrastructureVpnSsh) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetes

type SpecKubernetes struct {
	// ApiServer corresponds to the JSON schema field "apiServer".
	ApiServer SpecKubernetesAPIServer `json:"apiServer" yaml:"apiServer" mapstructure:"apiServer"`

	// AwsAuth corresponds to the JSON schema field "awsAuth".
	AwsAuth *SpecKubernetesAwsAuth `json:"awsAuth,omitempty" yaml:"awsAuth,omitempty" mapstructure:"awsAuth,omitempty"`

	// Overrides the default prefix for the IAM role name of the EKS cluster. If not
	// set, a name will be generated from the cluster name.
	ClusterIAMRoleNamePrefixOverride *TypesAwsIamRoleNamePrefix `` /* 157-byte string literal not displayed */

	// Optional Kubernetes Cluster log retention in CloudWatch, expressed in days.
	// Setting the value to zero (`0`) makes retention last forever. Default is `90`
	// days.
	LogRetentionDays *SpecKubernetesLogRetentionDays `json:"logRetentionDays,omitempty" yaml:"logRetentionDays,omitempty" mapstructure:"logRetentionDays,omitempty"`

	// Optional list of Kubernetes Cluster log types to enable. Defaults to all types.
	LogsTypes []SpecKubernetesLogsTypesElem `json:"logsTypes,omitempty" yaml:"logsTypes,omitempty" mapstructure:"logsTypes,omitempty"`

	// The SSH public key that can connect to the nodes via SSH using the `ec2-user`
	// user. Example: the contents of your `~/.ssh/id_ras.pub` file.
	NodeAllowedSshPublicKey interface{} `json:"nodeAllowedSshPublicKey" yaml:"nodeAllowedSshPublicKey" mapstructure:"nodeAllowedSshPublicKey"`

	// Global default AMI type used for EKS worker nodes. This will apply to all node
	// pools unless overridden by a specific node pool.
	NodePoolGlobalAmiType SpecKubernetesNodePoolGlobalAmiType `json:"nodePoolGlobalAmiType" yaml:"nodePoolGlobalAmiType" mapstructure:"nodePoolGlobalAmiType"`

	// NodePools corresponds to the JSON schema field "nodePools".
	NodePools []SpecKubernetesNodePool `json:"nodePools" yaml:"nodePools" mapstructure:"nodePools"`

	// Accepted values are `launch_configurations`, `launch_templates` or `both`. For
	// new clusters use `launch_templates`, for adopting an existing cluster you'll
	// need to migrate from `launch_configurations` to `launch_templates` using `both`
	// as interim.
	NodePoolsLaunchKind SpecKubernetesNodePoolsLaunchKind `json:"nodePoolsLaunchKind" yaml:"nodePoolsLaunchKind" mapstructure:"nodePoolsLaunchKind"`

	// This value defines the network CIDR that will be used to assign IP addresses to
	// Kubernetes services.
	ServiceIpV4Cidr *TypesCidr `json:"serviceIpV4Cidr,omitempty" yaml:"serviceIpV4Cidr,omitempty" mapstructure:"serviceIpV4Cidr,omitempty"`

	// Required only if `.spec.infrastructure.vpc` is omitted. This value defines the
	// ID of the subnet where the EKS cluster will be created.
	SubnetIds []TypesAwsSubnetId `json:"subnetIds,omitempty" yaml:"subnetIds,omitempty" mapstructure:"subnetIds,omitempty"`

	// Required only if `.spec.infrastructure.vpc` is omitted. This value defines the
	// ID of the VPC where the EKS cluster and its related resources will be created.
	VpcId *TypesAwsVpcId `json:"vpcId,omitempty" yaml:"vpcId,omitempty" mapstructure:"vpcId,omitempty"`

	// Overrides the default prefix for the IAM role name of the EKS workers. If not
	// set, a name will be generated from the cluster name.
	WorkersIAMRoleNamePrefixOverride *TypesAwsIamRoleNamePrefix `` /* 157-byte string literal not displayed */
}

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 SpecKubernetesAPIServer

type SpecKubernetesAPIServer struct {
	// This value defines if the Kubernetes API server will be accessible from the
	// private subnets. Default it `true`.
	PrivateAccess bool `json:"privateAccess" yaml:"privateAccess" mapstructure:"privateAccess"`

	// The network CIDRs from the private subnets that will be allowed access the
	// Kubernetes API server.
	PrivateAccessCidrs []TypesCidr `json:"privateAccessCidrs,omitempty" yaml:"privateAccessCidrs,omitempty" mapstructure:"privateAccessCidrs,omitempty"`

	// This value defines if the Kubernetes API server will be accessible from the
	// public subnets. Default is `false`.
	PublicAccess bool `json:"publicAccess" yaml:"publicAccess" mapstructure:"publicAccess"`

	// The network CIDRs from the public subnets that will be allowed access the
	// Kubernetes API server.
	PublicAccessCidrs []TypesCidr `json:"publicAccessCidrs,omitempty" yaml:"publicAccessCidrs,omitempty" mapstructure:"publicAccessCidrs,omitempty"`
}

func (*SpecKubernetesAPIServer) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesAwsAuth

type SpecKubernetesAwsAuth struct {
	// This optional array defines additional AWS accounts that will be added to the
	// `aws-auth` configmap.
	AdditionalAccounts []string `json:"additionalAccounts,omitempty" yaml:"additionalAccounts,omitempty" mapstructure:"additionalAccounts,omitempty"`

	// This optional array defines additional IAM roles that will be added to the
	// `aws-auth` configmap.
	Roles []SpecKubernetesAwsAuthRole `json:"roles,omitempty" yaml:"roles,omitempty" mapstructure:"roles,omitempty"`

	// This optional array defines additional IAM users that will be added to the
	// `aws-auth` configmap.
	Users []SpecKubernetesAwsAuthUser `json:"users,omitempty" yaml:"users,omitempty" mapstructure:"users,omitempty"`
}

Optional additional security configuration for EKS IAM via the `aws-auth` configmap.

Ref: https://docs.aws.amazon.com/eks/latest/userguide/auth-configmap.html

type SpecKubernetesAwsAuthRole

type SpecKubernetesAwsAuthRole struct {
	// Groups corresponds to the JSON schema field "groups".
	Groups []string `json:"groups" yaml:"groups" mapstructure:"groups"`

	// Rolearn corresponds to the JSON schema field "rolearn".
	Rolearn TypesAwsArn `json:"rolearn" yaml:"rolearn" mapstructure:"rolearn"`

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

func (*SpecKubernetesAwsAuthRole) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesAwsAuthUser

type SpecKubernetesAwsAuthUser struct {
	// Groups corresponds to the JSON schema field "groups".
	Groups []string `json:"groups" yaml:"groups" mapstructure:"groups"`

	// Userarn corresponds to the JSON schema field "userarn".
	Userarn TypesAwsArn `json:"userarn" yaml:"userarn" mapstructure:"userarn"`

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

func (*SpecKubernetesAwsAuthUser) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesLogRetentionDays added in v1.28.5

type SpecKubernetesLogRetentionDays int

func (*SpecKubernetesLogRetentionDays) UnmarshalJSON added in v1.28.5

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesLogsTypesElem added in v1.25.10

type SpecKubernetesLogsTypesElem string
const (
	SpecKubernetesLogsTypesElemApi               SpecKubernetesLogsTypesElem = "api"
	SpecKubernetesLogsTypesElemAudit             SpecKubernetesLogsTypesElem = "audit"
	SpecKubernetesLogsTypesElemAuthenticator     SpecKubernetesLogsTypesElem = "authenticator"
	SpecKubernetesLogsTypesElemControllerManager SpecKubernetesLogsTypesElem = "controllerManager"
	SpecKubernetesLogsTypesElemScheduler         SpecKubernetesLogsTypesElem = "scheduler"
)

func (*SpecKubernetesLogsTypesElem) UnmarshalJSON added in v1.25.10

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePool

type SpecKubernetesNodePool struct {
	// AdditionalFirewallRules corresponds to the JSON schema field
	// "additionalFirewallRules".
	AdditionalFirewallRules *SpecKubernetesNodePoolAdditionalFirewallRules `` /* 130-byte string literal not displayed */

	// Ami corresponds to the JSON schema field "ami".
	Ami *SpecKubernetesNodePoolAmi `json:"ami,omitempty" yaml:"ami,omitempty" mapstructure:"ami,omitempty"`

	// This optional array defines additional target groups to attach to the instances
	// in the node pool.
	AttachedTargetGroups []TypesAwsArn `json:"attachedTargetGroups,omitempty" yaml:"attachedTargetGroups,omitempty" mapstructure:"attachedTargetGroups,omitempty"`

	// The container runtime to use in the nodes of the node pool. Default is
	// `containerd`.
	ContainerRuntime *SpecKubernetesNodePoolContainerRuntime `json:"containerRuntime,omitempty" yaml:"containerRuntime,omitempty" mapstructure:"containerRuntime,omitempty"`

	// Instance corresponds to the JSON schema field "instance".
	Instance SpecKubernetesNodePoolInstance `json:"instance" yaml:"instance" mapstructure:"instance"`

	// Kubernetes labels that will be added to the nodes.
	Labels TypesKubeLabels_1 `json:"labels,omitempty" yaml:"labels,omitempty" mapstructure:"labels,omitempty"`

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

	// Size corresponds to the JSON schema field "size".
	Size SpecKubernetesNodePoolSize `json:"size" yaml:"size" mapstructure:"size"`

	// Optional list of subnet IDs where to create the nodes.
	SubnetIds []TypesAwsSubnetId `json:"subnetIds,omitempty" yaml:"subnetIds,omitempty" mapstructure:"subnetIds,omitempty"`

	// AWS tags that will be added to the ASG and EC2 instances.
	Tags TypesAwsTags `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Kubernetes taints that will be added to the nodes.
	Taints TypesKubeTaints `json:"taints,omitempty" yaml:"taints,omitempty" mapstructure:"taints,omitempty"`

	// The type of Node Pool, can be `self-managed` for using customization like
	// custom AMI, set max pods per node or `eks-managed` for using prebuilt AMIs from
	// Amazon via the `ami.type` field. It is recommended to use `self-managed`.
	Type SpecKubernetesNodePoolType `json:"type" yaml:"type" mapstructure:"type"`
}

Array with all the node pool definitions that will join the cluster. Each item is an object.

func (*SpecKubernetesNodePool) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlock

type SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlock struct {
	// CidrBlocks corresponds to the JSON schema field "cidrBlocks".
	CidrBlocks []TypesCidr `json:"cidrBlocks" yaml:"cidrBlocks" mapstructure:"cidrBlocks"`

	// Name corresponds to the JSON schema field "name".
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// Ports corresponds to the JSON schema field "ports".
	Ports SpecKubernetesNodePoolAdditionalFirewallRulePorts `json:"ports" yaml:"ports" mapstructure:"ports"`

	// Protocol corresponds to the JSON schema field "protocol".
	Protocol TypesAwsIpProtocol `json:"protocol" yaml:"protocol" mapstructure:"protocol"`

	// Additional AWS tags for the Firewall rule.
	Tags TypesAwsTags `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// The type of the Firewall rule, can be `ingress` for incoming traffic or
	// `egress` for outgoing traffic.
	Type SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlock) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType

type SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType string
const (
	SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockTypeEgress  SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType = "egress"
	SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockTypeIngress SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType = "ingress"
)

func (*SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlockType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRulePorts

type SpecKubernetesNodePoolAdditionalFirewallRulePorts struct {
	// From corresponds to the JSON schema field "from".
	From TypesTcpPort `json:"from" yaml:"from" mapstructure:"from"`

	// To corresponds to the JSON schema field "to".
	To TypesTcpPort `json:"to" yaml:"to" mapstructure:"to"`
}

Port range for the Firewall Rule.

func (*SpecKubernetesNodePoolAdditionalFirewallRulePorts) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleSelf

type SpecKubernetesNodePoolAdditionalFirewallRuleSelf struct {
	// The name of the Firewall rule.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// Ports corresponds to the JSON schema field "ports".
	Ports SpecKubernetesNodePoolAdditionalFirewallRulePorts `json:"ports" yaml:"ports" mapstructure:"ports"`

	// The protocol of the Firewall rule.
	Protocol TypesAwsIpProtocol `json:"protocol" yaml:"protocol" mapstructure:"protocol"`

	// If `true`, the source will be the security group itself.
	Self bool `json:"self" yaml:"self" mapstructure:"self"`

	// Additional AWS tags for the Firewall rule.
	Tags TypesAwsTags `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// The type of the Firewall rule, can be `ingress` for incoming traffic or
	// `egress` for outgoing traffic.
	Type SpecKubernetesNodePoolAdditionalFirewallRuleSelfType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecKubernetesNodePoolAdditionalFirewallRuleSelf) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleSelfType

type SpecKubernetesNodePoolAdditionalFirewallRuleSelfType string
const (
	SpecKubernetesNodePoolAdditionalFirewallRuleSelfTypeEgress  SpecKubernetesNodePoolAdditionalFirewallRuleSelfType = "egress"
	SpecKubernetesNodePoolAdditionalFirewallRuleSelfTypeIngress SpecKubernetesNodePoolAdditionalFirewallRuleSelfType = "ingress"
)

func (*SpecKubernetesNodePoolAdditionalFirewallRuleSelfType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupId

type SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupId struct {
	// The name for the additional Firewall rule Security Group.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// Ports corresponds to the JSON schema field "ports".
	Ports SpecKubernetesNodePoolAdditionalFirewallRulePorts `json:"ports" yaml:"ports" mapstructure:"ports"`

	// The protocol of the Firewall rule.
	Protocol TypesAwsIpProtocol `json:"protocol" yaml:"protocol" mapstructure:"protocol"`

	// The source security group ID.
	SourceSecurityGroupId string `json:"sourceSecurityGroupId" yaml:"sourceSecurityGroupId" mapstructure:"sourceSecurityGroupId"`

	// Additional AWS tags for the Firewall rule.
	Tags TypesAwsTags `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// The type of the Firewall rule, can be `ingress` for incoming traffic or
	// `egress` for outgoing traffic.
	Type SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType `json:"type" yaml:"type" mapstructure:"type"`
}

func (*SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupId) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType

type SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType string
const (
	SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdTypeEgress  SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType = "egress"
	SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdTypeIngress SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType = "ingress"
)

func (*SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupIdType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAdditionalFirewallRules

type SpecKubernetesNodePoolAdditionalFirewallRules struct {
	// The CIDR blocks objects definition for the Firewall rule. Even though it is a
	// list, only one item is currently supported. See
	// https://github.com/sighupio/fury-eks-installer/issues/46 for more details.
	CidrBlocks []SpecKubernetesNodePoolAdditionalFirewallRuleCidrBlock `json:"cidrBlocks,omitempty" yaml:"cidrBlocks,omitempty" mapstructure:"cidrBlocks,omitempty"`

	// Self corresponds to the JSON schema field "self".
	Self []SpecKubernetesNodePoolAdditionalFirewallRuleSelf `json:"self,omitempty" yaml:"self,omitempty" mapstructure:"self,omitempty"`

	// SourceSecurityGroupId corresponds to the JSON schema field
	// "sourceSecurityGroupId".
	SourceSecurityGroupId []SpecKubernetesNodePoolAdditionalFirewallRuleSourceSecurityGroupId `json:"sourceSecurityGroupId,omitempty" yaml:"sourceSecurityGroupId,omitempty" mapstructure:"sourceSecurityGroupId,omitempty"`
}

Optional additional firewall rules that will be attached to the nodes.

func (*SpecKubernetesNodePoolAdditionalFirewallRules) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolAmi

type SpecKubernetesNodePoolAmi struct {
	// The ID of the AMI to use for the nodes, must be set toghether with the `owner`
	// field. `ami.id` and `ami.owner` can be only set when Node Pool type is
	// `self-managed` and they can't be set at the same time than `ami.type`.
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// The owner of the AMI to use for the nodes, must be set toghether with the `id`
	// field. `ami.id` and `ami.owner` can be only set when Node Pool type is
	// `self-managed` and they can't be set at the same time than `ami.type`.
	Owner *string `json:"owner,omitempty" yaml:"owner,omitempty" mapstructure:"owner,omitempty"`

	// The AMI type defines the AMI to use for `eks-managed` and `self-managed` type
	// of Node Pools. Only Amazon Linux based AMIs are supported. It can't be set at
	// the same time than `ami.id` and `ami.owner`.
	Type *SpecKubernetesNodePoolAmiType `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`
}

Configuration for customize the Amazon Machine Image (AMI) for the machines of the Node Pool.

The AMI can be chosen either by specifing the `ami.id` and `ami.owner` fields for using a custom AMI (just with `self-managed` node pool type) or by setting the `ami.type` field to one of the official AMIs based on Amazon Linux.

type SpecKubernetesNodePoolAmiType added in v1.28.5

type SpecKubernetesNodePoolAmiType string
const (
	SpecKubernetesNodePoolAmiTypeAlinux2    SpecKubernetesNodePoolAmiType = "alinux2"
	SpecKubernetesNodePoolAmiTypeAlinux2023 SpecKubernetesNodePoolAmiType = "alinux2023"
)

func (*SpecKubernetesNodePoolAmiType) UnmarshalJSON added in v1.28.5

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolContainerRuntime

type SpecKubernetesNodePoolContainerRuntime string
const (
	SpecKubernetesNodePoolContainerRuntimeContainerd SpecKubernetesNodePoolContainerRuntime = "containerd"
	SpecKubernetesNodePoolContainerRuntimeDocker     SpecKubernetesNodePoolContainerRuntime = "docker"
)

func (*SpecKubernetesNodePoolContainerRuntime) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolGlobalAmiType added in v1.28.5

type SpecKubernetesNodePoolGlobalAmiType string
const (
	SpecKubernetesNodePoolGlobalAmiTypeAlinux2    SpecKubernetesNodePoolGlobalAmiType = "alinux2"
	SpecKubernetesNodePoolGlobalAmiTypeAlinux2023 SpecKubernetesNodePoolGlobalAmiType = "alinux2023"
)

func (*SpecKubernetesNodePoolGlobalAmiType) UnmarshalJSON added in v1.28.5

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolInstance

type SpecKubernetesNodePoolInstance struct {
	// Set the maximum pods per node to a custom value. If not set will use EKS
	// default value that depends on the instance type.
	//
	// Ref:
	// https://github.com/awslabs/amazon-eks-ami/blob/main/templates/shared/runtime/eni-max-pods.txt
	MaxPods *int `json:"maxPods,omitempty" yaml:"maxPods,omitempty" mapstructure:"maxPods,omitempty"`

	// If `true`, the nodes will be created as spot instances. Default is `false`.
	Spot *bool `json:"spot,omitempty" yaml:"spot,omitempty" mapstructure:"spot,omitempty"`

	// The instance type to use for the nodes.
	Type string `json:"type" yaml:"type" mapstructure:"type"`

	// The size of the disk in GB.
	VolumeSize *int `json:"volumeSize,omitempty" yaml:"volumeSize,omitempty" mapstructure:"volumeSize,omitempty"`

	// Volume type for the instance disk. Default is `gp2`.
	VolumeType *SpecKubernetesNodePoolInstanceVolumeType `json:"volumeType,omitempty" yaml:"volumeType,omitempty" mapstructure:"volumeType,omitempty"`
}

Configuration for the instances that will be used in the node pool.

func (*SpecKubernetesNodePoolInstance) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolInstanceVolumeType added in v1.27.7

type SpecKubernetesNodePoolInstanceVolumeType string
const (
	SpecKubernetesNodePoolInstanceVolumeTypeGp2      SpecKubernetesNodePoolInstanceVolumeType = "gp2"
	SpecKubernetesNodePoolInstanceVolumeTypeGp3      SpecKubernetesNodePoolInstanceVolumeType = "gp3"
	SpecKubernetesNodePoolInstanceVolumeTypeIo1      SpecKubernetesNodePoolInstanceVolumeType = "io1"
	SpecKubernetesNodePoolInstanceVolumeTypeStandard SpecKubernetesNodePoolInstanceVolumeType = "standard"
)

func (*SpecKubernetesNodePoolInstanceVolumeType) UnmarshalJSON added in v1.27.7

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolSize

type SpecKubernetesNodePoolSize struct {
	// The maximum number of nodes in the node pool.
	Max int `json:"max" yaml:"max" mapstructure:"max"`

	// The minimum number of nodes in the node pool.
	Min int `json:"min" yaml:"min" mapstructure:"min"`
}

func (*SpecKubernetesNodePoolSize) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolType added in v1.25.9

type SpecKubernetesNodePoolType string
const (
	SpecKubernetesNodePoolTypeEksManaged  SpecKubernetesNodePoolType = "eks-managed"
	SpecKubernetesNodePoolTypeSelfManaged SpecKubernetesNodePoolType = "self-managed"
)

func (*SpecKubernetesNodePoolType) UnmarshalJSON added in v1.25.9

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

UnmarshalJSON implements json.Unmarshaler.

type SpecKubernetesNodePoolsLaunchKind

type SpecKubernetesNodePoolsLaunchKind string
const (
	SpecKubernetesNodePoolsLaunchKindBoth                 SpecKubernetesNodePoolsLaunchKind = "both"
	SpecKubernetesNodePoolsLaunchKindLaunchConfigurations SpecKubernetesNodePoolsLaunchKind = "launch_configurations"
	SpecKubernetesNodePoolsLaunchKindLaunchTemplates      SpecKubernetesNodePoolsLaunchKind = "launch_templates"
)

func (*SpecKubernetesNodePoolsLaunchKind) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecPlugins added in v1.25.8

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 added in v1.25.8

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 added in v1.25.8

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 added in v1.25.8

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 added in v1.25.8

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

UnmarshalJSON implements json.Unmarshaler.

type SpecPluginsHelmRepositories added in v1.25.8

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 added in v1.25.8

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 SpecToolsConfiguration

type SpecToolsConfiguration struct {
	// Terraform corresponds to the JSON schema field "terraform".
	Terraform SpecToolsConfigurationTerraform `json:"terraform" yaml:"terraform" mapstructure:"terraform"`
}

func (*SpecToolsConfiguration) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecToolsConfigurationTerraform

type SpecToolsConfigurationTerraform struct {
	// State corresponds to the JSON schema field "state".
	State SpecToolsConfigurationTerraformState `json:"state" yaml:"state" mapstructure:"state"`
}

func (*SpecToolsConfigurationTerraform) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecToolsConfigurationTerraformState

type SpecToolsConfigurationTerraformState struct {
	// S3 corresponds to the JSON schema field "s3".
	S3 SpecToolsConfigurationTerraformStateS3 `json:"s3" yaml:"s3" mapstructure:"s3"`
}

Configuration for storing the Terraform state of the cluster.

func (*SpecToolsConfigurationTerraformState) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type SpecToolsConfigurationTerraformStateS3

type SpecToolsConfigurationTerraformStateS3 struct {
	// This value defines which bucket will be used to store all the states.
	BucketName TypesAwsS3BucketName `json:"bucketName" yaml:"bucketName" mapstructure:"bucketName"`

	// This value defines which folder will be used to store all the states inside the
	// bucket.
	KeyPrefix TypesAwsS3KeyPrefix `json:"keyPrefix" yaml:"keyPrefix" mapstructure:"keyPrefix"`

	// This value defines in which region the bucket is located.
	Region TypesAwsRegion `json:"region" yaml:"region" mapstructure:"region"`

	// This value defines if the region of the bucket should be validated or not by
	// Terraform, useful when using a bucket in a recently added region.
	SkipRegionValidation *bool `json:"skipRegionValidation,omitempty" yaml:"skipRegionValidation,omitempty" mapstructure:"skipRegionValidation,omitempty"`
}

Configuration for the S3 bucket used to store the Terraform state.

func (*SpecToolsConfigurationTerraformStateS3) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type TypesAwsArn

type TypesAwsArn string

type TypesAwsIamRoleName added in v1.27.7

type TypesAwsIamRoleName string

type TypesAwsIamRoleNamePrefix added in v1.27.7

type TypesAwsIamRoleNamePrefix string

type TypesAwsIpProtocol

type TypesAwsIpProtocol string

type TypesAwsRegion

type TypesAwsRegion string
const (
	TypesAwsRegionAfSouth1     TypesAwsRegion = "af-south-1"
	TypesAwsRegionApEast1      TypesAwsRegion = "ap-east-1"
	TypesAwsRegionApNortheast1 TypesAwsRegion = "ap-northeast-1"
	TypesAwsRegionApNortheast2 TypesAwsRegion = "ap-northeast-2"
	TypesAwsRegionApNortheast3 TypesAwsRegion = "ap-northeast-3"
	TypesAwsRegionApSouth1     TypesAwsRegion = "ap-south-1"
	TypesAwsRegionApSouth2     TypesAwsRegion = "ap-south-2"
	TypesAwsRegionApSoutheast1 TypesAwsRegion = "ap-southeast-1"
	TypesAwsRegionApSoutheast2 TypesAwsRegion = "ap-southeast-2"
	TypesAwsRegionApSoutheast3 TypesAwsRegion = "ap-southeast-3"
	TypesAwsRegionApSoutheast4 TypesAwsRegion = "ap-southeast-4"
	TypesAwsRegionCaCentral1   TypesAwsRegion = "ca-central-1"
	TypesAwsRegionEuCentral1   TypesAwsRegion = "eu-central-1"
	TypesAwsRegionEuCentral2   TypesAwsRegion = "eu-central-2"
	TypesAwsRegionEuNorth1     TypesAwsRegion = "eu-north-1"
	TypesAwsRegionEuSouth1     TypesAwsRegion = "eu-south-1"
	TypesAwsRegionEuSouth2     TypesAwsRegion = "eu-south-2"
	TypesAwsRegionEuWest1      TypesAwsRegion = "eu-west-1"
	TypesAwsRegionEuWest2      TypesAwsRegion = "eu-west-2"
	TypesAwsRegionEuWest3      TypesAwsRegion = "eu-west-3"
	TypesAwsRegionMeCentral1   TypesAwsRegion = "me-central-1"
	TypesAwsRegionMeSouth1     TypesAwsRegion = "me-south-1"
	TypesAwsRegionSaEast1      TypesAwsRegion = "sa-east-1"
	TypesAwsRegionUsEast1      TypesAwsRegion = "us-east-1"
	TypesAwsRegionUsEast2      TypesAwsRegion = "us-east-2"
	TypesAwsRegionUsGovEast1   TypesAwsRegion = "us-gov-east-1"
	TypesAwsRegionUsGovWest1   TypesAwsRegion = "us-gov-west-1"
	TypesAwsRegionUsWest1      TypesAwsRegion = "us-west-1"
	TypesAwsRegionUsWest2      TypesAwsRegion = "us-west-2"
)

func (*TypesAwsRegion) UnmarshalJSON

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

UnmarshalJSON implements json.Unmarshaler.

type TypesAwsS3BucketName

type TypesAwsS3BucketName string

type TypesAwsS3BucketNamePrefix added in v1.25.6

type TypesAwsS3BucketNamePrefix string

type TypesAwsS3KeyPrefix

type TypesAwsS3KeyPrefix string

type TypesAwsSshPubKey

type TypesAwsSshPubKey string

type TypesAwsSubnetId

type TypesAwsSubnetId string

type TypesAwsTags

type TypesAwsTags map[string]string

type TypesAwsVpcId

type TypesAwsVpcId string

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 TypesFuryModuleComponentOverridesWithIAMRoleName added in v1.27.7

type TypesFuryModuleComponentOverridesWithIAMRoleName struct {
	// IamRoleName corresponds to the JSON schema field "iamRoleName".
	IamRoleName *TypesAwsIamRoleName `json:"iamRoleName,omitempty" yaml:"iamRoleName,omitempty" mapstructure:"iamRoleName,omitempty"`

	// The node selector to use to place the pods for the load balancer controller
	// module.
	NodeSelector TypesKubeNodeSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty" mapstructure:"nodeSelector,omitempty"`

	// The tolerations that will be added to the pods for the cluster autoscaler
	// module.
	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 []string

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"
	TypesKubeTolerationEffectNoSchedule       TypesKubeTolerationEffect = "NoSchedule"
	TypesKubeTolerationEffectPreferNoSchedule TypesKubeTolerationEffect = "PreferNoSchedule"
)

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_NoExecute        TypesKubeTolerationEffect_1 = "NoExecute"
	TypesKubeTolerationEffect_1_NoSchedule       TypesKubeTolerationEffect_1 = "NoSchedule"
	TypesKubeTolerationEffect_1_PreferNoSchedule TypesKubeTolerationEffect_1 = "PreferNoSchedule"
)

func (*TypesKubeTolerationEffect_1) UnmarshalJSON added in v1.27.7

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

UnmarshalJSON implements json.Unmarshaler.

type TypesKubeTolerationOperator added in v1.25.5

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

func (*TypesKubeTolerationOperator) UnmarshalJSON added in v1.25.5

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_Equal  TypesKubeTolerationOperator_1 = "Equal"
	TypesKubeTolerationOperator_1_Exists TypesKubeTolerationOperator_1 = "Exists"
)

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