Help us shape the future of Go! Take the 2026 Go Developer Survey

v1alpha2

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2026 License: Apache-2.0 Imports: 11 Imported by: 4

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the v1alpha2 API group +kubebuilder:object:generate=true +groupName=perses.dev

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "perses.dev", Version: "v1alpha2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &groupVersionRegistrar{gv: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type BasicAuth

type BasicAuth struct {
	SecretSource `json:",inline"`
	// username is the username credential for basic authentication
	// +required
	// +kubebuilder:validation:MinLength=1
	Username string `json:"username,omitempty"`
	// passwordPath specifies the key name within the secret/configmap or filesystem path
	// (depending on SecretSource.Type) where the password is stored
	// +required
	// +kubebuilder:validation:MinLength=1
	PasswordPath string `json:"passwordPath,omitempty"`
}

func (*BasicAuth) DeepCopy

func (in *BasicAuth) DeepCopy() *BasicAuth

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

func (*BasicAuth) DeepCopyInto

func (in *BasicAuth) DeepCopyInto(out *BasicAuth)

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

type Certificate

type Certificate struct {
	SecretSource `json:",inline"`
	// certPath specifies the key name within the secret/configmap or filesystem path
	// (depending on SecretSource.Type) where the certificate is stored
	// +required
	// +kubebuilder:validation:MinLength=1
	CertPath string `json:"certPath,omitempty"`
	// privateKeyPath specifies the key name within the secret/configmap or filesystem path
	// (depending on SecretSource.Type) where the private key is stored
	// Required for client certificates (UserCert), optional for CA certificates (CaCert)
	// +optional
	PrivateKeyPath *string `json:"privateKeyPath,omitempty"`
}

func (*Certificate) DeepCopy

func (in *Certificate) DeepCopy() *Certificate

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

func (*Certificate) DeepCopyInto

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

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

type Client

type Client struct {
	// basicAuth provides username/password authentication configuration for the Perses client
	// +optional
	BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
	// oauth provides OAuth 2.0 authentication configuration for the Perses client
	// +optional
	OAuth *OAuth `json:"oauth,omitempty"`
	// tls provides TLS/SSL configuration for secure connections to Perses
	// +optional
	TLS *TLS `json:"tls,omitempty"`
	// kubernetesAuth enables Kubernetes native authentication for the Perses client
	// +optional
	KubernetesAuth *KubernetesAuth `json:"kubernetesAuth,omitempty"`
}

func (*Client) DeepCopy

func (in *Client) DeepCopy() *Client

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

func (*Client) DeepCopyInto

func (in *Client) DeepCopyInto(out *Client)

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

type Dashboard

type Dashboard struct {
	dashboardSpec.Spec `json:",inline"`
}

Dashboard represents the Perses dashboard configuration including display settings, datasources, variables, panels, layouts, and time ranges.

func (*Dashboard) DeepCopy

func (in *Dashboard) DeepCopy() *Dashboard

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

func (*Dashboard) DeepCopyInto

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

type Datasource

type Datasource struct {
	datasource.Spec `json:",inline"`
}

Datasource represents the Perses datasource configuration including display metadata, default flag, and plugin-specific settings.

func (*Datasource) DeepCopy

func (in *Datasource) DeepCopy() *Datasource

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

func (*Datasource) DeepCopyInto

func (in *Datasource) DeepCopyInto(out *Datasource)

type DatasourceSpec

type DatasourceSpec struct {
	// config specifies the Perses datasource configuration
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +required
	//nolint:kubeapilinter // Datasource uses flexible JSON schema; struct-level required fields are not applicable
	Config Datasource `json:"config"`
	// client specifies authentication and TLS configuration for the datasource
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Client *Client `json:"client,omitempty"`
	// instanceSelector selects Perses instances where this datasource will be created
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	InstanceSelector *metav1.LabelSelector `json:"instanceSelector,omitempty"`
}

DatasourceSpec defines the desired state of a Perses datasource

func (*DatasourceSpec) DeepCopy

func (in *DatasourceSpec) DeepCopy() *DatasourceSpec

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

func (*DatasourceSpec) DeepCopyInto

