v1alpha1

package
v0.0.0-...-56c3f64 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the postgresql v1alpha1 API group +kubebuilder:object:generate=true +groupName=postgresql.easymile.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "postgresql.easymile.com", 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 ConnectionTypesSpecEnum

type ConnectionTypesSpecEnum string
const BouncerConnectionType ConnectionTypesSpecEnum = "BOUNCER"
const PrimaryConnectionType ConnectionTypesSpecEnum = "PRIMARY"

type DatabaseModulesList

type DatabaseModulesList struct {
	// Modules list
	// +optional
	// +listType=set
	List []string `json:"list,omitempty"`
	// Should drop on delete ?
	// +optional
	DropOnOnDelete bool `json:"dropOnDelete,omitempty"`
	// Should drop with cascade ?
	// +optional
	DeleteWithCascade bool `json:"deleteWithCascade,omitempty"`
}

func (*DatabaseModulesList) DeepCopy

func (in *DatabaseModulesList) DeepCopy() *DatabaseModulesList

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

func (*DatabaseModulesList) DeepCopyInto

func (in *DatabaseModulesList) DeepCopyInto(out *DatabaseModulesList)

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

type DatabaseStatusPhase

type DatabaseStatusPhase string
const DatabaseCreatedPhase DatabaseStatusPhase = "Created"
const DatabaseFailedPhase DatabaseStatusPhase = "Failed"
const DatabaseNoPhase DatabaseStatusPhase = ""

type EngineStatusPhase

type EngineStatusPhase string
const EngineFailedPhase EngineStatusPhase = "Failed"
const EngineNoPhase EngineStatusPhase = ""
const EngineValidatedPhase EngineStatusPhase = "Validated"

type GenericUserConnection

type GenericUserConnection struct {
	// Hostname
	// +required
	// +kubebuilder:validation:Required
	Host string `json:"host"`
	// URI args like sslmode, ...
	URIArgs string `json:"uriArgs"`
	// Port
	Port int `json:"port,omitempty"`
}

func (*GenericUserConnection) DeepCopy

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

func (*GenericUserConnection) DeepCopyInto

func (in *GenericUserConnection) DeepCopyInto(out *GenericUserConnection)

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

type ModeEnum

type ModeEnum string
const ManagedMode ModeEnum = "MANAGED"
const ProvidedMode ModeEnum = "PROVIDED"

type PostgresqlDatabase

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

	Spec   PostgresqlDatabaseSpec   `json:"spec,omitempty"`
	Status PostgresqlDatabaseStatus `json:"status,omitempty"`
}

PostgresqlDatabase is the Schema for the postgresqldatabases API.

func (*PostgresqlDatabase) DeepCopy

func (in *PostgresqlDatabase) DeepCopy() *PostgresqlDatabase

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

func (*PostgresqlDatabase) DeepCopyInto

func (in *PostgresqlDatabase) DeepCopyInto(out *PostgresqlDatabase)

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

func (*PostgresqlDatabase) DeepCopyObject

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

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

type PostgresqlDatabaseList

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

PostgresqlDatabaseList contains a list of PostgresqlDatabase.

func (*PostgresqlDatabaseList) DeepCopy

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

func (*PostgresqlDatabaseList) DeepCopyInto

func (in *PostgresqlDatabaseList) DeepCopyInto(out *PostgresqlDatabaseList)

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

func (*PostgresqlDatabaseList) DeepCopyObject

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

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

type PostgresqlDatabaseSpec

type PostgresqlDatabaseSpec struct {

	// Database name
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Database string `json:"database"`
	// Master role name will be used to create top group role.
	// Database owner and users will be in this group role.
	// +optional
	MasterRole string `json:"masterRole,omitempty"`
	// Should drop database on Custom Resource deletion ?
	// +optional
	DropOnDelete bool `json:"dropOnDelete,omitempty"`
	// Wait for linked resource to be deleted
	// +optional
	WaitLinkedResourcesDeletion bool `json:"waitLinkedResourcesDeletion,omitempty"`
	// Schema to create in database
	// +optional
	Schemas DatabaseModulesList `json:"schemas,omitempty"`
	// Extensions to enable
	// +optional
	Extensions DatabaseModulesList `json:"extensions,omitempty"`
	// Postgresql Engine Configuration link
	// +required
	// +kubebuilder:validation:Required
	EngineConfiguration *common.CRLink `json:"engineConfiguration"`
}

