API Reference

Packages#

perses.dev/v1alpha2#

Package v1alpha2 contains API Schema definitions for the v1alpha2 API group

Resource Types#

BasicAuth#

Appears in:

FieldDescriptionDefaultValidation
type SecretSourceTypetype specifies the source type for secret data (secret, configmap, or file)Enum: [secret configmap file]
Required: {}
name stringname is the name of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
namespace stringnamespace is the namespace of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
username stringusername is the username credential for basic authenticationMinLength: 1
Required: {}
passwordPath stringpasswordPath specifies the key name within the secret/configmap or filesystem path
(depending on SecretSource.Type) where the password is stored
MinLength: 1
Required: {}

Certificate#

Appears in:

FieldDescriptionDefaultValidation
type SecretSourceTypetype specifies the source type for secret data (secret, configmap, or file)Enum: [secret configmap file]
Required: {}
name stringname is the name of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
namespace stringnamespace is the namespace of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
certPath stringcertPath specifies the key name within the secret/configmap or filesystem path
(depending on SecretSource.Type) where the certificate is stored
MinLength: 1
Required: {}
privateKeyPath stringprivateKeyPath 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: {}

Client#

Appears in:

FieldDescriptionDefaultValidation
basicAuth BasicAuthbasicAuth provides username/password authentication configuration for the Perses clientOptional: {}
oauth OAuthoauth provides OAuth 2.0 authentication configuration for the Perses clientOptional: {}
tls TLStls provides TLS/SSL configuration for secure connections to PersesOptional: {}
kubernetesAuth KubernetesAuthkubernetesAuth enables Kubernetes native authentication for the Perses clientOptional: {}

Dashboard#

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

Appears in:

FieldDescriptionDefaultValidation
display Display
datasources object (keys:string, values:Spec)Datasources is an optional list of datasource definition.
variables Variable array
annotations AnnotationSpec array
panels object (keys:string, values:Panel)
layouts Layout array
duration DurationStringDuration is the default time range to use when getting data to fill the dashboard
refreshInterval DurationStringRefreshInterval is the default refresh interval to use when landing on the dashboard
timezone stringTimezone is the dashboard level timezone
links Link arrayLinks is an optional list of links to display at the dashboard level

Datasource#

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

Appears in:

FieldDescriptionDefaultValidation
display Display
default boolean
plugin PluginPlugin will contain the datasource configuration.
The data typed is available in Cue.

DatasourceSpec#

DatasourceSpec defines the desired state of a Perses datasource

Appears in:

FieldDescriptionDefaultValidation
config Datasourceconfig specifies the Perses datasource configurationRequired: {}
client Clientclient specifies authentication and TLS configuration for the datasourceOptional: {}
instanceSelector LabelSelectorinstanceSelector selects Perses instances where this datasource will be createdOptional: {}

KubernetesAuth#

Appears in:

FieldDescriptionDefaultValidation
enable booleanenable determines whether Kubernetes authentication is enabled for the Perses clientOptional: {}

Metadata#

Metadata to add to deployed pods

Appears in:

FieldDescriptionDefaultValidation
labels object (keys:string, values:string)labels are key/value pairs attached to podsOptional: {}
annotations object (keys:string, values:string)annotations are key/value pairs attached to pods for non-identifying metadataOptional: {}

OAuth#

Appears in:

FieldDescriptionDefaultValidation
type SecretSourceTypetype specifies the source type for secret data (secret, configmap, or file)Enum: [secret configmap file]
Required: {}
name stringname is the name of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
namespace stringnamespace is the namespace of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
clientIDPath stringclientIDPath specifies the key name within the secret/configmap or filesystem path
(depending on SecretSource.Type) where the OAuth client ID is stored
Optional: {}
clientSecretPath stringclientSecretPath specifies the key name within the secret/configmap or filesystem path
(depending on SecretSource.Type) where the OAuth client secret is stored
Optional: {}
tokenURL stringtokenURL is the OAuth 2.0 provider's token endpoint URL
This is a constant specific to each OAuth provider
MinLength: 1
Required: {}
scopes string arrayscopes specifies optional requested permissions for the OAuth tokenOptional: {}
endpointParams object (keys:string, values:string array)endpointParams specifies additional parameters to include in requests to the token endpointOptional: {}
authStyle integerauthStyle specifies how the endpoint wants the client ID and client secret sent
The zero value means to auto-detect
Optional: {}

Perses#

Perses is the Schema for the perses API