func (in *DatasourceSpec) DeepCopyInto(out *DatasourceSpec)

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

type KubernetesAuth

type KubernetesAuth struct {
	// enable determines whether Kubernetes authentication is enabled for the Perses client
	// +optional
	Enable *bool `json:"enable,omitempty"`
}

func (*KubernetesAuth) DeepCopy

func (in *KubernetesAuth) DeepCopy() *KubernetesAuth

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

func (*KubernetesAuth) DeepCopyInto

func (in *KubernetesAuth) DeepCopyInto(out *KubernetesAuth)

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

type Metadata

type Metadata struct {
	// labels are key/value pairs attached to pods
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// annotations are key/value pairs attached to pods for non-identifying metadata
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

Metadata to add to deployed pods

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type OAuth

type OAuth struct {
	SecretSource `json:",inline"`
	// clientIDPath specifies the key name within the secret/configmap or filesystem path
	// (depending on SecretSource.Type) where the OAuth client ID is stored
	// +optional
	ClientIDPath *string `json:"clientIDPath,omitempty"`
	// clientSecretPath specifies the key name within the secret/configmap or filesystem path
	// (depending on SecretSource.Type) where the OAuth client secret is stored
	// +optional
	ClientSecretPath *string `json:"clientSecretPath,omitempty"`
	// tokenURL is the OAuth 2.0 provider's token endpoint URL
	// This is a constant specific to each OAuth provider
	// +required
	// +kubebuilder:validation:MinLength=1
	TokenURL string `json:"tokenURL,omitempty"`
	// scopes specifies optional requested permissions for the OAuth token
	// +optional
	// +listType=atomic
	Scopes []string `json:"scopes,omitempty"`
	// endpointParams specifies additional parameters to include in requests to the token endpoint
	// +optional
	//nolint:kubeapilinter // map type matches the upstream Go OAuth2 library EndpointParams
	EndpointParams map[string][]string `json:"endpointParams,omitempty"`
	// authStyle specifies how the endpoint wants the client ID and client secret sent
	// The zero value means to auto-detect
	// +optional
	AuthStyle *int32 `json:"authStyle,omitempty"`
}

func (*OAuth) DeepCopy

func (in *OAuth) DeepCopy() *OAuth

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

func (*OAuth) DeepCopyInto

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

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

type Perses

type Perses struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard Kubernetes ObjectMeta
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the desired state of the Perses resource
	// +optional
	//nolint:kubeapilinter // non-pointer Spec avoids nil checks across the codebase
	Spec PersesSpec `json:"spec,omitempty"`
	// status is the observed state of the Perses resource
	// +optional
	//nolint:kubeapilinter // non-pointer Status is the standard pattern for Kubernetes controllers
	Status PersesStatus `json:"status,omitempty"`
}

Perses is the Schema for the perses API

func (*Perses) DeepCopy

func (in *Perses) DeepCopy() *Perses

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

func (*Perses) DeepCopyInto

func (in *Perses) DeepCopyInto(out *Perses)

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

func (*Perses) DeepCopyObject

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

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

func (*Perses) Hub

func (p *Perses) Hub()

Hub marks Perses as a conversion hub.

func (*Perses) RequiresDeployment

func (p *Perses) RequiresDeployment() bool

RequiresDeployment returns true if the Perses instance should be deployed as a Deployment. This is the case when using SQL database OR file database with EmptyDir storage.

func (*Perses) RequiresStatefulSet

func (p *Perses) RequiresStatefulSet() bool

RequiresStatefulSet returns true if the Perses instance should be deployed as a StatefulSet. This is the case when using file database with persistent volume storage (not EmptyDir).

type PersesConfig

type PersesConfig struct {
	config.Config `json:",inline"`
}

PersesConfig represents the Perses server configuration including API, security, database, provisioning, and plugin settings.

func (*PersesConfig) DeepCopy

func (in *PersesConfig) DeepCopy() *PersesConfig

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

func (*PersesConfig) DeepCopyInto

func (in *PersesConfig) DeepCopyInto(out *PersesConfig)

type PersesDashboard

