v1alpha1

package
v0.38.0 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2023 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +kubebuilder:object:generate=true +groupName=dashboard.kubedb.com

Index

Constants

View Source
const (
	ES_USER_ENV     = "ELASTICSEARCH_USERNAME"
	ES_PASSWORD_ENV = "ELASTICSEARCH_PASSWORD"
	ES_USER_KEY     = "elasticsearch.username"
	ES_PASSWORD_KEY = "elasticsearch.password"
	OS_USER_KEY     = "opensearch.username"
	OS_PASSWORD_KEY = "opensearch.password"

	ElasticsearchDashboardPortServer         = "server"
	ElasticsearchDashboardConfigMergeCommand = "/usr/local/bin/dashboard-config-merger.sh"

	KibanaConfigDir       = "/usr/share/kibana/config"
	KibanaTempConfigDir   = "/kibana/temp-config"
	KibanaCustomConfigDir = "/kibana/custom-config"
	KibanaStatusEndpoint  = "/api/status"
	KibanaConfigFileName  = "kibana.yml"

	OpensearchDashboardsConfigDir       = "/usr/share/opensearch-dashboards/config"
	OpensearchDashboardsTempConfigDir   = "/opensearch-dashboards/temp-config"
	OpensearchDashboardsCustomConfigDir = "/opensearch-dashboards/custom-config"
	OpensearchDashboardsStatusEndpoint  = "/api/status"
	OpensearchDasboardsConfigFileName   = "opensearch_dashboards.yml"

	ElasticsearchHostsKey = "elasticsearch.hosts"
	ElasticsearchSSLCaKey = "elasticsearch.ssl.certificateAuthorities"

	OpensearchHostsKey        = "opensearch.hosts"
	OpensearchSSLCaKey        = "opensearch.ssl.certificateAuthorities"
	OpensearchCookieSecureKey = "opensearch_security.cookie.secure"

	DashboardServerNameKey       = "server.name"
	DashboardServerPortKey       = "server.port"
	DashboardServerHostKey       = "server.host"
	DashboardServerSSLEnabledKey = "server.ssl.enabled"
	DashboardServerSSLCertKey    = "server.ssl.certificate"
	DashboardServerSSLKey        = "server.ssl.key"
	DashboardServerSSLCaKey      = "server.ssl.certificateAuthorities"
	DashboardNodeOptionsKey      = "node.options"
	DashboardMaxOldSpaceFlag     = "--max-old-space-size"

	DashboardDeploymentAvailable           = "MinimumReplicasAvailable"
	DashboardDeploymentNotAvailable        = "MinimumReplicasNotAvailable"
	DashboardServiceReady                  = "ServiceAcceptingRequests"
	DashboardServiceNotReady               = "ServiceNotAcceptingRequests"
	DashboardAcceptingConnectionRequest    = "DashboardAcceptingConnectionRequests"
	DashboardNotAcceptingConnectionRequest = "DashboardNotAcceptingConnectionRequests"
	DashboardReadinessCheckSucceeded       = "DashboardReadinessCheckSucceeded"
	DashboardReadinessCheckFailed          = "DashboardReadinessCheckFailed"
	DashboardOnDeletion                    = "DashboardOnDeletion"

	DashboardStateGreen  = "ServerHealthGood"
	DashboardStateYellow = "ServerHealthCritical"
	DashboardStateRed    = "ServerUnhealthy"

	DBNotFound = "DatabaseNotFound"
	DBNotReady = "DatabaseNotReady"

	ComponentDashboard                  = "dashboard"
	CaCertKey                           = "ca.crt"
	DefaultElasticsearchClientCertAlias = "archiver"
	HealthCheckInterval                 = 10 * time.Second
	GlobalHost                          = "0.0.0.0"

	ElasticsearchDashboardRESTPort     = 5601
	ElasticsearchDashboardRESTPortName = "http"
)
View Source
const (
	ResourceCodeElasticsearchDashboard = "ed"
	ResourceKindElasticsearchDashboard = "ElasticsearchDashboard"
	ResourceElasticsearchDashboard     = "elasticsearchdashboard"
	ResourceElasticsearchDashboards    = "elasticsearchdashboards"
)

Variables

View Source
var (
	ElasticsearchDashboardGracefulDeletionPeriod = (int64)(time.Duration(3 * time.Second))

	DashboardsDefaultResources = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".100"),
			core.ResourceMemory: resource.MustParse("1Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("1Gi"),
		},
	}
)
View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "dashboard.kubedb.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

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

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type DashboardConditionType