PostgresqlDatabaseSpec defines the desired state of PostgresqlDatabase.

func (*PostgresqlDatabaseSpec) DeepCopy

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

func (*PostgresqlDatabaseSpec) DeepCopyInto

func (in *PostgresqlDatabaseSpec) DeepCopyInto(out *PostgresqlDatabaseSpec)

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

type PostgresqlDatabaseStatus

type PostgresqlDatabaseStatus struct {

	// Current phase of the operator
	Phase DatabaseStatusPhase `json:"phase"`
	// Human-readable message indicating details about current operator phase or error.
	// +optional
	Message string `json:"message"`
	// True if all resources are in a ready state and all work is done.
	// +optional
	Ready bool `json:"ready"`
	// Created database
	// +optional
	Database string `json:"database"`
	// Already created roles for database
	// +optional
	Roles StatusPostgresRoles `json:"roles"`
	// Already created schemas
	// +optional
	// +listType=set
	Schemas []string `json:"schemas,omitempty"`
	// Already extensions added
	// +optional
	// +listType=set
	Extensions []string `json:"extensions,omitempty"`
}

PostgresqlDatabaseStatus defines the observed state of PostgresqlDatabase.

func (*PostgresqlDatabaseStatus) DeepCopy

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

func (*PostgresqlDatabaseStatus) DeepCopyInto

func (in *PostgresqlDatabaseStatus) DeepCopyInto(out *PostgresqlDatabaseStatus)

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

type PostgresqlEngineConfiguration

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

	Spec   PostgresqlEngineConfigurationSpec   `json:"spec,omitempty"`
	Status PostgresqlEngineConfigurationStatus `json:"status,omitempty"`
}

PostgresqlEngineConfiguration is the Schema for the postgresqlengineconfigurations API.

func (*PostgresqlEngineConfiguration) DeepCopy

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

func (*PostgresqlEngineConfiguration) DeepCopyInto

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

func (*PostgresqlEngineConfiguration) DeepCopyObject

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

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

type PostgresqlEngineConfigurationList

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

PostgresqlEngineConfigurationList contains a list of PostgresqlEngineConfiguration.

func (*PostgresqlEngineConfigurationList) DeepCopy

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

func (*PostgresqlEngineConfigurationList) DeepCopyInto

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

func (*PostgresqlEngineConfigurationList) DeepCopyObject

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

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

type PostgresqlEngineConfigurationSpec

type PostgresqlEngineConfigurationSpec struct {

	// Provider
	// +kubebuilder:validation:Enum="";AWS;AZURE
	Provider ProviderType `json:"provider,omitempty"`
	// Hostname
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Host string `json:"host"`
	// Port
	Port int `json:"port,omitempty"`
	// URI args like sslmode, ...
	URIArgs string `json:"uriArgs,omitempty"`
	// Default database
	DefaultDatabase string `json:"defaultDatabase,omitempty"`
	// Duration between two checks for valid engine
	CheckInterval string `json:"checkInterval,omitempty"`
	// Allow grant admin on every created roles (group or user) for provided PGEC user in order to
	// have power to administrate those roles even with a less powered "admin" user.
	// Operator will create role and after grant PGEC provided user on those roles with admin option if enabled.
	AllowGrantAdminOption bool `json:"allowGrantAdminOption,omitempty"`
	// Wait for linked resource to be deleted
	WaitLinkedResourcesDeletion bool `json:"waitLinkedResourcesDeletion,omitempty"`
	// User and password secret
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	SecretName string `json:"secretName"`
	// User connections used for secret generation
	// That will be used to generate secret with primary server as url or
	// to use the pg bouncer one.
	// Note: Operator won't check those values.
	// +optional
	UserConnections *UserConnections `json:"userConnections"`
}

