v1beta1

package
v0.9.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

This package defines the configuration for the Opni Monitoring gateway and agent. This spec is different from the Kubernetes Custom Resources used to deploy the gateway with an operator. Those definitions can be found in apis/monitoring/v1beta1.

Index

Constants

View Source
const (
	APIVersion = "v1beta1"
)

Variables

View Source
var File_github_com_rancher_opni_pkg_config_v1beta1_agent_config_proto protoreflect.FileDescriptor

Functions

func DecodeObject

func DecodeObject(kind string, document []byte) (meta.Object, error)

Types

type AgentConfig

type AgentConfig struct {
	meta.TypeMeta `json:",inline"`

	Spec AgentConfigSpec `json:"spec,omitempty"`
}

type AgentConfigSpec

type AgentConfigSpec struct {
	// The address which the agent will listen on for incoming connections.
	// This should be in the format "host:port" or ":port", and must not
	// include a scheme.
	ListenAddress string `json:"listenAddress,omitempty"`
	// The address of the gateway's public GRPC API. This should be of the format
	// "host:port" with no scheme.
	GatewayAddress string `json:"gatewayAddress,omitempty"`
	// The name of the identity provider to use. Defaults to "kubernetes".
	IdentityProvider string `json:"identityProvider,omitempty"`
	// The type of trust strategy to use for verifying the authenticity of the
	// gateway server. Defaults to "pkp".
	TrustStrategy TrustStrategyKind `json:"trustStrategy,omitempty"`
	// Configuration for agent keyring storage.
	Storage   StorageSpec    `json:"storage,omitempty"`
	Rules     *RulesSpec     `json:"rules,omitempty"`
	Bootstrap *BootstrapSpec `json:"bootstrap,omitempty"`
	LogLevel  string         `json:"logLevel,omitempty"`
	Plugins   PluginsSpec    `json:"plugins,omitempty"`
	Keyring   KeyringSpec    `json:"keyring,omitempty"`
}

func (*AgentConfigSpec) ContainsBootstrapCredentials added in v0.6.0

func (s *AgentConfigSpec) ContainsBootstrapCredentials() bool

func (*AgentConfigSpec) SetDefaults

func (s *AgentConfigSpec) SetDefaults()

type AlertingSpec added in v0.5.4

type AlertingSpec struct {
	Namespace             string `json:"Namespace,omitempty"`
	WorkerNodeService     string `json:"workerNodeService,omitempty"`
	WorkerPort            int    `json:"workerPort,omitempty"`
	WorkerStatefulSet     string `json:"workerStatefulSet,omitempty"`
	ControllerNodeService string `json:"controllerNodeService,omitempty"`
	ControllerNodePort    int    `json:"controllerNodePort,omitempty"`
	ControllerClusterPort int    `json:"controllerClusterPort,omitempty"`
	ControllerStatefulSet string `json:"controllerStatefulSet,omitempty"`
	ConfigMap             string `json:"configMap,omitempty"`
	ManagementHookHandler string `json:"managementHookHandler,omitempty"`
}

type AlertmanagerSpec

type AlertmanagerSpec struct {
	//+kubebuilder:default="cortex-alertmanager:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
}

type AuthProvider

