 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Crunchy PostgreSQL Operator API
The Crunchy PostgreSQL Operator API defines HTTP(S) interactions with the Crunchy PostgreSQL Operator.
## Direct API Calls
The API can also be accessed by interacting directly with the API server. This can be done by making HTTP requests with curl to get information from the server. In order to make these calls you will need to provide certificates along with your request using the `--cacert`, `--key`, and `--cert` flags. Next you will need to provide the username and password for the RBAC along with a header that includes the content type and the `--insecure` flag. These flags will be the same for all of your interactions with the API server and can be seen in the following examples.
###### Get API Server Version
The most basic example of this interaction is getting the version of the API server. You can send a GET request to `$PGO_APISERVER_URL/version` and this will send back a json response including the API server version. You must specify the client version that matches the API server version as part of the request.
The API server is setup to work with the pgo command line interface so the parameters that are passed to the server can be found by looking at the related flags. ``` curl --cacert $PGO_CA_CERT --key $PGO_CLIENT_KEY --cert $PGO_CA_CERT -u \ admin:examplepassword -H "Content-Type:application/json" --insecure -X \ GET $PGO_APISERVER_URL/version ```
#### Body examples In the following examples data is being passed to the apiserver using a json structure. These json structures are defined in the following documentation.
``` curl --cacert $PGO_CA_CERT --key $PGO_CLIENT_KEY --cert $PGO_CA_CERT -u \ admin:examplepassword -H "Content-Type:application/json" --insecure -X GET \ "$PGO_APISERVER_URL/workflow/<id>?version=<client-version>&namespace=<namespace>" ```
###### Create Cluster You can create a cluster by sending a POST request to `$PGO_APISERVER_URL/clusters`. In this example `--data` is being sent to the API URL that includes the client version that was returned from the version call, the namespace where the cluster should be created, and the name of the new cluster.
``` curl --cacert $PGO_CA_CERT --key $PGO_CLIENT_KEY --cert $PGO_CA_CERT -u \ admin:examplepassword -H "Content-Type:application/json" --insecure -X \
POST --data \
    '{"ClientVersion":"4.4.3",
    "Namespace":"pgouser1",
    "Name":"mycluster",
$PGO_APISERVER_URL/clusters ```
###### Show and Delete Cluster The last two examples show you how to `show` and `delete` a cluster. Notice how instead of passing `"Name":"mycluster"` you pass `"Clustername":"mycluster" to reference a cluster that has already been created. For the show cluster example you can replace `"Clustername":"mycluster"` with `"AllFlag":true` to show all of the clusters that are in the given namespace.
``` curl --cacert $PGO_CA_CERT --key $PGO_CLIENT_KEY --cert $PGO_CA_CERT -u \ admin:examplepassword -H "Content-Type:application/json" --insecure -X \
POST --data \
  '{"ClientVersion":"4.4.3",
  "Namespace":"pgouser1",
  "Clustername":"mycluster"}' \
$PGO_APISERVER_URL/showclusters ```
``` curl --cacert $PGO_CA_CERT --key $PGO_CLIENT_KEY --cert $PGO_CA_CERT -u \ admin:examplepassword -H "Content-Type:application/json" --insecure -X \
POST --data \
  '{"ClientVersion":"4.4.3",
  "Namespace":"pgouser1",
  "Clustername":"mycluster"}' \
$PGO_APISERVER_URL/clustersdelete ```
Schemes: http, https BasePath: / Version: 4.4.3 License: Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0 Contact: Crunchy Data<info@crunchydata.com> https://www.crunchydata.com/ Consumes: - application/json Produces: - application/json
swagger:meta
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type PGDataSourceSpec
- type PgBouncerSpec
- type PgStorageSpec
- type Pgcluster
- type PgclusterList
- type PgclusterSpec
- type PgclusterState
- type PgclusterStatus
- type Pgpolicy
- type PgpolicyList
- type PgpolicySpec
- type PgpolicyState
- type PgpolicyStatus
- type Pgreplica
- type PgreplicaList
- type PgreplicaSpec
- type PgreplicaState
- type PgreplicaStatus
- type Pgtask
- type PgtaskList
- type PgtaskSpec
- type PgtaskState
- type PgtaskStatus
- type PodAntiAffinityDeployment
- type PodAntiAffinitySpec
- type PodAntiAffinityType
- type TLSSpec
Constants ¶
const ( // PgclusterStateCreated ... PgclusterStateCreated PgclusterState = "pgcluster Created" // PgclusterStateProcessed ... PgclusterStateProcessed PgclusterState = "pgcluster Processed" // PgclusterStateInitialized ... PgclusterStateInitialized PgclusterState = "pgcluster Initialized" // PgclusterStateBootstrapping defines the state of a cluster when it is being bootstrapped // from an existing data source PgclusterStateBootstrapping PgclusterState = "pgcluster Bootstrapping" // PgclusterStateBootstrapped defines the state of a cluster when it has been bootstrapped // successfully from an existing data source PgclusterStateBootstrapped PgclusterState = "pgcluster Bootstrapped" // PgclusterStateRestore ... PgclusterStateRestore PgclusterState = "pgcluster Restoring" // PgclusterStateShutdown indicates that the cluster has been shut down (i.e. the primary) // deployment has been scaled to 0 PgclusterStateShutdown PgclusterState = "pgcluster Shutdown" // PodAntiAffinityRequired results in requiredDuringSchedulingIgnoredDuringExecution for any // default pod anti-affinity rules applied to pg custers PodAntiAffinityRequired PodAntiAffinityType = "required" // PodAntiAffinityPreffered results in preferredDuringSchedulingIgnoredDuringExecution for any // default pod anti-affinity rules applied to pg custers PodAntiAffinityPreffered PodAntiAffinityType = "preferred" // PodAntiAffinityDisabled disables any default pod anti-affinity rules applied to pg custers PodAntiAffinityDisabled PodAntiAffinityType = "disabled" )
const ( // PGUserAdmin is a special user that can perform administrative actions // without being a superuser itself PGUserAdmin = "crunchyadm" // PGUserMonitor is the monitoring user that can access metric data PGUserMonitor = "ccp_monitoring" // PGUserPgBouncer is the user that's used for managing pgBouncer, which a // user can use to access pgBouncer stats, etc. PGUserPgBouncer = "pgbouncer" // PGUserReplication is the user that's used for replication, which has // elevated privileges PGUserReplication = "primaryuser" // PGUserSuperuser is the superuser account that can do anything PGUserSuperuser = "postgres" )
the following are standard PostgreSQL user service accounts that are created as part of managed the PostgreSQL cluster environment via the Operator
const ( // this type of backup is taken following a failover event BackupTypeFailover string = "failover" // this type of backup is taken when a new cluster is being bootstrapped BackupTypeBootstrap string = "bootstrap" )
Defines the types of pgBackRest backups that are taken throughout a clusters lifecycle
const CollectSecretSuffix = "-collect-secret"
    CollectSecretSuffix ...
const CompletedStatus = "completed"
    CompletedStatus -
const GroupName = "crunchydata.com"
    GroupName is the group name used in this package. const GroupName = "cr.client-go.k8s.io"
const InProgressStatus = "in progress"
    InProgressStatus -
const JobCompletedStatus = "job completed"
    JobCompletedStatus ....
const JobErrorStatus = "job error"
    JobErrorStatus ....
const JobSubmittedStatus = "job submitted"
    JobSubmittedStatus ....
const PgBackupJobSubmitted = "Backup Job Submitted"
    this is ported over from legacy backup code
const PgclusterResourcePlural = "pgclusters"
    PgclusterResourcePlural ..
const PgpolicyResourcePlural = "pgpolicies"
    PgpolicyResourcePlural ...
const PgreplicaResourcePlural = "pgreplicas"
    PgreplicaResourcePlural ..
const PgtaskAddPolicies = "addpolicies"
    const PgtaskAutoFailover = "autofailover"
    const PgtaskBackrest = "backrest"
    const PgtaskBackrestBackup = "backup"
    const PgtaskBackrestInfo = "info"
    const PgtaskBackrestRestore = "restore"
    const PgtaskBackrestStanzaCreate = "stanza-create"
    const PgtaskCloneStep1 = "clone-step1" // performs a pgBackRest repo sync
    const PgtaskCloneStep2 = "clone-step2" // performs a pgBackRest restore
    const PgtaskCloneStep3 = "clone-step3" // creates the Pgcluster
    const PgtaskDeleteBackups = "delete-backups"
    const PgtaskDeleteData = "delete-data"
    const PgtaskFailover = "failover"
    const PgtaskPgAdminAdd = "add-pgadmin"
    const PgtaskPgAdminDelete = "delete-pgadmin"
    const PgtaskResourcePlural = "pgtasks"
    PgtaskResourcePlural ...
const PgtaskUpgrade = "clusterupgrade"
    const PgtaskUpgradeCreated = "cluster upgrade - task created"
    const PgtaskUpgradeInProgress = "cluster upgrade - in progress"
    const PgtaskWorkflow = "workflow"
    const PgtaskWorkflowBackrestRestoreJobCreatedStatus = "restore job created"
    const PgtaskWorkflowBackrestRestorePVCCreatedStatus = "restored PVC created"
    const PgtaskWorkflowBackrestRestorePrimaryCreatedStatus = "restored Primary created"
    const PgtaskWorkflowBackrestRestoreType = "pgbackrestrestore"
    const PgtaskWorkflowBackupType = "backupworkflow"
    const PgtaskWorkflowCloneClusterCreate = "clone 3: cluster creating"
    const PgtaskWorkflowCloneCreatePVC = "clone 1.1: create pvc"
    const PgtaskWorkflowCloneRestoreBackup = "clone 2: restoring backup"
    const PgtaskWorkflowCloneSyncRepo = "clone 1.2: sync pgbackrest repo"
    const PgtaskWorkflowCloneType = "cloneworkflow"
    const PgtaskWorkflowCompletedStatus = "task completed"
    const PgtaskWorkflowCreateClusterType = "createcluster"
    const PgtaskWorkflowID = "workflowid"
    const PgtaskWorkflowSubmittedStatus = "task submitted"
    const PgtaskpgDump = "pgdump"
    const PgtaskpgDumpBackup = "pgdumpbackup"
    const PgtaskpgDumpInfo = "pgdumpinfo"
    const PgtaskpgRestore = "pgrestore"
    const PrimarySecretSuffix = "-primaryuser-secret"
    PrimarySecretSuffix ...
const RootSecretSuffix = "-postgres-secret"
    RootSecretSuffix ...
const StorageCreate = "create"
    StorageCreate ...
const StorageDynamic = "dynamic"
    StorageDynamic ...
const StorageEmptydir = "emptydir"
    StorageEmptydir ...
const StorageExisting = "existing"
    StorageExisting ...
const SubmittedStatus = "submitted"
    SubmittedStatus -
const UserSecretSuffix = "-secret"
    UserSecretSuffix ...
Variables ¶
var ( // SchemeBuilder ... SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme ... AddToScheme = SchemeBuilder.AddToScheme )
var BackrestStorageTypes = []string{"local", "s3"}
    BackrestStorageTypes defines the valid types of storage that can be utilized with pgBackRest
var PGFSGroup int64 = 26
    PGFSGroup stores the UID of the PostgreSQL user that runs the PostgreSQL process, which is 26. This also sets up for future work, as the PodSecurityContext structure takes a *int64 for its FSGroup
This has to be a "var" as Kubernetes requires for this to be a pointer
var PGUserSystemAccounts = map[string]struct{}{ PGUserAdmin: {}, PGUserMonitor: {}, PGUserPgBouncer: {}, PGUserReplication: {}, PGUserSuperuser: {}, }
PGUserSystemAccounts maintains an easy-to-access list of what the systems accounts are, which may affect how information is returned, etc.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
    SchemeGroupVersion is the group version used to register these objects.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group-qualified GroupResource.
Types ¶
type PGDataSourceSpec ¶
type PGDataSourceSpec struct {
	RestoreFrom string `json:"restoreFrom"`
	RestoreOpts string `json:"restoreOpts"`
}
    PGDataSourceSpec defines the data source that should be used to populate the initial PGDATA directory when bootstrapping a new PostgreSQL cluster swagger:ignore
func (*PGDataSourceSpec) DeepCopy ¶
func (in *PGDataSourceSpec) DeepCopy() *PGDataSourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PGDataSourceSpec.
func (*PGDataSourceSpec) DeepCopyInto ¶
func (in *PGDataSourceSpec) DeepCopyInto(out *PGDataSourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PgBouncerSpec ¶
type PgBouncerSpec struct {
	// Replicas represents the total number of Pods to deploy with pgBouncer,
	// which effectively enables/disables the pgBouncer.
	//
	// if it is set to 0 or less, it is disabled.
	//
	// if it is set to 1 or more, it is enabled
	Replicas int32 `json:"replicas"`
	// Resources, if specified, contains the container request resources
	// for any pgBouncer Deployments that are part of a PostgreSQL cluster
	Resources v1.ResourceList `json:"resources"`
	// Limits, if specified, contains the container resource limits
	// for any pgBouncer Deployments that are part of a PostgreSQL cluster
	Limits v1.ResourceList `json:"limits"`
}
    PgBouncerSpec is a struct that is used within the Cluster specification that provides the attributes for managing a PgBouncer implementation, including: - is it enabled? - what resources it should consume - the total number of replicas
func (*PgBouncerSpec) DeepCopy ¶
func (in *PgBouncerSpec) DeepCopy() *PgBouncerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerSpec.
func (*PgBouncerSpec) DeepCopyInto ¶
func (in *PgBouncerSpec) DeepCopyInto(out *PgBouncerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PgBouncerSpec) Enabled ¶
func (s *PgBouncerSpec) Enabled() bool
Enabled returns true if the pgBouncer is enabled for the cluster, i.e. there is at least one replica set
type PgStorageSpec ¶
type PgStorageSpec struct {
	Name               string `json:"name"`
	StorageClass       string `json:"storageclass"`
	AccessMode         string `json:"accessmode"`
	Size               string `json:"size"`
	StorageType        string `json:"storagetype"`
	SupplementalGroups string `json:"supplementalgroups"`
	MatchLabels        string `json:"matchLabels"`
}
    PgStorageSpec ... swagger:ignore
func (*PgStorageSpec) DeepCopy ¶
func (in *PgStorageSpec) DeepCopy() *PgStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgStorageSpec.
func (*PgStorageSpec) DeepCopyInto ¶
func (in *PgStorageSpec) DeepCopyInto(out *PgStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PgStorageSpec) GetSupplementalGroups ¶
func (s PgStorageSpec) GetSupplementalGroups() []int64
GetSupplementalGroups converts the comma-separated list of SupplementalGroups into a slice of int64 IDs. If it errors, it returns an empty slice and logs a warning
type Pgcluster ¶
type Pgcluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              PgclusterSpec   `json:"spec"`
	Status            PgclusterStatus `json:"status,omitempty"`
}
    Pgcluster is the CRD that defines a Crunchy PG Cluster
swagger:ignore Pgcluster +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Pgcluster) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pgcluster.
func (*Pgcluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pgcluster) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgclusterList ¶
type PgclusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items []Pgcluster `json:"items"`
}
    PgclusterList is the CRD that defines a Crunchy PG Cluster List swagger:ignore +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*PgclusterList) DeepCopy ¶
func (in *PgclusterList) DeepCopy() *PgclusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgclusterList.
func (*PgclusterList) DeepCopyInto ¶
func (in *PgclusterList) DeepCopyInto(out *PgclusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PgclusterList) DeepCopyObject ¶
func (in *PgclusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgclusterSpec ¶
type PgclusterSpec struct {
	Namespace       string        `json:"namespace"`
	Name            string        `json:"name"`
	ClusterName     string        `json:"clustername"`
	Policies        string        `json:"policies"`
	CCPImage        string        `json:"ccpimage"`
	CCPImageTag     string        `json:"ccpimagetag"`
	CCPImagePrefix  string        `json:"ccpimageprefix"`
	PGOImagePrefix  string        `json:"pgoimageprefix"`
	Port            string        `json:"port"`
	PGBadgerPort    string        `json:"pgbadgerport"`
	ExporterPort    string        `json:"exporterport"`
	PrimaryStorage  PgStorageSpec `json:primarystorage`
	WALStorage      PgStorageSpec `json:walstorage`
	ArchiveStorage  PgStorageSpec `json:archivestorage`
	ReplicaStorage  PgStorageSpec `json:replicastorage`
	BackrestStorage PgStorageSpec `json:backreststorage`
	// Resources behaves just like the "Requests" section of a Kubernetes
	// container definition. You can set individual items such as "cpu" and
	// "memory", e.g. "{ cpu: "0.5", memory: "2Gi" }"
	Resources v1.ResourceList `json:"resources"`
	// Limits stores the CPU/memory limits to use with PostgreSQL instances
	//
	// A long note on memory limits.
	//
	//  We want to avoid the OOM killer coming for the PostgreSQL process or any
	// of their backends per lots of guidance from the PostgreSQL documentation.
	// Based on Kubernetes' behavior with limits, the best thing is to not set
	// them. However, if they ever do set, we suggest that you have
	// Request == Limit to get the Guaranteed QoS
	//
	// Guaranteed QoS prevents a backend from being first in line to be killed if
	// the *Node* has memory pressure, but if there is, say
	// a runaway client backend that causes the *Pod* to exceed its memory
	// limit, a backend can still be killed by the OOM killer, which is not
	// great.
	//
	// As such, given the choice, the preference is for the Pod to be evicted
	// and have a failover event, vs. having an individual client backend killed
	// and causing potential "bad things."
	//
	// For more info on PostgreSQL and Kubernetes memory management, see:
	//
	// https://www.postgresql.org/docs/current/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT
	// https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-limits-are-run
	Limits v1.ResourceList `json:"limits"`
	// BackrestResources, if specified, contains the container request resources
	// for the pgBackRest Deployment for this PostgreSQL cluster
	BackrestResources v1.ResourceList `json:"backrestResources"`
	// BackrestLimits, if specified, contains the container resource limits
	// for the pgBackRest Deployment for this PostgreSQL cluster
	BackrestLimits v1.ResourceList `json:"backrestLimits"`
	// PgBouncer contains all of the settings to properly maintain a pgBouncer
	// implementation
	PgBouncer           PgBouncerSpec            `json:"pgBouncer"`
	User                string                   `json:"user"`
	Database            string                   `json:"database"`
	Replicas            string                   `json:"replicas"`
	UserSecretName      string                   `json:"usersecretname"`
	RootSecretName      string                   `json:"rootsecretname"`
	PrimarySecretName   string                   `json:"primarysecretname"`
	CollectSecretName   string                   `json:"collectSecretName"`
	Status              string                   `json:"status"`
	CustomConfig        string                   `json:"customconfig"`
	UserLabels          map[string]string        `json:"userlabels"`
	PodAntiAffinity     PodAntiAffinitySpec      `json:"podAntiAffinity"`
	SyncReplication     *bool                    `json:"syncReplication"`
	BackrestS3Bucket    string                   `json:"backrestS3Bucket"`
	BackrestS3Region    string                   `json:"backrestS3Region"`
	BackrestS3Endpoint  string                   `json:"backrestS3Endpoint"`
	BackrestS3URIStyle  string                   `json:"backrestS3URIStyle"`
	BackrestS3VerifyTLS string                   `json:"backrestS3VerifyTLS"`
	BackrestRepoPath    string                   `json:"backrestRepoPath"`
	TablespaceMounts    map[string]PgStorageSpec `json:"tablespaceMounts"`
	TLS                 TLSSpec                  `json:"tls"`
	TLSOnly             bool                     `json:"tlsOnly"`
	Standby             bool                     `json:"standby"`
	Shutdown            bool                     `json:"shutdown"`
	PGDataSource        PGDataSourceSpec         `json:"pgDataSource"`
}
    PgclusterSpec is the CRD that defines a Crunchy PG Cluster Spec swagger:ignore
func (*PgclusterSpec) DeepCopy ¶
func (in *PgclusterSpec) DeepCopy() *PgclusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgclusterSpec.
func (*PgclusterSpec) DeepCopyInto ¶
func (in *PgclusterSpec) DeepCopyInto(out *PgclusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PgclusterState ¶
type PgclusterState string
PgclusterState is the crd that defines PG Cluster Stage swagger:ignore
type PgclusterStatus ¶
type PgclusterStatus struct {
	State   PgclusterState `json:"state,omitempty"`
	Message string         `json:"message,omitempty"`
}
    PgclusterStatus is the CRD that defines PG Cluster Status swagger:ignore
func (*PgclusterStatus) DeepCopy ¶
func (in *PgclusterStatus) DeepCopy() *PgclusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgclusterStatus.
func (*PgclusterStatus) DeepCopyInto ¶
func (in *PgclusterStatus) DeepCopyInto(out *PgclusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Pgpolicy ¶
type Pgpolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec   PgpolicySpec   `json:"spec"`
	Status PgpolicyStatus `json:"status,omitempty"`
}
    Pgpolicy ... swagger:ignore +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Pgpolicy) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pgpolicy.
func (*Pgpolicy) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pgpolicy) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgpolicyList ¶
type PgpolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items []Pgpolicy `json:"items"`
}
    PgpolicyList ... swagger:ignore +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*PgpolicyList) DeepCopy ¶