type DashboardConditionType string

+kubebuilder:validation:Enum=DeploymentReconciled;ServiceReconciled;DashboardProvisioned;ServerAcceptingConnection;ServerHealthy

const (
	DashboardConditionDeploymentReconciled DashboardConditionType = "DeploymentReconciled"
	DashboardConditionServiceReconciled    DashboardConditionType = "ServiceReconciled"
	DashboardConditionProvisioned          DashboardConditionType = "DashboardProvisioned"
	DashboardConditionAcceptingConnection  DashboardConditionType = "ServerAcceptingConnection"
	DashboardConditionServerHealthy        DashboardConditionType = "ServerHealthy"
)

type DashboardPhase

type DashboardPhase string

+kubebuilder:validation:Enum=Provisioning;Ready;Critical;NotReady

const (
	// used for Dashboards that are currently provisioning
	DashboardPhaseProvisioning DashboardPhase = "Provisioning"
	// used for Dashboards that are currently ReplicaReady, AcceptingConnection and Ready
	DashboardPhaseReady DashboardPhase = "Ready"
	// used for Dashboards that can connect, ReplicaReady == false || Ready == false (eg, ES yellow)
	DashboardPhaseCritical DashboardPhase = "Critical"
	// used for Dashboards that can't connect
	DashboardPhaseNotReady DashboardPhase = "NotReady"
)

type DashboardServerState

type DashboardServerState string

+kubebuilder:validation:Enum=green;yellow;red;available;degraded;unavailable

const (
	StateGreen       DashboardServerState = "green"
	StateYellow      DashboardServerState = "yellow"
	StateRed         DashboardServerState = "red"
	StateAvailable   DashboardServerState = "available"
	StateDegraded    DashboardServerState = "degraded"
	StateUnavailable DashboardServerState = "unavailable"
)

type DashboardStatus

type DashboardStatus string

+kubebuilder:validation:Enum=Available;OK;Warning;Error

const (
	Available     DashboardStatus = "Available"
	StatusOK      DashboardStatus = "OK"
	StatusWarning DashboardStatus = "Warning"
	StatusError   DashboardStatus = "Error"
)

type DashboardVolumeName

type DashboardVolumeName string

+kubebuilder:validation:Enum=dashboard-custom-config;dashboard-temp-config;dashboard-config;kibana-server;database-client

const (
	DashboardVolumeCustomConfig            DashboardVolumeName = "dashboard-custom-config"
	DashboardVolumeOperatorGeneratedConfig DashboardVolumeName = "dashboard-temp-config"
	DashboardVolumeConfig                  DashboardVolumeName = "dashboard-config"
	DashboardVolumeServerTLS               DashboardVolumeName = "server-tls"
	DashboardVolumeDatabaseClient          DashboardVolumeName = "database-client"
)

type ElasticsearchDashboard