type AuthProvider struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`

	Spec AuthProviderSpec `json:"spec,omitempty"`
}

type AuthProviderSpec

type AuthProviderSpec struct {
	Type    AuthProviderType `json:"type,omitempty"`
	Options map[string]any   `json:"options,omitempty"`
}

type AuthProviderType

type AuthProviderType string
const (
	AuthProviderOpenID AuthProviderType = "openid"
	AuthProviderNoAuth AuthProviderType = "noauth"
)

type BootstrapSpec

type BootstrapSpec struct {
	// Address of the internal management GRPC API. Used for auto-bootstrapping
	// when direct management api access is available, such as when running in
	// the main cluster.
	InClusterManagementAddress *string `json:"inClusterManagementAddress,omitempty"`

	// An optional display name to assign to the cluster when creating it.
	// This value corresponds to the label `opni.io/name`, and can be modified
	// at any time after the cluster is created.
	FriendlyName *string `json:"friendlyName,omitempty"`

	// Bootstrap token
	Token string `json:"token,omitempty"`
	// List of public key pins. Used when the trust strategy is "pkp".
	Pins []string `json:"pins,omitempty"`
	// List of paths to CA Certs. Used when the trust strategy is "cacerts".
	// If empty, the system certs will be used.
	CACerts []string `json:"caCerts,omitempty"`
}

type CacheBackend added in v0.8.0

type CacheBackend string
const (
	CacheBackendFilesystem CacheBackend = "filesystem"
)

type CacheSpec added in v0.8.0

type CacheSpec struct {
	PatchEngine PatchEngine `json:"patchEngine,omitempty"`

	Backend    CacheBackend        `json:"backend,omitempty"`
	Filesystem FilesystemCacheSpec `json:"filesystem,omitempty"`
}

type CertsSpec

type CertsSpec struct {
	// Path to a PEM encoded CA certificate file. Mutually exclusive with CACertData
	CACert *string `json:"caCert,omitempty"`
	// String containing PEM encoded CA certificate data. Mutually exclusive with CACert
	CACertData []byte `json:"caCertData,omitempty"`
	// Path to a PEM encoded server certificate file. Mutually exclusive with ServingCertData
	ServingCert *string `json:"servingCert,omitempty"`
	// String containing PEM encoded server certificate data. Mutually exclusive with ServingCert
	ServingCertData []byte `json:"servingCertData,omitempty"`
	// Path to a PEM encoded server key file. Mutually exclusive with ServingKeyData
	ServingKey *string `json:"servingKey,omitempty"`
	// String containing PEM encoded server key data. Mutually exclusive with ServingKey
	ServingKeyData []byte `json:"servingKeyData,omitempty"`
}

type ClusterManagementSpec added in v0.6.0

type ClusterManagementSpec struct {
	ClusterDriver string `json:"clusterDriver,omitempty"`
}

type CompactorSpec added in v0.6.0

type CompactorSpec struct {
	//+kubebuilder:default="cortex-compactor:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
}

type CortexSpec

type CortexSpec struct {
	Management    ClusterManagementSpec `json:"management,omitempty"`
	Distributor   DistributorSpec       `json:"distributor,omitempty"`
	Ingester      IngesterSpec          `json:"ingester,omitempty"`
	Alertmanager  AlertmanagerSpec      `json:"alertmanager,omitempty"`
	Compactor     CompactorSpec         `json:"compactor,omitempty"`
	StoreGateway  StoreGatewaySpec      `json:"storeGateway,omitempty"`
	Ruler         RulerSpec             `json:"ruler,omitempty"`
	QueryFrontend QueryFrontendSpec     `json:"queryFrontend,omitempty"`
	Querier       QuerierSpec           `json:"querier,omitempty"`
	Purger        PurgerSpec            `json:"purger,omitempty"`
	Certs         MTLSSpec              `json:"certs,omitempty"`
}

type CustomResourcesStorageSpec

type CustomResourcesStorageSpec struct {
	// Kubernetes namespace where custom resource objects will be stored.
	Namespace string `json:"namespace,omitempty"`
}

type DiscoverySpec

type DiscoverySpec struct {
	PrometheusRules *PrometheusRulesSpec `protobuf:"bytes,1,opt,name=prometheusRules,proto3" json:"prometheusRules,omitempty"`
	Filesystem      *FilesystemRulesSpec `protobuf:"bytes,2,opt,name=filesystem,proto3" json:"filesystem,omitempty"`
	Interval        string               `protobuf:"bytes,3,opt,name=interval,proto3" json:"interval,omitempty"`
	// contains filtered or unexported fields
}

func (*DiscoverySpec) Descriptor deprecated added in v0.6.0

func (*DiscoverySpec) Descriptor() ([]byte, []int)

Deprecated: Use DiscoverySpec.ProtoReflect.Descriptor instead.

func (*DiscoverySpec) GetFilesystem added in v0.6.0

func (x *DiscoverySpec) GetFilesystem() *FilesystemRulesSpec

func (*DiscoverySpec) GetInterval added in v0.6.0

func (x *DiscoverySpec) GetInterval() string

func (*DiscoverySpec) GetPrometheusRules added in v0.6.0

func (x *DiscoverySpec) GetPrometheusRules() *PrometheusRulesSpec

func (*DiscoverySpec) ProtoMessage added in v0.6.0

func (*DiscoverySpec) ProtoMessage()

func (*DiscoverySpec) ProtoReflect added in v0.6.0

func (x *DiscoverySpec) ProtoReflect() protoreflect.Message

func (*DiscoverySpec) Reset added in v0.6.0

func (x *DiscoverySpec) Reset()

func (*DiscoverySpec) String added in v0.6.0

func (x *DiscoverySpec) String() string

type DistributorSpec

type DistributorSpec struct {
	//+kubebuilder:default="cortex-distributor:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
	//+kubebuilder:default="cortex-distributor-headless:9095"
	GRPCAddress string `json:"grpcAddress,omitempty"`
}

type EtcdStorageSpec

type EtcdStorageSpec struct {
	// List of etcd endpoints to connect to.
	Endpoints []string `json:"endpoints,omitempty"`
	// Configuration for etcd client-cert auth.
	Certs *MTLSSpec `json:"certs,omitempty"`
}

type FilesystemCacheSpec added in v0.8.0

type FilesystemCacheSpec struct {
	Dir string `json:"dir,omitempty"`
}

type FilesystemRulesSpec added in v0.5.4

type FilesystemRulesSpec struct {
	PathExpressions []string `protobuf:"bytes,1,rep,name=pathExpressions,proto3" json:"pathExpressions,omitempty"`
	// contains filtered or unexported fields
}

func (*FilesystemRulesSpec) Descriptor deprecated added in v0.6.0

func (*FilesystemRulesSpec) Descriptor() ([]byte, []int)

Deprecated: Use FilesystemRulesSpec.ProtoReflect.Descriptor instead.

func (*FilesystemRulesSpec) GetPathExpressions added in v0.6.0

func (x *FilesystemRulesSpec) GetPathExpressions() []string

func (*FilesystemRulesSpec) ProtoMessage added in v0.6.0

func (*FilesystemRulesSpec) ProtoMessage()

func (*FilesystemRulesSpec) ProtoReflect added in v0.6.0

func (x *FilesystemRulesSpec) ProtoReflect() protoreflect.Message

func (*FilesystemRulesSpec) Reset added in v0.6.0

func (x *FilesystemRulesSpec) Reset()

func (*FilesystemRulesSpec) String added in v0.6.0

func (x *FilesystemRulesSpec) String() string

type GatewayConfig

type GatewayConfig struct {
	meta.TypeMeta `json:",inline"`

	Spec GatewayConfigSpec `json:"spec,omitempty"`
}

type GatewayConfigSpec

type GatewayConfigSpec struct {
	//+kubebuilder:default=":8080"
	HTTPListenAddress string `json:"httpListenAddress,omitempty"`
	//+kubebuilder:default=":9090"
	GRPCListenAddress string `json:"grpcListenAddress,omitempty"`
	//+kubebuilder:default=":8086"
	MetricsListenAddress string `json:"metricsListenAddress,omitempty"`
	//+kubebuilder:default="localhost"
	Hostname       string         `json:"hostname,omitempty"`
	Metrics        MetricsSpec    `json:"metrics,omitempty"`
	Management     ManagementSpec `json:"management,omitempty"`
	TrustedProxies []string       `json:"trustedProxies,omitempty"`
	Cortex         CortexSpec     `json:"cortex,omitempty"`
	AuthProvider   string         `json:"authProvider,omitempty"`
	Storage        StorageSpec    `json:"storage,omitempty"`
	Certs          CertsSpec      `json:"certs,omitempty"`
	Plugins        PluginsSpec    `json:"plugins,omitempty"`
	Alerting       AlertingSpec   `json:"alerting,omitempty"`
	Profiling      ProfilingSpec  `json:"profiling,omitempty"`
	Keyring        KeyringSpec    `json:"keyring,omitempty"`
}

func (*GatewayConfigSpec) SetDefaults

func (s *GatewayConfigSpec) SetDefaults()

type IngesterSpec

type IngesterSpec struct {
	//+kubebuilder:default="cortex-ingester:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
	//+kubebuilder:default="cortex-ingester-headless:9095"
	GRPCAddress string `json:"grpcAddress,omitempty"`
}

type JetStreamStorageSpec added in v0.6.2

type JetStreamStorageSpec struct {
	Endpoint     string `json:"endpoint,omitempty"`
	NkeySeedPath string `json:"nkeySeedPath,omitempty"`
}

type KeyringSpec added in v0.8.2

type KeyringSpec struct {
	// Directories to search for files containing ephemeral keys.
	// All files in these directories will be loaded into the keyring on
	// startup. Keys loaded in this way will not be persisted across restarts.
	EphemeralKeyDirs []string `json:"ephemeralKeyDirs,omitempty"`
}

type MTLSSpec

type MTLSSpec struct {
	// Path to the server CA certificate.
	ServerCA string `json:"serverCA,omitempty"`
	// Path to the client CA certificate (not needed in all cases).
	ClientCA string `json:"clientCA,omitempty"`
	// Path to the certificate used for client-cert auth.
	ClientCert string `json:"clientCert,omitempty"`
	// Path to the private key used for client-cert auth.
	ClientKey string `json:"clientKey,omitempty"`
}

type ManagementClientSpec added in v0.5.4

type ManagementClientSpec struct {
	Address string `json:"address,omitempty"`
}

type ManagementSpec

type ManagementSpec struct {
	//+kubebuilder:default="tcp://0.0.0.0:11090"
	GRPCListenAddress string `json:"grpcListenAddress,omitempty"`
	//+kubebuilder:default="0.0.0.0:11080"
	HTTPListenAddress string `json:"httpListenAddress,omitempty"`
	//+kubebuilder:default="0.0.0.0:12080"
	WebListenAddress string `json:"webListenAddress,omitempty"`
}

func (ManagementSpec) GetGRPCListenAddress

func (m ManagementSpec) GetGRPCListenAddress() string

func (ManagementSpec) GetHTTPListenAddress

func (m ManagementSpec) GetHTTPListenAddress() string

func (ManagementSpec) GetWebListenAddress

func (m ManagementSpec) GetWebListenAddress() string

type MetricsSpec added in v0.5.4

type MetricsSpec struct {
	//+kubebuilder:default="/metrics"
	Path string `json:"path,omitempty"`
}

func (MetricsSpec) GetPath added in v0.5.4

func (s MetricsSpec) GetPath() string

type PatchEngine added in v0.8.0

type PatchEngine string
const (
	PatchEngineBsdiff PatchEngine = "bsdiff"
)

type PluginsSpec

type PluginsSpec struct {
	// Directory to search for plugins
	Dir string `json:"dir,omitempty"`
	// Options for caching plugins
	Cache CacheSpec `json:"cache,omitempty"`
}

type ProfilingSpec added in v0.6.0

type ProfilingSpec struct {
	//+kubebuilder:default=/debug/pprof
	Path string `json:"path,omitempty"`
}

func (ProfilingSpec) GetPath added in v0.6.0

func (s ProfilingSpec) GetPath() string

type PrometheusRulesSpec

type PrometheusRulesSpec struct {

	// Namespaces to search for rules in. If empty, will search all accessible
	// namespaces.
	SearchNamespaces []string `protobuf:"bytes,1,rep,name=searchNamespaces,proto3" json:"searchNamespaces,omitempty"`
	// Kubeconfig to use for rule discovery. If nil, will use the in-cluster
	// kubeconfig.
	Kubeconfig *string `protobuf:"bytes,2,opt,name=kubeconfig,proto3,oneof" json:"kubeconfig,omitempty"`
	// contains filtered or unexported fields
}

func (*PrometheusRulesSpec) Descriptor deprecated added in v0.6.0

func (*PrometheusRulesSpec) Descriptor() ([]byte, []int)

Deprecated: Use PrometheusRulesSpec.ProtoReflect.Descriptor instead.

func (*PrometheusRulesSpec) GetKubeconfig added in v0.6.0

func (x *PrometheusRulesSpec) GetKubeconfig() string

func (*PrometheusRulesSpec) GetSearchNamespaces added in v0.6.0

func (x *PrometheusRulesSpec) GetSearchNamespaces() []string

func (*PrometheusRulesSpec) ProtoMessage added in v0.6.0

func (*PrometheusRulesSpec) ProtoMessage()

func (*PrometheusRulesSpec) ProtoReflect added in v0.6.0

func (x *PrometheusRulesSpec) ProtoReflect() protoreflect.Message

func (*PrometheusRulesSpec) Reset added in v0.6.0

func (x *PrometheusRulesSpec) Reset()

func (*PrometheusRulesSpec) String added in v0.6.0

func (x *PrometheusRulesSpec) String() string

type PurgerSpec added in v0.6.0

type PurgerSpec struct {
	// +kubebuilder:default="cortex-purger:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
}

type QuerierSpec added in v0.6.0

type QuerierSpec struct {
	// +kubebuilder:default="cortex-querier:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
}

type QueryFrontendSpec

type QueryFrontendSpec struct {
	// +kubebuilder:default="cortex-query-frontend:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
	// +kubebuilder:default="cortex-query-frontend-headless:9095"
	GRPCAddress string `json:"grpcAddress,omitempty"`
}

type RealtimeServerConfig added in v0.5.4

type RealtimeServerConfig struct {
	meta.TypeMeta `json:",inline"`

	Spec RealtimeServerSpec `json:"spec,omitempty"`
}

type RealtimeServerSpec added in v0.5.4

type RealtimeServerSpec struct {
	//+kubebuilder:default=":8086"
	MetricsListenAddress string               `json:"metricsListenAddress,omitempty"`
	Metrics              MetricsSpec          `json:"metrics,omitempty"`
	ManagementClient     ManagementClientSpec `json:"managementClient,omitempty"`
}

type RulerSpec

type RulerSpec struct {
	// +kubebuilder:default="cortex-ruler:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
	// +kubebuilder:default="cortex-ruler-headless:9095"
	GRPCAddress string `json:"grpcAddress,omitempty"`
}

type RulesSpec

type RulesSpec struct {
	Discovery *DiscoverySpec `protobuf:"bytes,1,opt,name=discovery,proto3" json:"discovery,omitempty"`
	// contains filtered or unexported fields
}

func (*RulesSpec) Descriptor deprecated added in v0.6.0

func (*RulesSpec) Descriptor() ([]byte, []int)

Deprecated: Use RulesSpec.ProtoReflect.Descriptor instead.

func (*RulesSpec) GetDiscovery added in v0.6.0

func (x *RulesSpec) GetDiscovery() *DiscoverySpec

func (*RulesSpec) ProtoMessage added in v0.6.0

func (*RulesSpec) ProtoMessage()

func (*RulesSpec) ProtoReflect added in v0.6.0

func (x *RulesSpec) ProtoReflect() protoreflect.Message

func (*RulesSpec) Reset added in v0.6.0

func (x *RulesSpec) Reset()

func (*RulesSpec) String added in v0.6.0

func (x *RulesSpec) String() string

type StorageSpec

type StorageSpec struct {
	Type            StorageType                 `json:"type,omitempty"`
	Etcd            *EtcdStorageSpec            `json:"etcd,omitempty"`
	JetStream       *JetStreamStorageSpec       `json:"jetstream,omitempty"`
	CustomResources *CustomResourcesStorageSpec `json:"customResources,omitempty"`
}

type StorageType

type StorageType string
const (
	// Use etcd for key-value storage. This is the recommended default.
	StorageTypeEtcd StorageType = "etcd"
	// Use NATS JetStream for key-value storage.
	StorageTypeJetStream StorageType = "jetstream"
	// Use Kubernetes custom resources to store objects. This is experimental,
	// and it is recommended to use the etcd storage type instead for performance
	// reasons.
	StorageTypeCRDs StorageType = "customResources"
)

type StoreGatewaySpec added in v0.6.0

type StoreGatewaySpec struct {
	//+kubebuilder:default="cortex-store-gateway:8080"
	HTTPAddress string `json:"httpAddress,omitempty"`
	//+kubebuilder:default="cortex-store-gateway-headless:9095"
	GRPCAddress string `json:"grpcAddress,omitempty"`
}

type TrustStrategyKind added in v0.4.2

type TrustStrategyKind string
const (
	TrustStrategyPKP      TrustStrategyKind = "pkp"
	TrustStrategyCACerts  TrustStrategyKind = "cacerts"
	TrustStrategyInsecure TrustStrategyKind = "insecure"
)

Jump to

Keyboard shortcuts

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