func (in *PgpolicyList) DeepCopy() *PgpolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgpolicyList.
func (*PgpolicyList) DeepCopyInto ¶
func (in *PgpolicyList) DeepCopyInto(out *PgpolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PgpolicyList) DeepCopyObject ¶
func (in *PgpolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgpolicySpec ¶
type PgpolicySpec struct {
	Namespace string `json:"namespace"`
	Name      string `json:"name"`
	URL       string `json:"url"`
	SQL       string `json:"sql"`
	Status    string `json:"status"`
}
    PgpolicySpec ... swagger:ignore
func (*PgpolicySpec) DeepCopy ¶
func (in *PgpolicySpec) DeepCopy() *PgpolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgpolicySpec.
func (*PgpolicySpec) DeepCopyInto ¶
func (in *PgpolicySpec) DeepCopyInto(out *PgpolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PgpolicyState ¶
type PgpolicyState string
PgpolicyState ... swagger:ignore
const ( // PgpolicyStateCreated ... PgpolicyStateCreated PgpolicyState = "pgpolicy Created" // PgpolicyStateProcessed ... PgpolicyStateProcessed PgpolicyState = "pgpolicy Processed" )
type PgpolicyStatus ¶
type PgpolicyStatus struct {
	State   PgpolicyState `json:"state,omitempty"`
	Message string        `json:"message,omitempty"`
}
    PgpolicyStatus ... swagger:ignore
func (*PgpolicyStatus) DeepCopy ¶
func (in *PgpolicyStatus) DeepCopy() *PgpolicyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgpolicyStatus.
func (*PgpolicyStatus) DeepCopyInto ¶
func (in *PgpolicyStatus) DeepCopyInto(out *PgpolicyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Pgreplica ¶
type Pgreplica struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              PgreplicaSpec   `json:"spec"`
	Status            PgreplicaStatus `json:"status,omitempty"`
}
    Pgreplica .. swagger:ignore +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Pgreplica) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pgreplica.
func (*Pgreplica) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pgreplica) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgreplicaList ¶
type PgreplicaList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items []Pgreplica `json:"items"`
}
    PgreplicaList ... swagger:ignore +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*PgreplicaList) DeepCopy ¶
