Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the v1alpha2 API group +kubebuilder:object:generate=true +groupName=perses.dev
Index ¶
- Variables
- type BasicAuth
- type Certificate
- type Client
- type Dashboard
- type Datasource
- type DatasourceSpec
- type KubernetesAuth
- type Metadata
- type OAuth
- type Perses
- type PersesConfig
- type PersesDashboard
- type PersesDashboardList
- type PersesDashboardSpec
- type PersesDashboardStatus
- type PersesDatasource
- type PersesDatasourceList
- type PersesDatasourceStatus
- type PersesGlobalDatasource
- type PersesGlobalDatasourceList
- type PersesGlobalDatasourceStatus
- type PersesList
- type PersesService
- type PersesSpec
- type PersesStatus
- type Provisioning
- type ProvisioningSecret
- type SecretSource
- type SecretSourceType
- type SecretVersion
- type StorageConfiguration
- type TLS
Constants ¶
This section is empty.
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuth.
func (*BasicAuth) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Client.
func (*Client) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dashboard.
func (*Dashboard) DeepCopyInto ¶
type Datasource ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth.
func (*OAuth) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Perses.
func (*Perses) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Perses) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Perses) RequiresDeployment ¶
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 ¶
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 ¶
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 ¶
func (in *PersesDashboardStatus) DeepCopy() *PersesDashboardStatus
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 ¶
func (in *PersesDatasourceList) DeepCopy() *PersesDatasourceList
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 ¶
func (in *PersesDatasourceStatus) DeepCopy() *PersesDatasourceStatus
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 ¶
func (in *PersesGlobalDatasource) DeepCopy() *PersesGlobalDatasource
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 ¶
func (in *PersesGlobalDatasourceList) DeepCopy() *PersesGlobalDatasourceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesGlobalDatasourceList.
func (*PersesGlobalDatasourceList) DeepCopyInto ¶
func (in *PersesGlobalDatasourceList) DeepCopyInto(out *PersesGlobalDatasourceList)
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 ¶
func (in *PersesGlobalDatasourceStatus) DeepCopy() *PersesGlobalDatasourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesGlobalDatasourceStatus.
func (*PersesGlobalDatasourceStatus) DeepCopyInto ¶
func (in *PersesGlobalDatasourceStatus) DeepCopyInto(out *PersesGlobalDatasourceStatus)
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 ¶
func (in *StorageConfiguration) DeepCopy() *StorageConfiguration
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLS.
func (*TLS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.