v1alpha1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the rhobs v1alpha1 API group +kubebuilder:object:generate=true +groupName=observability.openshift.io

Index

Constants

View Source
const (
	ConditionTrue    ConditionStatus = "True"
	ConditionFalse   ConditionStatus = "False"
	ConditionUnknown ConditionStatus = "Unknown"

	ReconciledCondition        ConditionType = "Reconciled"
	AvailableCondition         ConditionType = "Available"
	ResourceDiscoveryCondition ConditionType = "ResourceDiscovery"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "observability.openshift.io", Version: "v1alpha1"}

	// 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 AlertmanagerReference

type AlertmanagerReference struct {
	// Url of the Alertmanager to proxy to.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Url string `json:"url"`
}

Alertmanager is used to configure a reference to a alertmanage that should be used by the monitoring console plugin.

+structType=atomic

func (*AlertmanagerReference) DeepCopy

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

func (*AlertmanagerReference) DeepCopyInto

func (in *AlertmanagerReference) DeepCopyInto(out *AlertmanagerReference)

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

type Condition

type Condition struct {
	// type of condition in CamelCase or in foo.example.com/CamelCase.
	// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
	Type ConditionType `json:"type"`
	// observedGeneration represents the .metadata.generation that the condition was set based upon.
	// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
	// with respect to the current state of the instance.
	// +optional
	// +kubebuilder:validation:Minimum=0
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// lastTransitionTime is the last time the condition transitioned from one status to another.
	// This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=date-time
	LastTransitionTime metav1.Time `json:"lastTransitionTime"`
	// reason contains a programmatic identifier indicating the reason for the condition's last transition.
	// Producers of specific condition types may define expected values and meanings for this field,
	// and whether the values are considered a guaranteed API.
	// The value should be a CamelCase string.
	// This field may not be empty.
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=1024
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`
	Reason string `json:"reason"`
	// message is a human readable message indicating details about the transition.
	// This may be an empty string.
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=32768
	Message string `json:"message"`
	// status of the condition
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=True;False;Unknown;Degraded
	Status ConditionStatus `json:"status"`
}

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

func (Condition) Equal

func (c Condition) Equal(n Condition) bool

type ConditionStatus

type ConditionStatus string

type ConditionType

type ConditionType string

+required +kubebuilder:validation:Required +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` +kubebuilder:validation:MaxLength=316

type DeploymentConfig

type DeploymentConfig struct {
	// Define a label-selector for nodes which the Pods should be scheduled on.
	//
	// When no selector is specified it will default to a value only selecting Linux nodes ("kubernetes.io/os=linux").
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Selector",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:nodeSelector"}
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Define the tolerations used for the deployment.
	//
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Pod Tolerations",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Toleration"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

DeploymentConfig contains options allowing the customization of the deployment hosting the UI Plugin.

func (*DeploymentConfig) DeepCopy

func (in *DeploymentConfig) DeepCopy() *DeploymentConfig

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

func (*DeploymentConfig) DeepCopyInto

func (in *DeploymentConfig) DeepCopyInto(out *DeploymentConfig)

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

type DistributedTracingConfig

type DistributedTracingConfig struct {
	// Timeout is the maximum duration before a query timeout.
	//
	// The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds)
	// or 'm' (minutes).
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OCP Console Query Timeout",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:ocpConsoleTimeout"}
	// +kubebuilder:validation:Pattern:="^([0-9]+)([sm]{1})$"
	Timeout string `json:"timeout,omitempty"`
}

DistributedTracingConfig contains options for configuring the Distributed Tracing plugin

func (*DistributedTracingConfig) DeepCopy

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

func (*DistributedTracingConfig) DeepCopyInto

func (in *DistributedTracingConfig) DeepCopyInto(out *DistributedTracingConfig)

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

type LoggingConfig

type LoggingConfig struct {
	// LokiStack points to the LokiStack instance of which logs should be displayed.
	// It always references a LokiStack in the "openshift-logging" namespace.
	//
	// +kubebuilder:validation:Required
	LokiStack LokiStackReference `json:"lokiStack"`

	// LogsLimit is the max number of entries returned for a query.
	//
	// +kubebuilder:validation:Minimum=0
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OCP Console Log Limit",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:ocpConsoleLogLimit"}
	LogsLimit int32 `json:"logsLimit,omitempty"`

	// Timeout is the maximum duration before a query timeout.
	//
	// The value is expected to be a sequence of digits followed by an optional unit suffix, which can be 's' (seconds)
	// or 'm' (minutes). If the unit is omitted, it defaults to seconds.
	//
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OCP Console Query Timeout",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:ocpConsoleTimeout"}
	// +kubebuilder:validation:Pattern:="^([0-9]+)([sm]{0,1})$"
	Timeout string `json:"timeout,omitempty"`
}