func (in *PgreplicaList) DeepCopy() *PgreplicaList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgreplicaList.
func (*PgreplicaList) DeepCopyInto ¶
func (in *PgreplicaList) DeepCopyInto(out *PgreplicaList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PgreplicaList) DeepCopyObject ¶
func (in *PgreplicaList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgreplicaSpec ¶
type PgreplicaSpec struct {
	Namespace      string            `json:"namespace"`
	Name           string            `json:"name"`
	ClusterName    string            `json:"clustername"`
	ReplicaStorage PgStorageSpec     `json:"replicastorage"`
	Status         string            `json:"status"`
	UserLabels     map[string]string `json:"userlabels"`
}
    PgreplicaSpec ... swagger:ignore
func (*PgreplicaSpec) DeepCopy ¶
func (in *PgreplicaSpec) DeepCopy() *PgreplicaSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgreplicaSpec.
func (*PgreplicaSpec) DeepCopyInto ¶
func (in *PgreplicaSpec) DeepCopyInto(out *PgreplicaSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PgreplicaState ¶
type PgreplicaState string
PgreplicaState ... swagger:ignore
const ( // PgreplicaStateCreated ... PgreplicaStateCreated PgreplicaState = "pgreplica Created" // PgreplicaStatePending ... PgreplicaStatePendingInit PgreplicaState = "pgreplica Pending init" // PgreplicaStatePendingRestore ... PgreplicaStatePendingRestore PgreplicaState = "pgreplica Pending restore" // PgreplicaStateProcessed ... PgreplicaStateProcessed PgreplicaState = "pgreplica Processed" )
type PgreplicaStatus ¶
type PgreplicaStatus struct {
	State   PgreplicaState `json:"state,omitempty"`
	Message string         `json:"message,omitempty"`
}
    PgreplicaStatus ... swagger:ignore
func (*PgreplicaStatus) DeepCopy ¶
func (in *PgreplicaStatus) DeepCopy() *PgreplicaStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgreplicaStatus.
func (*PgreplicaStatus) DeepCopyInto ¶
func (in *PgreplicaStatus) DeepCopyInto(out *PgreplicaStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Pgtask ¶
type Pgtask struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec   PgtaskSpec   `json:"spec"`
	Status PgtaskStatus `json:"status,omitempty"`
}
    Pgtask ... swagger:ignore +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Pgtask) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pgtask.
func (*Pgtask) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pgtask) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgtaskList ¶
type PgtaskList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items []Pgtask `json:"items"`
}
    PgtaskList ... swagger:ignore +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*PgtaskList) DeepCopy ¶
