v1alpha2

package
v0.1.10-0...-4a0e166 Latest Latest
Warning

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

Go to latest
Published: May 18, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

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 = &scheme.Builder{GroupVersion: 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 {
	dsSpec.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