type ElasticsearchDashboard struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`

	Spec   ElasticsearchDashboardSpec   `json:"spec,omitempty"`
	Status ElasticsearchDashboardStatus `json:"status,omitempty"`
}

ElasticsearchDashboard is the Schema for the elasticsearchdashboards API +genclient +k8s:openapi-gen=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:resource:shortName=ed,scope=Namespaced +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".apiVersion" +kubebuilder:printcolumn:name="Database",type="string",JSONPath=".spec.databaseRef.name" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (ElasticsearchDashboard) AuthSecretName

func (ed ElasticsearchDashboard) AuthSecretName() string

func (*ElasticsearchDashboard) CertSecretExists

func (*ElasticsearchDashboard) CertSecretVolumeMountPath

func (ed *ElasticsearchDashboard) CertSecretVolumeMountPath(configDir string, alias ElasticsearchDashboardCertificateAlias) string

func (*ElasticsearchDashboard) CertificateFilePath

func (ed *ElasticsearchDashboard) CertificateFilePath(configDir string, alias ElasticsearchDashboardCertificateAlias, filename string) string

func (*ElasticsearchDashboard) CertificateSecretName

func (ed *ElasticsearchDashboard) CertificateSecretName(alias ElasticsearchDashboardCertificateAlias) string

func (ElasticsearchDashboard) ClientCertificateCN

func (ElasticsearchDashboard) CustomConfigSecretName

func (ed ElasticsearchDashboard) CustomConfigSecretName() string

func (ElasticsearchDashboard) CustomResourceDefinition

func (_ ElasticsearchDashboard) CustomResourceDefinition() *apiextensions.CustomResourceDefinition

func (ElasticsearchDashboard) DashboardContainerName

func (ed ElasticsearchDashboard) DashboardContainerName() string

func (ElasticsearchDashboard) DatabaseClientSecretName

func (ed ElasticsearchDashboard) DatabaseClientSecretName() string

func (*ElasticsearchDashboard) DatabaseConnectionURL

func (ed *ElasticsearchDashboard) DatabaseConnectionURL(servicePort int32) (string, error)

func (*ElasticsearchDashboard) DeepCopy

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

func (*ElasticsearchDashboard) DeepCopyInto

func (in *ElasticsearchDashboard) DeepCopyInto(out *ElasticsearchDashboard)

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

func (*ElasticsearchDashboard) DeepCopyObject

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

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

func (*ElasticsearchDashboard) Default

func (ed *ElasticsearchDashboard) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*ElasticsearchDashboard) DefaultCertificateSecretName

func (ed *ElasticsearchDashboard) DefaultCertificateSecretName(alias ElasticsearchDashboardCertificateAlias) string

DefaultCertificateSecretName returns the default certificate name and/or certificate secret name for a certificate alias

func (ElasticsearchDashboard) DefaultConfigSecretName

func (ed ElasticsearchDashboard) DefaultConfigSecretName() string

func (ElasticsearchDashboard) DeploymentName

func (ed ElasticsearchDashboard) DeploymentName() string

func (ElasticsearchDashboard) GetCertVolumeName

func (*ElasticsearchDashboard) GetConnectionScheme

func (ed *ElasticsearchDashboard) GetConnectionScheme() string

func (*ElasticsearchDashboard) GetDatabaseClientCertName

func (ed *ElasticsearchDashboard) GetDatabaseClientCertName(databaseName string) string

func (ElasticsearchDashboard) GetSecretName

func (*ElasticsearchDashboard) GetServicePort

func (ed *ElasticsearchDashboard) GetServicePort(alias ServiceAlias) int32

func (*ElasticsearchDashboard) GetServiceSelectors

func (ed *ElasticsearchDashboard) GetServiceSelectors() map[string]string

func (*ElasticsearchDashboard) OffshootLabels

func (ed *ElasticsearchDashboard) OffshootLabels() map[string]string

func (ElasticsearchDashboard) OffshootName

func (ed ElasticsearchDashboard) OffshootName() string

func (*ElasticsearchDashboard) OffshootSelectors

func (ed *ElasticsearchDashboard) OffshootSelectors(extraSelectors ...map[string]string) map[string]string

func (*ElasticsearchDashboard) Owner

Owner returns owner reference to resources

func (*ElasticsearchDashboard) PodControllerLabels

func (ed *ElasticsearchDashboard) PodControllerLabels(extraLabels ...map[string]string) map[string]string

func (*ElasticsearchDashboard) PodLabels

func (ed *ElasticsearchDashboard) PodLabels(extraLabels ...map[string]string) map[string]string

func (ElasticsearchDashboard) ResourceFQN

func (ed ElasticsearchDashboard) ResourceFQN() string

func (ElasticsearchDashboard) ResourceKind

func (ed ElasticsearchDashboard) ResourceKind() string

func (ElasticsearchDashboard) ResourcePlural

func (ed ElasticsearchDashboard) ResourcePlural() string

func (ElasticsearchDashboard) ResourceShortCode

func (ed ElasticsearchDashboard) ResourceShortCode() string

func (ElasticsearchDashboard) ResourceSingular

func (ed ElasticsearchDashboard) ResourceSingular() string

func (*ElasticsearchDashboard) Selectors

func (ed *ElasticsearchDashboard) Selectors() *meta.LabelSelector

Selectors returns a labels elector by offshoring extra selector (if any)

func (*ElasticsearchDashboard) ServiceLabels

func (ed *ElasticsearchDashboard) ServiceLabels(alias ServiceAlias, extraLabels ...map[string]string) map[string]string

func (ElasticsearchDashboard) ServiceName

func (ed ElasticsearchDashboard) ServiceName() string

func (*ElasticsearchDashboard) SetupWebhookWithManager

func (ed *ElasticsearchDashboard) SetupWebhookWithManager(mgr manager.Manager) error

func (*ElasticsearchDashboard) Validate

func (ed *ElasticsearchDashboard) Validate() error

func (*ElasticsearchDashboard) ValidateCreate

func (ed *ElasticsearchDashboard) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*ElasticsearchDashboard) ValidateDelete

func (ed *ElasticsearchDashboard) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*ElasticsearchDashboard) ValidateUpdate

func (ed *ElasticsearchDashboard) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type ElasticsearchDashboardCertificateAlias

type ElasticsearchDashboardCertificateAlias string

+kubebuilder:validation:Enum=ca;database-client;kibana-server

const (
	ElasticsearchDashboardCACert     ElasticsearchDashboardCertificateAlias = "ca"
	ElasticsearchDatabaseClientCert  ElasticsearchDashboardCertificateAlias = "database-client"
	ElasticsearchDashboardServerCert ElasticsearchDashboardCertificateAlias = "server"
)

type ElasticsearchDashboardConfigAlias

type ElasticsearchDashboardConfigAlias string

+kubebuilder:validation:Enum=config

const (
	ElasticsearchDashboardDefaultConfig ElasticsearchDashboardConfigAlias = "config"
)

type ElasticsearchDashboardList

type ElasticsearchDashboardList struct {
	meta.TypeMeta `json:",inline"`
	meta.ListMeta `json:"metadata,omitempty"`
	Items         []ElasticsearchDashboard `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true