FieldDescriptionDefaultValidation
apiVersion stringperses.dev/v1alpha2
kind stringPerses
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec PersesSpecspec is the desired state of the Perses resourceOptional: {}
status PersesStatusstatus is the observed state of the Perses resourceOptional: {}

PersesConfig#

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

Appears in:

FieldDescriptionDefaultValidation
api_prefix stringUse it in case you want to prefix the API path.
This can be useful if you are running Perses behind a reverse proxy.
By default, the API is served with the path /api.
With this config, it will be served with the path <api_prefix>/api
Example: "/perses"
security SecuritySecurity contains any configuration that changes the API behavior like the endpoints exposed or if the permissions are activated.
database DatabaseDatabase contains the different configuration depending on the database you want to use
schemas SchemasSchemas contain the configuration to get access to the CUE schemas
DEPRECATED.
Please remove it from your config.
dashboard DashboardConfigDashboard contains the configuration for the dashboard feature.
provisioning ProvisioningConfigProvisioning contains the provisioning config that can be used if you want to provide default resources.
datasource DatasourceConfigDatasource contains the configuration for the datasource.
variable VariableConfigVariable contains the configuration for the variable.
ephemeral_dashboards_cleanup_interval DurationEphemeralDashboardsCleanupInterval is the interval at which the ephemeral dashboards are cleaned up
DEPRECATED.
Please use the config EphemeralDashboard instead.
Format: duration
Pattern: ^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$
Type: string
ephemeral_dashboard EphemeralDashboardEphemeralDashboard contains the config about the ephemeral dashboard feature
frontend FrontendFrontend contains any config that will be used by the frontend itself.
plugin PluginPlugin contains the config for runtime plugins.

PersesDashboard#

PersesDashboard is the Schema for the persesdashboards API

FieldDescriptionDefaultValidation
apiVersion stringperses.dev/v1alpha2
kind stringPersesDashboard
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec PersesDashboardSpecspec is the desired state of the PersesDashboard resourceRequired: {}
status PersesDashboardStatusstatus is the observed state of the PersesDashboard resourceOptional: {}

PersesDashboardSpec#

PersesDashboardSpec defines the desired state of PersesDashboard

Appears in:

FieldDescriptionDefaultValidation
config Dashboardconfig specifies the Perses dashboard configurationRequired: {}
instanceSelector LabelSelectorinstanceSelector selects Perses instances where this dashboard will be createdOptional: {}

PersesDashboardStatus#

PersesDashboardStatus defines the observed state of PersesDashboard

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the latest observations of the PersesDashboard resource stateOptional: {}

PersesDatasource#

PersesDatasource is the Schema for the PersesDatasources API

FieldDescriptionDefaultValidation
apiVersion stringperses.dev/v1alpha2
kind stringPersesDatasource
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec DatasourceSpecspec is the desired state of the PersesDatasource resourceRequired: {}
status PersesDatasourceStatusstatus is the observed state of the PersesDatasource resourceOptional: {}

PersesDatasourceStatus#

PersesDatasourceStatus defines the observed state of PersesDatasource

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the latest observations of the PersesDatasource resource stateOptional: {}

PersesGlobalDatasource#

PersesGlobalDatasource is the Schema for the PersesGlobalDatasources API

FieldDescriptionDefaultValidation
apiVersion stringperses.dev/v1alpha2
kind stringPersesGlobalDatasource
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec DatasourceSpecspec is the desired state of the PersesGlobalDatasource resourceRequired: {}
status PersesGlobalDatasourceStatusstatus is the observed state of the PersesGlobalDatasource resourceOptional: {}

PersesGlobalDatasourceStatus#

PersesGlobalDatasourceStatus defines the observed state of PersesGlobalDatasource

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the latest observations of the PersesGlobalDatasource resource stateOptional: {}

PersesService#

PersesService defines service configuration for Perses

Appears in:

FieldDescriptionDefaultValidation
name stringname is the name of the Kubernetes Service resource
If not specified, a default name will be generated
Optional: {}
annotations object (keys:string, values:string)annotations are key/value pairs attached to the Service for non-identifying metadataOptional: {}

PersesSpec#

PersesSpec defines the desired state of Perses

Appears in:

FieldDescriptionDefaultValidation
metadata MetadataRefer to Kubernetes API documentation for fields of metadata.Optional: {}
client Clientclient specifies the Perses client configurationOptional: {}
config PersesConfigconfig specifies the Perses server configurationOptional: {}
args string arrayargs are extra command-line arguments to pass to the Perses serverOptional: {}
containerPort integercontainerPort is the port on which the Perses server listens for HTTP requestsMaximum: 65535
Minimum: 1
Optional: {}
replicas integerreplicas is the number of desired pod replicas for the Perses deploymentOptional: {}
resources ResourceRequirementsresources defines the compute resources configured for the containerOptional: {}
nodeSelector object (keys:string, values:string)nodeSelector constrains pods to nodes with matching labelsOptional: {}
tolerations Toleration arraytolerations allow pods to schedule onto nodes with matching taintsOptional: {}
affinity Affinityaffinity specifies the pod's scheduling constraintsOptional: {}
image stringimage specifies the container image that should be used for the Perses deploymentOptional: {}
service PersesServiceservice specifies the service configuration for the Perses instanceOptional: {}
livenessProbe ProbelivenessProbe specifies the liveness probe configuration for the Perses containerOptional: {}
readinessProbe ProbereadinessProbe specifies the readiness probe configuration for the Perses containerOptional: {}
tls TLStls specifies the TLS configuration for the Perses instanceOptional: {}
storage StorageConfigurationstorage configuration used by the StatefulSetOptional: {}
serviceAccountName stringserviceAccountName is the name of the ServiceAccount to use for the Perses deployment or statefulsetOptional: {}
podSecurityContext PodSecurityContextpodSecurityContext 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
Optional: {}
logLevel stringlogLevel defines the log level for PersesEnum: [panic fatal error warning info debug trace]
Optional: {}
logMethodTrace booleanlogMethodTrace when true, includes the calling method as a field in the log
It can be useful to see immediately where the log comes from
Optional: {}
provisioning Provisioningprovisioning configuration for provisioning secretsOptional: {}
volumes Volume arrayvolumes allows configuration of additional volumes on the Deployment or StatefulSet definitions.
Volumes specified here will be appended to other operator-managed volumes.
MaxItems: 20
Optional: {}
volumeMounts VolumeMount arrayvolumeMounts allows configuration of additional VolumeMounts on the Deployment or StatefulSet definitions.
VolumeMounts specified here will be appended to other operator-managed volume mounts.
MaxItems: 20
Optional: {}

PersesStatus#

PersesStatus defines the observed state of Perses

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the latest observations of the Perses resource stateOptional: {}
provisioning SecretVersion arrayprovisioning contains the versions of provisioning secrets currently in useOptional: {}

Provisioning#

Provisioning configuration for provisioning secrets

Appears in:

FieldDescriptionDefaultValidation
secretRefs ProvisioningSecret arraysecretRefs is a list of references to Kubernetes secrets used for provisioning sensitive data.Optional: {}

ProvisioningSecret#

Appears in:

FieldDescriptionDefaultValidation
name stringName of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Optional: {}
key stringThe key of the secret to select from. Must be a valid secret key.
optional booleanSpecify whether the Secret or its key must be definedOptional: {}

SecretSource#

SecretSource configuration for a perses secret source

Appears in:

FieldDescriptionDefaultValidation
type SecretSourceTypetype specifies the source type for secret data (secret, configmap, or file)Enum: [secret configmap file]
Required: {}
name stringname is the name of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}
namespace stringnamespace is the namespace of the Kubernetes Secret or ConfigMap resource
Required when Type is "secret" or "configmap", ignored when Type is "file"
MinLength: 1
Optional: {}

SecretSourceType#

Underlying type: string

SecretSourceType types of secret sources in k8s

Appears in:

FieldDescription
secret
configmap
file

SecretVersion#

SecretVersion represents a secret version

Appears in:

FieldDescriptionDefaultValidation
name stringname is the name of the provisioning secretMinLength: 1
Required: {}
version stringversion is the resource version of the provisioning secretMinLength: 1
Required: {}

StorageConfiguration#

StorageConfiguration is the configuration used to create and reconcile PVCs

Appears in:

FieldDescriptionDefaultValidation
emptyDir EmptyDirVolumeSourceemptyDir to use for ephemeral storage.
When set, data will be lost when the pod is deleted or restarted.
Mutually exclusive with PersistentVolumeClaimTemplate.
Optional: {}
pvcTemplate PersistentVolumeClaimSpecpvcTemplate is the template for PVCs that will be created.
Mutually exclusive with EmptyDir.
Optional: {}

TLS#

Appears in:

FieldDescriptionDefaultValidation
enable booleanenable determines whether TLS is enabled for connections to PersesOptional: {}
caCert CertificatecaCert specifies the CA certificate to verify the Perses server's certificateOptional: {}
userCert CertificateuserCert specifies the client certificate and key for mutual TLS (mTLS) authenticationOptional: {}
insecureSkipVerify booleaninsecureSkipVerify 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: {}