LoggingConfig contains options for configuring the logging console plugin.

func (*LoggingConfig) DeepCopy

func (in *LoggingConfig) DeepCopy() *LoggingConfig

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

func (*LoggingConfig) DeepCopyInto

func (in *LoggingConfig) DeepCopyInto(out *LoggingConfig)

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

type LokiStackReference

type LokiStackReference struct {
	// Name of the LokiStack resource.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Name string `json:"name"`
}

LokiStackReference is used to configure a reference to a LokiStack that should be used by the Logging console plugin.

Currently, always points to a LokiStack resource in the "openshift-logging" namespace.

+structType=atomic

func (*LokiStackReference) DeepCopy

func (in *LokiStackReference) DeepCopy() *LokiStackReference

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

func (*LokiStackReference) DeepCopyInto

func (in *LokiStackReference) DeepCopyInto(out *LokiStackReference)

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

type MonitoringConfig

type MonitoringConfig struct {
	// Alertmanager points to the alertmanager instance of which it should create a proxy to.
	//
	// +kubebuilder:validation:Required
	Alertmanager AlertmanagerReference `json:"alertmanager"`

	// ThanosQuerier points to the thanos-querier service of which it should create a proxy to.
	//
	// +kubebuilder:validation:Required
	ThanosQuerier ThanosQuerierReference `json:"thanosQuerier"`
}

MonitoringConfig contains options for configuring the monitoring console plugin.

func (*MonitoringConfig) DeepCopy

func (in *MonitoringConfig) DeepCopy() *MonitoringConfig

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

func (*MonitoringConfig) DeepCopyInto

func (in *MonitoringConfig) DeepCopyInto(out *MonitoringConfig)

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

type ThanosQuerierReference

type ThanosQuerierReference struct {
	// Url of the ThanosQuerier to proxy to.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Url string `json:"url"`
}

ThanosQuerier is used to configure a reference to a thanos-querier service that should be used by the monitoring console plugin.

+structType=atomic

func (*ThanosQuerierReference) DeepCopy

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

func (*ThanosQuerierReference) DeepCopyInto

func (in *ThanosQuerierReference) DeepCopyInto(out *ThanosQuerierReference)

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

type TroubleshootingPanelConfig

type TroubleshootingPanelConfig struct {
	// Timeout is the maximum duration before a query timeout.
	//
	// The value is expected to be a sequence of digits followed by a unit suffix, which can be 's' (seconds)
	// or 'm' (minutes).
	//
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="OCP Console Query Timeout",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:ocpConsoleTimeout"}
	// +kubebuilder:validation:Pattern:="^([0-9]+)([sm]{1})$"
	Timeout string `json:"timeout,omitempty"`
}

TroubleshootingPanelConfig contains options for configuring the Troubleshooting Panel plugin

func (*TroubleshootingPanelConfig) DeepCopy

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

func (*TroubleshootingPanelConfig) DeepCopyInto

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

type UIPlugin

type UIPlugin struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   UIPluginSpec   `json:"spec,omitempty"`
	Status UIPluginStatus `json:"status,omitempty"`
}

UIPlugin defines an observability console plugin. +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster +kubebuilder:subresource:status +kubebuilder:validation:XValidation:rule="self.spec.type != 'Logging' || self.metadata.name == 'logging'",message="UIPlugin name must be 'logging' if type is Logging" +kubebuilder:validation:XValidation:rule="self.spec.type != 'TroubleshootingPanel' || self.metadata.name == 'troubleshooting-panel'",message="UIPlugin name must be 'troubleshooting-panel' if type is TroubleshootingPanel" +kubebuilder:validation:XValidation:rule="self.spec.type != 'DistributedTracing' || self.metadata.name == 'distributed-tracing'",message="UIPlugin name must be 'distributed-tracing' if type is DistributedTracing" +kubebuilder:validation:XValidation:rule="self.spec.type != 'Dashboards' || self.metadata.name == 'dashboards'",message="UIPlugin name must be 'dashboards' if type is Dashboards" +kubebuilder:validation:XValidation:rule="self.spec.type != 'Monitoring' || self.metadata.name == 'monitoring'",message="UIPlugin name must be 'monitoring' if type is Monitoring"