PostgresqlEngineConfigurationSpec defines the desired state of PostgresqlEngineConfiguration.

func (*PostgresqlEngineConfigurationSpec) DeepCopy

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

func (*PostgresqlEngineConfigurationSpec) DeepCopyInto

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

type PostgresqlEngineConfigurationStatus

type PostgresqlEngineConfigurationStatus struct {

	// Current phase of the operator
	Phase EngineStatusPhase `json:"phase"`
	// Human-readable message indicating details about current operator phase or error.
	// +optional
	Message string `json:"message"`
	// True if all resources are in a ready state and all work is done.
	// +optional
	Ready bool `json:"ready"`
	// Last validated time
	// +optional
	LastValidatedTime string `json:"lastValidatedTime"`
	// Resource Spec hash
	// +optional
	Hash string `json:"hash"`
}

PostgresqlEngineConfigurationStatus defines the observed state of PostgresqlEngineConfiguration.

func (*PostgresqlEngineConfigurationStatus) DeepCopy

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

func (*PostgresqlEngineConfigurationStatus) DeepCopyInto

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

type PostgresqlUserRole

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

	Spec   PostgresqlUserRoleSpec   `json:"spec,omitempty"`
	Status PostgresqlUserRoleStatus `json:"status,omitempty"`
}

PostgresqlUserRole is the Schema for the postgresqluserroles API.

func (*PostgresqlUserRole) DeepCopy

func (in *PostgresqlUserRole) DeepCopy() *PostgresqlUserRole

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

func (*PostgresqlUserRole) DeepCopyInto

func (in *PostgresqlUserRole) DeepCopyInto(out *PostgresqlUserRole)

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

func (*PostgresqlUserRole) DeepCopyObject

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

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

type PostgresqlUserRoleList

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

PostgresqlUserRoleList contains a list of PostgresqlUserRole.

func (*PostgresqlUserRoleList) DeepCopy

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

func (*PostgresqlUserRoleList) DeepCopyInto

func (in *PostgresqlUserRoleList) DeepCopyInto(out *PostgresqlUserRoleList)

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

func (*PostgresqlUserRoleList) DeepCopyObject

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

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

type PostgresqlUserRolePrivilege

type PostgresqlUserRolePrivilege struct {
	// User Connection type.
	// This is referring to the user connection type needed for this user.
	// +optional
	// +kubebuilder:default=PRIMARY
	// +kubebuilder:validation:Enum=PRIMARY;BOUNCER
	ConnectionType ConnectionTypesSpecEnum `json:"connectionType,omitempty"`
	// User privileges
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=OWNER;WRITER;READER
	Privilege PrivilegesSpecEnum `json:"privilege"`
	// Postgresql Database
	// +required
	// +kubebuilder:validation:Required
	Database *common.CRLink `json:"database"`
	// Generated secret name prefix
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	GeneratedSecretName string `json:"generatedSecretName"`
}

func (*PostgresqlUserRolePrivilege) DeepCopy

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

func (*PostgresqlUserRolePrivilege) DeepCopyInto

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

type PostgresqlUserRoleSpec

type PostgresqlUserRoleSpec struct {

	// User mode
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=PROVIDED;MANAGED
	Mode ModeEnum `json:"mode,omitempty"`
	// Privileges
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Min=1
	Privileges []*PostgresqlUserRolePrivilege `json:"privileges"`
	// User role prefix
	// +optional
	RolePrefix string `json:"rolePrefix,omitempty"`
	// User password rotation duration
	// +optional
	UserPasswordRotationDuration string `json:"userPasswordRotationDuration,omitempty"`
	// Simple user password tuple generated secret name
	// +optional
	WorkGeneratedSecretName string `json:"workGeneratedSecretName"`
	// Import secret name
	// +optional
	ImportSecretName string `json:"importSecretName,omitempty"`
}