func (in *PgtaskList) DeepCopy() *PgtaskList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgtaskList.
func (*PgtaskList) DeepCopyInto ¶
func (in *PgtaskList) DeepCopyInto(out *PgtaskList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PgtaskList) DeepCopyObject ¶
func (in *PgtaskList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PgtaskSpec ¶
type PgtaskSpec struct {
	Namespace   string            `json:"namespace"`
	Name        string            `json:"name"`
	StorageSpec PgStorageSpec     `json:"storagespec"`
	TaskType    string            `json:"tasktype"`
	Status      string            `json:"status"`
	Parameters  map[string]string `json:"parameters"`
}
    PgtaskSpec ... swagger:ignore
func (*PgtaskSpec) DeepCopy ¶
func (in *PgtaskSpec) DeepCopy() *PgtaskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgtaskSpec.
func (*PgtaskSpec) DeepCopyInto ¶
func (in *PgtaskSpec) DeepCopyInto(out *PgtaskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PgtaskState ¶
type PgtaskState string
PgtaskState ... swagger:ignore
const ( // PgtaskStateCreated ... PgtaskStateCreated PgtaskState = "pgtask Created" // PgtaskStateProcessed ... PgtaskStateProcessed PgtaskState = "pgtask Processed" )
type PgtaskStatus ¶
type PgtaskStatus struct {
	State   PgtaskState `json:"state,omitempty"`
	Message string      `json:"message,omitempty"`
}
    PgtaskStatus ... swagger:ignore
func (*PgtaskStatus) DeepCopy ¶
func (in *PgtaskStatus) DeepCopy() *PgtaskStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgtaskStatus.
func (*PgtaskStatus) DeepCopyInto ¶
func (in *PgtaskStatus) DeepCopyInto(out *PgtaskStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodAntiAffinityDeployment ¶
type PodAntiAffinityDeployment int
PodAntiAffinityDeployment distinguishes between the different types of Deployments that can leverage PodAntiAffinity
const ( PodAntiAffinityDeploymentDefault PodAntiAffinityDeployment = iota PodAntiAffinityDeploymentPgBackRest PodAntiAffinityDeploymentPgBouncer )
The list of different types of PodAntiAffinityDeployments
type PodAntiAffinitySpec ¶
type PodAntiAffinitySpec struct {
	Default    PodAntiAffinityType `json:"default"`
	PgBackRest PodAntiAffinityType `json:"pgBackRest"`
	PgBouncer  PodAntiAffinityType `json:"pgBouncer"`
}
    PodAntiAffinitySpec provides multiple configurations for how pod anti-affinity can be set.
- "Default" is the default rule that applies to all Pods that are a part of the PostgreSQL cluster
- "PgBackrest" applies just to the pgBackRest repository Pods in said Deployment
- "PgBouncer" applies to just pgBouncer Pods in said Deployment
swaggier:ignore
func (*PodAntiAffinitySpec) DeepCopy ¶
func (in *PodAntiAffinitySpec) DeepCopy() *PodAntiAffinitySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAntiAffinitySpec.
func (*PodAntiAffinitySpec) DeepCopyInto ¶
func (in *PodAntiAffinitySpec) DeepCopyInto(out *PodAntiAffinitySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodAntiAffinityType ¶
type PodAntiAffinityType string
PodAntiAffinityType defines the different types of type of anti-affinity rules applied to pg clusters when utilizing the default pod anti-affinity rules provided by the PostgreSQL Operator, which are enabled for a new pg cluster by default. Valid Values include "required" for requiredDuringSchedulingIgnoredDuringExecution anti-affinity, "preferred" for preferredDuringSchedulingIgnoredDuringExecution anti-affinity, and "disabled" to disable the default pod anti-affinity rules for the pg cluster all together.
func (PodAntiAffinityType) Validate ¶
func (p PodAntiAffinityType) Validate() error
ValidatePodAntiAffinityType is responsible for validating whether or not the type of pod anti-affinity specified is valid
type TLSSpec ¶
type TLSSpec struct {
	// CASecret contains the name of the secret to use as the trusted CA for the
	// TLSSecret
	// This is our own format and should contain at least one key: "ca.crt"
	// It can also contain a key "ca.crl" which is the certificate revocation list
	CASecret string `json:"caSecret"`
	// ReplicationTLSSecret contains the name of the secret that specifies a TLS
	// keypair that can be used by the replication user (e.g. "primaryuser") to
	// perform certificate based authentication between replicas.
	// The keypair must be considered valid by the CA specified in the CASecret
	ReplicationTLSSecret string `json:"replicationTLSSecret"`
	// TLSSecret contains the name of the secret to use that contains the TLS
	// keypair for the PostgreSQL server
	// This follows the Kubernetes secret format ("kubernetes.io/tls") which has
	// two keys: tls.crt and tls.key
	TLSSecret string `json:"tlsSecret"`
}
    TLSSpec contains the information to set up a TLS-enabled PostgreSQL cluster
func (*TLSSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSpec.
func (*TLSSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TLSSpec) IsTLSEnabled ¶
IsTLSEnabled returns true if the cluster is TLS enabled, i.e. both the TLS secret name and the CA secret name are available