type PersesDashboard struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard Kubernetes ObjectMeta
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the desired state of the PersesDashboard resource
	// +required
	Spec PersesDashboardSpec `json:"spec,omitzero"`
	// status is the observed state of the PersesDashboard resource
	// +optional
	//nolint:kubeapilinter // non-pointer Status is the standard pattern for Kubernetes controllers
	Status PersesDashboardStatus `json:"status,omitempty"`
}

PersesDashboard is the Schema for the persesdashboards API

func (*PersesDashboard) DeepCopy

func (in *PersesDashboard) DeepCopy() *PersesDashboard

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

func (*PersesDashboard) DeepCopyInto

func (in *PersesDashboard) DeepCopyInto(out *PersesDashboard)

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

func (*PersesDashboard) DeepCopyObject

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

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

func (*PersesDashboard) Hub

func (p *PersesDashboard) Hub()

Hub marks PersesDashboard as a conversion hub.

type PersesDashboardList

type PersesDashboardList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PersesDashboard `json:"items"`
}

PersesDashboardList contains a list of PersesDashboard

func (*PersesDashboardList) DeepCopy

func (in *PersesDashboardList) DeepCopy() *PersesDashboardList

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

func (*PersesDashboardList) DeepCopyInto

func (in *PersesDashboardList) DeepCopyInto(out *PersesDashboardList)

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

func (*PersesDashboardList) DeepCopyObject

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

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

type PersesDashboardSpec

type PersesDashboardSpec struct {
	// config specifies the Perses dashboard configuration
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +required
	//nolint:kubeapilinter // Dashboard uses flexible JSON schema; struct-level required fields are not applicable
	Config Dashboard `json:"config"`
	// instanceSelector selects Perses instances where this dashboard will be created
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	InstanceSelector *metav1.LabelSelector `json:"instanceSelector,omitempty"`
}

PersesDashboardSpec defines the desired state of PersesDashboard

func (*PersesDashboardSpec) DeepCopy

func (in *PersesDashboardSpec) DeepCopy() *PersesDashboardSpec

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

func (*PersesDashboardSpec) DeepCopyInto

func (in *PersesDashboardSpec) DeepCopyInto(out *PersesDashboardSpec)

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

type PersesDashboardStatus

type PersesDashboardStatus struct {
	// conditions represent the latest observations of the PersesDashboard resource state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

PersesDashboardStatus defines the observed state of PersesDashboard

func (*PersesDashboardStatus) DeepCopy

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

func (*PersesDashboardStatus) DeepCopyInto

func (in *PersesDashboardStatus) DeepCopyInto(out *PersesDashboardStatus)

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

type PersesDatasource

type PersesDatasource struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard Kubernetes ObjectMeta
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the desired state of the PersesDatasource resource
	// +required
	Spec DatasourceSpec `json:"spec,omitzero"`
	// status is the observed state of the PersesDatasource resource
	// +optional
	//nolint:kubeapilinter // non-pointer Status is the standard pattern for Kubernetes controllers
	Status PersesDatasourceStatus `json:"status,omitempty"`
}

PersesDatasource is the Schema for the PersesDatasources API

func (*PersesDatasource) DeepCopy

func (in *PersesDatasource) DeepCopy() *PersesDatasource

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

func (*PersesDatasource) DeepCopyInto

func (in *PersesDatasource) DeepCopyInto(out *PersesDatasource)

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

func (*PersesDatasource) DeepCopyObject

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

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

func (*PersesDatasource) Hub

func (p *PersesDatasource) Hub()

Hub marks PersesDatasource as a conversion hub.

type PersesDatasourceList

type PersesDatasourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PersesDatasource `json:"items"`
}

PersesDatasourceList contains a list of PersesDatasource

func (*PersesDatasourceList) DeepCopy

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

func (*PersesDatasourceList) DeepCopyInto

func (in *PersesDatasourceList) DeepCopyInto(out *PersesDatasourceList)

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

func (*PersesDatasourceList) DeepCopyObject

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

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

type PersesDatasourceStatus