PostgresqlUserRoleSpec defines the desired state of PostgresqlUserRole.

func (*PostgresqlUserRoleSpec) DeepCopy

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

func (*PostgresqlUserRoleSpec) DeepCopyInto

func (in *PostgresqlUserRoleSpec) DeepCopyInto(out *PostgresqlUserRoleSpec)

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

type PostgresqlUserRoleStatus

type PostgresqlUserRoleStatus struct {

	// Current phase of the operator
	Phase UserRoleStatusPhase `json:"phase"`
	// Human-readable message indicating details about current operator phase or error.
	// +optional
	Message string `json:"message"`
	// True if all resources are in a ready state and all work is done.
	// +optional
	Ready bool `json:"ready"`
	// User role
	// +optional
	RolePrefix string `json:"roleName"`
	// Postgres role for user
	// +optional
	PostgresRole string `json:"postgresRole"`
	// Postgres old roles to cleanup
	// +optional
	OldPostgresRoles []string `json:"oldPostgresRoles"`
	// Last password changed time
	// +optional
	LastPasswordChangedTime string `json:"lastPasswordChangedTime"`
}

PostgresqlUserRoleStatus defines the observed state of PostgresqlUserRole.

func (*PostgresqlUserRoleStatus) DeepCopy

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

func (*PostgresqlUserRoleStatus) DeepCopyInto

func (in *PostgresqlUserRoleStatus) DeepCopyInto(out *PostgresqlUserRoleStatus)

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

type PrivilegesSpecEnum

type PrivilegesSpecEnum string
const OwnerPrivilege PrivilegesSpecEnum = "OWNER"
const ReaderPrivilege PrivilegesSpecEnum = "READER"
const WriterPrivilege PrivilegesSpecEnum = "WRITER"

type ProviderType

type ProviderType string
const AWSProvider ProviderType = "AWS"
const AzureProvider ProviderType = "AZURE"
const NoProvider ProviderType = ""

type StatusPostgresRoles

type StatusPostgresRoles struct {
	Owner  string `json:"owner"`
	Reader string `json:"reader"`
	Writer string `json:"writer"`
}

StatusPostgresRoles stores the different group roles already created for database +k8s:openapi-gen=true

func (*StatusPostgresRoles) DeepCopy

func (in *StatusPostgresRoles) DeepCopy() *StatusPostgresRoles

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

func (*StatusPostgresRoles) DeepCopyInto

func (in *StatusPostgresRoles) DeepCopyInto(out *StatusPostgresRoles)

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

type UserConnections

type UserConnections struct {
	// Primary connection is referring to the primary node connection.
	// +optional
	PrimaryConnection *GenericUserConnection `json:"primaryConnection,omitempty"`
	// Bouncer connection is referring to a pg bouncer node.
	// +optional
	BouncerConnection *GenericUserConnection `json:"bouncerConnection,omitempty"`
	// Replica connections are referring to the replica nodes.
	// +optional
	ReplicaConnections []*GenericUserConnection `json:"replicaConnections,omitempty"`
	// Replica Bouncer connections are referring to pg bouncer nodes.
	// +optional
	ReplicaBouncerConnections []*GenericUserConnection `json:"replicaBouncerConnections,omitempty"`
}

func (*UserConnections) DeepCopy

func (in *UserConnections) DeepCopy() *UserConnections

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

func (*UserConnections) DeepCopyInto

func (in *UserConnections) DeepCopyInto(out *UserConnections)

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

type UserRoleStatusPhase

type UserRoleStatusPhase string
const UserRoleCreatedPhase UserRoleStatusPhase = "Created"
const UserRoleFailedPhase UserRoleStatusPhase = "Failed"
const UserRoleNoPhase UserRoleStatusPhase = ""

Jump to

Keyboard shortcuts

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