func (*ElasticsearchDashboardList) DeepCopy

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

func (*ElasticsearchDashboardList) DeepCopyInto

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

func (*ElasticsearchDashboardList) DeepCopyObject

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

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

type ElasticsearchDashboardSpec

type ElasticsearchDashboardSpec struct {
	// host elasticsearch name and namespace
	DatabaseRef *core.LocalObjectReference `json:"databaseRef,omitempty"`

	// Number of instances to deploy for a ElasticsearchDashboard Dashboard.
	Replicas *int32 `json:"replicas,omitempty"`

	// To enable ssl for http layer
	EnableSSL bool `json:"enableSSL,omitempty"`

	// Dashboard authentication secret
	// +optional
	AuthSecret *core.LocalObjectReference `json:"authSecret,omitempty"`

	// ConfigSecret is an optional field to provide custom configuration file for dashboard.
	// If specified, this file will be used as configuration file otherwise default configuration file will be used.
	// +optional
	ConfigSecret *core.LocalObjectReference `json:"configSecret,omitempty"`

	// PodTemplate is an optional configuration for pods used to expose Dashboard
	// +optional
	PodTemplate ofst.PodTemplateSpec `json:"podTemplate,omitempty"`

	// ServiceTemplates is an optional configuration for services used to expose Dashboard
	// +optional
	ServiceTemplates []api.NamedServiceTemplateSpec `json:"serviceTemplates,omitempty"`

	// TLS contains tls configurations
	// +optional
	TLS *kmapi.TLSConfig `json:"tls,omitempty"`

	// TerminationPolicy controls the delete operation for Dashboard
	// +optional
	TerminationPolicy api.TerminationPolicy `json:"terminationPolicy,omitempty"`
}

ElasticsearchDashboardSpec defines the desired state of ElasticsearchDashboard

func (*ElasticsearchDashboardSpec) DeepCopy

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

func (*ElasticsearchDashboardSpec) DeepCopyInto

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

type ElasticsearchDashboardStatus

type ElasticsearchDashboardStatus struct {
	// Specifies the current phase of the database
	// +optional
	Phase DashboardPhase `json:"phase,omitempty"`
	// observedGeneration is the most recent generation observed for this resource. It corresponds to the
	// resource's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Conditions applied to the database, such as approval or denial.
	// +optional
	Conditions []kmapi.Condition `json:"conditions,omitempty"`
}

ElasticsearchDashboardStatus defines the observed state of ElasticsearchDashboard

func (*ElasticsearchDashboardStatus) DeepCopy

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

func (*ElasticsearchDashboardStatus) DeepCopyInto

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

type ServiceAlias

type ServiceAlias string

+kubebuilder:validation:Enum=primary;stats

const (
	PrimaryServiceAlias ServiceAlias = "primary"
	StatsServiceAlias   ServiceAlias = "stats"
)

Jump to

Keyboard shortcuts

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