type PersesDatasourceStatus struct {
	// conditions represent the latest observations of the PersesDatasource resource state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

PersesDatasourceStatus defines the observed state of PersesDatasource

func (*PersesDatasourceStatus) DeepCopy

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

func (*PersesDatasourceStatus) DeepCopyInto

func (in *PersesDatasourceStatus) DeepCopyInto(out *PersesDatasourceStatus)

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

type PersesGlobalDatasource

type PersesGlobalDatasource struct {
	metav1.TypeMeta `json:",inline"`
	// metadata is the standard Kubernetes ObjectMeta
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the desired state of the PersesGlobalDatasource resource
	// +required
	Spec DatasourceSpec `json:"spec,omitzero"`
	// status is the observed state of the PersesGlobalDatasource resource
	// +optional
	//nolint:kubeapilinter // non-pointer Status is the standard pattern for Kubernetes controllers
	Status PersesGlobalDatasourceStatus `json:"status,omitempty"`
}

PersesGlobalDatasource is the Schema for the PersesGlobalDatasources API

func (*PersesGlobalDatasource) DeepCopy

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

func (*PersesGlobalDatasource) DeepCopyInto

func (in *PersesGlobalDatasource) DeepCopyInto(out *PersesGlobalDatasource)

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

func (*PersesGlobalDatasource) DeepCopyObject

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

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

type PersesGlobalDatasourceList

type PersesGlobalDatasourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PersesGlobalDatasource `json:"items"`
}

PersesGlobalDatasourceList contains a list of PersesGlobalDatasource

func (*PersesGlobalDatasourceList) DeepCopy

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

func (*PersesGlobalDatasourceList) DeepCopyInto

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

func (*PersesGlobalDatasourceList) DeepCopyObject

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

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

type PersesGlobalDatasourceStatus

type PersesGlobalDatasourceStatus struct {
	// conditions represent the latest observations of the PersesGlobalDatasource resource state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

PersesGlobalDatasourceStatus defines the observed state of PersesGlobalDatasource

func (*PersesGlobalDatasourceStatus) DeepCopy

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

func (*PersesGlobalDatasourceStatus) DeepCopyInto

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

type PersesList

type PersesList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Perses `json:"items"`
}

PersesList contains a list of Perses

func (*PersesList) DeepCopy

func (in *PersesList) DeepCopy() *PersesList

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

func (*PersesList) DeepCopyInto

func (in *PersesList) DeepCopyInto(out *PersesList)

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

func (*PersesList) DeepCopyObject

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

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

type PersesService