func (*UIPlugin) DeepCopy

func (in *UIPlugin) DeepCopy() *UIPlugin

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

func (*UIPlugin) DeepCopyInto

func (in *UIPlugin) DeepCopyInto(out *UIPlugin)

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

func (*UIPlugin) DeepCopyObject

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

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

type UIPluginList

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

UIPluginList contains a list of UIPlugin +kubebuilder:resource +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*UIPluginList) DeepCopy

func (in *UIPluginList) DeepCopy() *UIPluginList

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

func (*UIPluginList) DeepCopyInto

func (in *UIPluginList) DeepCopyInto(out *UIPluginList)

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

func (*UIPluginList) DeepCopyObject

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

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

type UIPluginSpec

type UIPluginSpec struct {
	// Type defines the UI plugin.
	// +required
	// +kubebuilder:validation:Required
	Type UIPluginType `json:"type"`

	// Deployment allows customizing aspects of the generated deployment hosting the UI Plugin.
	//
	// +kubebuilder:validation:Optional
	Deployment *DeploymentConfig `json:"deployment,omitempty"`

	// TroubleshootingPanel contains configuration for the troubleshooting console plugin.
	//
	// +kubebuilder:validation:Optional
	TroubleshootingPanel *TroubleshootingPanelConfig `json:"troubleshootingPanel,omitempty"`

	// DistributedTracing contains configuration for the distributed tracing console plugin.
	//
	// +kubebuilder:validation:Optional
	DistributedTracing *DistributedTracingConfig `json:"distributedTracing,omitempty"`

	// Logging contains configuration for the logging console plugin.
	//
	// It only applies to UIPlugin Type: Logging.
	//
	// +kubebuilder:validation:Optional
	Logging *LoggingConfig `json:"logging,omitempty"`

	// Monitoring contains configuration for the monitoring console plugin.
	//
	// +kubebuilder:validation:Optional
	Monitoring *MonitoringConfig `json:"monitoring,omitempty"`
}

UIPluginSpec is the specification for desired state of UIPlugin.

+kubebuilder:validation:XValidation:rule="self.type == 'TroubleshootingPanel' || !has(self.troubleshootingPanel)", message="Troubleshooting Panel configuration is only supported with the TroubleshootingPanel type" +kubebuilder:validation:XValidation:rule="self.type == 'DistributedTracing' || !has(self.distributedTracing)", message="Distributed Tracing configuration is only supported with the DistributedTracing type" +kubebuilder:validation:XValidation:rule="self.type != 'Logging' || has(self.logging)", message="Logging configuration is required if type is Logging"

func (*UIPluginSpec) DeepCopy

func (in *UIPluginSpec) DeepCopy() *UIPluginSpec

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

func (*UIPluginSpec) DeepCopyInto

func (in *UIPluginSpec) DeepCopyInto(out *UIPluginSpec)

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

type UIPluginStatus

type UIPluginStatus struct {
	// Conditions provide status information about the plugin.
	// +listType=atomic
	Conditions []Condition `json:"conditions"`
}

UIPluginStatus defines the observed state of UIPlugin. It should always be reconstructable from the state of the cluster and/or outside world.

func (*UIPluginStatus) DeepCopy

func (in *UIPluginStatus) DeepCopy() *UIPluginStatus

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

func (*UIPluginStatus) DeepCopyInto

func (in *UIPluginStatus) DeepCopyInto(out *UIPluginStatus)

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

type UIPluginType

type UIPluginType string

+kubebuilder:validation:Enum=Dashboards;TroubleshootingPanel;DistributedTracing;Logging;Monitoring

const (
	// TypeDashboards deploys the Dashboards Dynamic Plugin for OpenShift Console.
	TypeDashboards UIPluginType = "Dashboards"
	// DistributedTracing deploys the Distributed Tracing Dynamic Plugin for the OpenShift Console
	TypeDistributedTracing UIPluginType = "DistributedTracing"
	// TroubleshootingPanel deploys the Troubleshooting Panel Dynamic Plugin for the OpenShift Console
	TypeTroubleshootingPanel UIPluginType = "TroubleshootingPanel"
	// Monitoring deploys the Monitoring Plugin for the OpenShift Console
	TypeMonitoring UIPluginType = "Monitoring"

	// TypeLogging deploys the Logging View Plugin for OpenShift Console.
	TypeLogging UIPluginType = "Logging"
)

Jump to

Keyboard shortcuts

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