type PersesService struct {
	// name is the name of the Kubernetes Service resource
	// If not specified, a default name will be generated
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Name *string `json:"name,omitempty"`
	// annotations are key/value pairs attached to the Service for non-identifying metadata
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

PersesService defines service configuration for Perses

func (*PersesService) DeepCopy

func (in *PersesService) DeepCopy() *PersesService

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

func (*PersesService) DeepCopyInto

func (in *PersesService) DeepCopyInto(out *PersesService)

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

type PersesSpec

type PersesSpec struct {
	// metadata specifies additional metadata to add to deployed pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Metadata *Metadata `json:"metadata,omitempty"`
	// client specifies the Perses client configuration
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Client *Client `json:"client,omitempty"`
	// config specifies the Perses server configuration
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	//nolint:kubeapilinter // non-pointer struct is intentional; PersesConfig fields are all optional
	Config PersesConfig `json:"config,omitempty"`
	// args are extra command-line arguments to pass to the Perses server
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	// +listType=atomic
	Args []string `json:"args,omitempty"`
	// containerPort is the port on which the Perses server listens for HTTP requests
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	ContainerPort *int32 `json:"containerPort,omitempty"`
	// replicas is the number of desired pod replicas for the Perses deployment
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// resources defines the compute resources configured for the container
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// nodeSelector constrains pods to nodes with matching labels
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// tolerations allow pods to schedule onto nodes with matching taints
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	// +listType=atomic
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// affinity specifies the pod's scheduling constraints
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// image specifies the container image that should be used for the Perses deployment
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Image *string `json:"image,omitempty"`
	// service specifies the service configuration for the Perses instance
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Service *PersesService `json:"service,omitempty"`
	// livenessProbe specifies the liveness probe configuration for the Perses container
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`
	// readinessProbe specifies the readiness probe configuration for the Perses container
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`
	// tls specifies the TLS configuration for the Perses instance
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	TLS *TLS `json:"tls,omitempty"`
	// storage configuration used by the StatefulSet
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Storage *StorageConfiguration `json:"storage,omitempty"`
	// serviceAccountName is the name of the ServiceAccount to use for the Perses deployment or statefulset
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`
	// podSecurityContext holds pod-level security attributes and common container settings
	// If not specified, defaults to fsGroup: 65534 to ensure proper volume permissions for the nobody user
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// logLevel defines the log level for Perses
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Enum=panic;fatal;error;warning;info;debug;trace
	// +optional
	LogLevel *string `json:"logLevel,omitempty"`
	// logMethodTrace when true, includes the calling method as a field in the log
	// It can be useful to see immediately where the log comes from
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	LogMethodTrace *bool `json:"logMethodTrace,omitempty"`
	// provisioning configuration for provisioning secrets
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Provisioning *Provisioning `json:"provisioning,omitempty"`
	// volumes allows configuration of additional volumes on the Deployment or StatefulSet definitions.
	// Volumes specified here will be appended to other operator-managed volumes.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:XValidation:rule="self.all(v, !(v.name in ['config', 'plugins', 'storage', 'ca', 'tls']) && !v.name.startsWith('provisioning-'))",message="volume name must not conflict with operator-reserved names (config, plugins, storage, ca, tls) or use the 'provisioning-' prefix"
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// volumeMounts allows configuration of additional VolumeMounts on the Deployment or StatefulSet definitions.
	// VolumeMounts specified here will be appended to other operator-managed volume mounts.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	// +listType=map
	// +listMapKey=mountPath
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:XValidation:rule="self.all(m, !m.mountPath.startsWith('/etc/perses/config') && !m.mountPath.startsWith('/etc/perses/plugins') && !m.mountPath.startsWith('/etc/perses/provisioning') && !(m.mountPath in ['/etc/perses', '/perses', '/ca', '/tls']))",message="volumeMount mountPath must not conflict with or shadow operator-reserved paths under /etc/perses/config, /etc/perses/plugins, /etc/perses/provisioning, or /etc/perses, /perses, /ca, /tls"
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

PersesSpec defines the desired state of Perses

func (*PersesSpec) DeepCopy

func (in *PersesSpec) DeepCopy() *PersesSpec

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

func (*PersesSpec) DeepCopyInto

func (in *PersesSpec) DeepCopyInto(out *PersesSpec)

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

type PersesStatus

type PersesStatus struct {
	// conditions represent the latest observations of the Perses resource state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
	// provisioning contains the versions of provisioning secrets currently in use
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	// +listType=atomic
	Provisioning []SecretVersion `json:"provisioning,omitempty"`
}

PersesStatus defines the observed state of Perses

func (*PersesStatus) DeepCopy

func (in *PersesStatus) DeepCopy() *PersesStatus

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

func (*PersesStatus) DeepCopyInto

func (in *PersesStatus) DeepCopyInto(out *PersesStatus)

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

type Provisioning

type Provisioning struct {
	// secretRefs is a list of references to Kubernetes secrets used for provisioning sensitive data.
	// +optional
	//nolint:kubeapilinter // SecretKeySelector fields are defined in an external type
	SecretRefs []*ProvisioningSecret `json:"secretRefs,omitempty"`
}

Provisioning configuration for provisioning secrets

func (*Provisioning) DeepCopy

func (in *Provisioning) DeepCopy() *Provisioning

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

func (*Provisioning) DeepCopyInto

func (in *Provisioning) DeepCopyInto(out *Provisioning)

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

type ProvisioningSecret

type ProvisioningSecret struct {
	corev1.SecretKeySelector `json:",inline"`
}

func (*ProvisioningSecret) DeepCopy

func (in *ProvisioningSecret) DeepCopy() *ProvisioningSecret

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

func (*ProvisioningSecret) DeepCopyInto

func (in *ProvisioningSecret) DeepCopyInto(out *ProvisioningSecret)

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

func (*ProvisioningSecret) GetSecretVolumeName

func (p *ProvisioningSecret) GetSecretVolumeName() string

GetSecretVolumeName returns a valid volume name for the provisioning secret

func (*ProvisioningSecret) String

func (p *ProvisioningSecret) String() string

type SecretSource

type SecretSource struct {
	// type specifies the source type for secret data (secret, configmap, or file)
	// +required
	// +kubebuilder:validation:Enum=secret;configmap;file
	Type SecretSourceType `json:"type,omitempty"`
	// name is the name of the Kubernetes Secret or ConfigMap resource
	// Required when Type is "secret" or "configmap", ignored when Type is "file"
	// +optional
	// +kubebuilder:validation:MinLength=1
	Name *string `json:"name,omitempty"`
	// namespace is the namespace of the Kubernetes Secret or ConfigMap resource
	// Required when Type is "secret" or "configmap", ignored when Type is "file"
	// +optional
	// +kubebuilder:validation:MinLength=1
	Namespace *string `json:"namespace,omitempty"`
}

SecretSource configuration for a perses secret source +kubebuilder:validation:XValidation:rule="self.type != 'secret' && self.type != 'configmap' || has(self.name)",message="name is required when type is secret or configmap" +kubebuilder:validation:XValidation:rule="self.type != 'secret' && self.type != 'configmap' || has(self.__namespace__)",message="namespace is required when type is secret or configmap"

func (*SecretSource) DeepCopy

func (in *SecretSource) DeepCopy() *SecretSource

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

func (*SecretSource) DeepCopyInto

func (in *SecretSource) DeepCopyInto(out *SecretSource)

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

type SecretSourceType

type SecretSourceType string

SecretSourceType types of secret sources in k8s

const (
	SecretSourceTypeSecret    SecretSourceType = "secret"
	SecretSourceTypeConfigMap SecretSourceType = "configmap"
	SecretSourceTypeFile      SecretSourceType = "file"
)

type SecretVersion

type SecretVersion struct {
	// name is the name of the provisioning secret
	// +required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name,omitempty"`
	// version is the resource version of the provisioning secret
	// +required
	// +kubebuilder:validation:MinLength=1
	Version string `json:"version,omitempty"`
}

SecretVersion represents a secret version

func (*SecretVersion) DeepCopy

func (in *SecretVersion) DeepCopy() *SecretVersion

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

func (*SecretVersion) DeepCopyInto

func (in *SecretVersion) DeepCopyInto(out *SecretVersion)

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

type StorageConfiguration

type StorageConfiguration struct {
	// emptyDir to use for ephemeral storage.
	// When set, data will be lost when the pod is deleted or restarted.
	// Mutually exclusive with PersistentVolumeClaimTemplate.
	// +optional
	EmptyDir *corev1.EmptyDirVolumeSource `json:"emptyDir,omitempty"`

	// pvcTemplate is the template for PVCs that will be created.
	// Mutually exclusive with EmptyDir.
	// +optional
	PersistentVolumeClaimTemplate *corev1.PersistentVolumeClaimSpec `json:"pvcTemplate,omitempty"`
}

StorageConfiguration is the configuration used to create and reconcile PVCs +kubebuilder:validation:XValidation:rule="!(has(self.emptyDir) && has(self.pvcTemplate))",message="emptyDir and pvcTemplate are mutually exclusive"

func (*StorageConfiguration) DeepCopy

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

func (*StorageConfiguration) DeepCopyInto

func (in *StorageConfiguration) DeepCopyInto(out *StorageConfiguration)

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

type TLS

type TLS struct {
	// enable determines whether TLS is enabled for connections to Perses
	// +optional
	Enable *bool `json:"enable,omitempty"`
	// caCert specifies the CA certificate to verify the Perses server's certificate
	// +optional
	CaCert *Certificate `json:"caCert,omitempty"`
	// userCert specifies the client certificate and key for mutual TLS (mTLS) authentication
	// +optional
	UserCert *Certificate `json:"userCert,omitempty"`
	// insecureSkipVerify determines whether to skip verification of the Perses server's certificate
	// Setting this to true is insecure and should only be used for testing
	// +optional
	InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty"`
}

func (*TLS) DeepCopy

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto

func (in *TLS) DeepCopyInto(out *TLS)

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

Jump to

Keyboard shortcuts

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