Documentation ¶
Overview ¶
Package naming provides functions and constants for the ivory-operator naming and labeling scheme.
Index ¶
- Constants
- func AnyCluster() metav1.LabelSelector
- func AsObjectKey(m metav1.ObjectMeta) client.ObjectKey
- func AsSelector(s metav1.LabelSelector) (labels.Selector, error)
- func Cluster(cluster string) metav1.LabelSelector
- func ClusterConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterDataForIvoryAndPGBackRest(cluster string) metav1.LabelSelector
- func ClusterInstance(cluster, instance string) metav1.LabelSelector
- func ClusterInstanceRBAC(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterInstanceSet(cluster, set string) metav1.LabelSelector
- func ClusterInstanceSets(cluster string) metav1.LabelSelector
- func ClusterInstances(cluster string) metav1.LabelSelector
- func ClusterIvoryUsers(cluster string) metav1.LabelSelector
- func ClusterPGAdmin(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterPGBouncer(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterPGBouncerSelector(cluster *v1beta1.IvoryCluster) metav1.LabelSelector
- func ClusterPatronis(cluster *v1beta1.IvoryCluster) metav1.LabelSelector
- func ClusterPodService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterPrimary(cluster string) metav1.LabelSelector
- func ClusterPrimaryService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ClusterReplicaService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func DeprecatedIvoryUserSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func DirectoryMoveJobLabels(clusterName string) labels.Set
- func ExporterWebConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func GenerateInstance(cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec) metav1.ObjectMeta
- func GenerateStartupInstance(cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec) metav1.ObjectMeta
- func InstanceCertificates(instance metav1.Object) metav1.ObjectMeta
- func InstanceConfigMap(instance metav1.Object) metav1.ObjectMeta
- func InstanceIvoryDataVolume(instance *appsv1.StatefulSet) metav1.ObjectMeta
- func InstanceIvoryWALVolume(instance *appsv1.StatefulSet) metav1.ObjectMeta
- func InstancePodDNSNames(ctx context.Context, instance *appsv1.StatefulSet) []string
- func InstanceSet(cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec) metav1.ObjectMeta
- func InstanceTablespaceDataVolume(instance *appsv1.StatefulSet, tablespaceName string) metav1.ObjectMeta
- func IvoryTLSSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func IvoryUserSecret(cluster *v1beta1.IvoryCluster, username string) metav1.ObjectMeta
- func KubernetesClusterDomain(ctx context.Context) string
- func Merge(sets ...map[string]string) labels.Set
- func MonitoringUserSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func MovePGBackRestRepoDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func MovePGDataDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func MovePGWALDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func OperatorConfigurationSecret() metav1.ObjectMeta
- func PGBackRestBackupJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestBackupJobLabels(clusterName, repoName string, backupType BackupJobType) labels.Set
- func PGBackRestBackupJobSelector(clusterName, repoName string, backupType BackupJobType) labels.Selector
- func PGBackRestConfig(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestConfigLabels(clusterName string) labels.Set
- func PGBackRestCronJob(cluster *v1beta1.IvoryCluster, backuptype, repoName string) metav1.ObjectMeta
- func PGBackRestCronJobLabels(clusterName, repoName, backupType string) labels.Set
- func PGBackRestDedicatedLabels(clusterName string) labels.Set
- func PGBackRestDedicatedSelector(clusterName string) labels.Selector
- func PGBackRestLabels(clusterName string) labels.Set
- func PGBackRestRBAC(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestRepoLabels(clusterName, repoName string) labels.Set
- func PGBackRestRepoVolume(cluster *v1beta1.IvoryCluster, repoName string) metav1.ObjectMeta
- func PGBackRestRepoVolumeLabels(clusterName, repoName string) labels.Set
- func PGBackRestRestoreConfigLabels(clusterName string) labels.Setdeprecated
- func PGBackRestRestoreConfigSelector(clusterName string) labels.Selector
- func PGBackRestRestoreJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestRestoreJobLabels(clusterName string) labels.Set
- func PGBackRestRestoreJobSelector(clusterName string) labels.Selector
- func PGBackRestSSHConfig(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestSSHSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PGBackRestSelector(clusterName string) labels.Selector
- func PatroniDistributedConfiguration(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PatroniLeaderConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PatroniLeaderEndpoints(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func PatroniScope(cluster *v1beta1.IvoryCluster) string
- func PatroniTrigger(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func ReplicationClientCertSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
- func RepoHostPodDNSNames(ctx context.Context, repoHost *appsv1.StatefulSet) []string
- func ServiceDNSNames(ctx context.Context, service *corev1.Service) []string
- func UpgradeCheckConfigMap() metav1.ObjectMeta
- type BackupJobType
Constants ¶
const ( // Finalizer marks an object to be garbage collected by this module. Finalizer = annotationPrefix + "finalizer" // PatroniSwitchover is the annotation added to a IvoryCluster to initiate a manual // Patroni Switchover (or Failover). PatroniSwitchover = annotationPrefix + "trigger-switchover" // PGBackRestBackup is the annotation that is added to a IvoryCluster to initiate a manual // backup. The value of the annotation will be a unique identifier for a backup Job (e.g. a // timestamp), which will be stored in the IvoryCluster status to properly track completion // of the Job. Also used to annotate the backup Job itself as needed to identify the backup // ID associated with a specific manual backup Job. PGBackRestBackup = annotationPrefix + "pgbackrest-backup" // PGBackRestConfigHash is an annotation used to specify the hash value associated with a // repo configuration as needed to detect configuration changes that invalidate running Jobs // (and therefore must be recreated) PGBackRestConfigHash = annotationPrefix + "pgbackrest-hash" // PGBackRestCurrentConfig is an annotation used to indicate the name of the pgBackRest // configuration associated with a specific Job as determined by either the current primary // (if no dedicated repository host is enabled), or the dedicated repository host. This helps // in detecting pgBackRest backup Jobs that no longer mount the proper pgBackRest // configuration, e.g. because a failover has occurred, or because dedicated repo host has been // enabled or disabled. PGBackRestCurrentConfig = annotationPrefix + "pgbackrest-config" // PGBackRestRestore is the annotation that is added to a IvoryCluster to initiate an in-place // restore. The value of the annotation will be a unique identfier for a restore Job (e.g. a // timestamp), which will be stored in the IvoryCluster status to properly track completion // of the Job. PGBackRestRestore = annotationPrefix + "pgbackrest-restore" // PGBackRestIPVersion is an annotation used to indicate whether an IPv6 wildcard address should be // used for the pgBackRest "tls-server-address" or not. If the user wants to use IPv6, the value // should be "IPv6". As of right now, if the annotation is not present or if the annotation's value // is anything other than "IPv6", the "tls-server-address" will default to IPv4 (0.0.0.0). The need // for this annotation is due to an issue in pgBackRest (#1841) where using a wildcard address to // bind all addresses does not work in certain IPv6 environments. PGBackRestIPVersion = annotationPrefix + "pgbackrest-ip-version" )
const ( // LabelCluster et al. provides the fundamental labels for Ivory instances LabelCluster = labelPrefix + "cluster" LabelInstance = labelPrefix + "instance" LabelInstanceSet = labelPrefix + "instance-set" // LabelRepoName is used to specify the name of a pgBackRest repository LabelRepoName = labelPrefix + "name" LabelPatroni = labelPrefix + "patroni" LabelRole = labelPrefix + "role" // LabelClusterCertificate is used to identify a secret containing a cluster certificate LabelClusterCertificate = labelPrefix + "cluster-certificate" // LabelData is used to identify Pods and Volumes store Ivory data. LabelData = labelPrefix + "data" // LabelMoveJob is used to identify a directory move Job. LabelMoveJob = labelPrefix + "move-job" // LabelMovePGBackRestRepoDir is used to identify the Job that moves an existing pgBackRest repo directory. LabelMovePGBackRestRepoDir = labelPrefix + "move-pgbackrest-repo-dir" // LabelMovePGDataDir is used to identify the Job that moves an existing pgData directory. LabelMovePGDataDir = labelPrefix + "move-pgdata-dir" // LabelMovePGWalDir is used to identify the Job that moves an existing pg_wal directory. LabelMovePGWalDir = labelPrefix + "move-pgwal-dir" // LabelPGBackRest is used to indicate that a resource is for pgBackRest LabelPGBackRest = labelPrefix + "pgbackrest" // LabelPGBackRestBackup is used to indicate that a resource is for a pgBackRest backup LabelPGBackRestBackup = labelPrefix + "pgbackrest-backup" // LabelPGBackRestConfig is used to indicate that a ConfigMap or Secret is for pgBackRest LabelPGBackRestConfig = labelPrefix + "pgbackrest-config" // LabelPGBackRestDedicated is used to indicate that a ConfigMap is for a pgBackRest dedicated // repository host LabelPGBackRestDedicated = labelPrefix + "pgbackrest-dedicated" // LabelPGBackRestRepo is used to indicate that a Deployment or Pod is for a pgBackRest // repository LabelPGBackRestRepo = labelPrefix + "pgbackrest-repo" // LabelPGBackRestRepoVolume is used to indicate that a resource for a pgBackRest // repository LabelPGBackRestRepoVolume = labelPrefix + "pgbackrest-volume" LabelPGBackRestCronJob = labelPrefix + "pgbackrest-cronjob" // LabelPGBackRestRestore is used to indicate that a Job or Pod is for a pgBackRest restore LabelPGBackRestRestore = labelPrefix + "pgbackrest-restore" // LabelPGBackRestRestoreConfig is used to indicate that a configuration // resource (e.g. a ConfigMap or Secret) is for a pgBackRest restore LabelPGBackRestRestoreConfig = labelPrefix + "pgbackrest-restore-config" // LabelPGMonitorDiscovery is the label added to Pods running the "exporter" container to // support discovery by Prometheus according to pgMonitor configuration LabelPGMonitorDiscovery = labelPrefix + "ivorysql-ivory-exporter" // LabelIvoryUser identifies the IvorySQL user an object is for or about. LabelIvoryUser = labelPrefix + "pguser" // LabelStartupInstance is used to indicate the startup instance associated with a resource LabelStartupInstance = labelPrefix + "startup-instance" RolePrimary = "primary" RoleReplica = "replica" // RolePatroniLeader is the LabelRole that Patroni sets on the Pod that is // currently the leader. RolePatroniLeader = "master" // RolePatroniReplica is a LabelRole value that Patroni sets on Pods that are // following the leader. RolePatroniReplica = "replica" // RolePGBouncer is the LabelRole applied to PgBouncer objects. RolePGBouncer = "pgbouncer" // RolePGAdmin is the LabelRole applied to pgAdmin objects. RolePGAdmin = "pgadmin" // RoleIvoryData is the LabelRole applied to IvorySQL data volumes. RoleIvoryData = "pgdata" // RoleIvoryUser is the LabelRole applied to IvorySQL user secrets. RoleIvoryUser = "pguser" // RoleIvoryWAL is the LabelRole applied to IvorySQL WAL volumes. RoleIvoryWAL = "pgwal" // RoleMonitoring is the LabelRole applied to Monitoring resources RoleMonitoring = "monitoring" )
const ( // DataPGAdmin is a LabelData value that indicates the object has pgAdmin data. DataPGAdmin = "pgadmin" // DataPGBackRest is a LabelData value that indicates the object has pgBackRest data. DataPGBackRest = "pgbackrest" // DataIvory is a LabelData value that indicates the object has IvorySQL data. DataIvory = "ivory" )
const ( // ContainerDatabase is the name of the container running IvorySQL and // supporting tools: Patroni, pgBackRest, etc. ContainerDatabase = "database" // ContainerPGAdmin is the name of a container running pgAdmin. ContainerPGAdmin = "pgadmin" // ContainerPGAdminStartup is the name of the initialization container // that prepares the filesystem for pgAdmin. ContainerPGAdminStartup = "pgadmin-startup" // ContainerPGBackRestConfig is the name of a container supporting pgBackRest. ContainerPGBackRestConfig = "pgbackrest-config" // ContainerPGBouncer is the name of a container running PgBouncer. ContainerPGBouncer = "pgbouncer" // ContainerPGBouncerConfig is the name of a container supporting PgBouncer. ContainerPGBouncerConfig = "pgbouncer-config" // ContainerIvoryStartup is the name of the initialization container // that prepares the filesystem for IvorySQL. ContainerIvoryStartup = "ivory-startup" // ContainerClientCertCopy is the name of the container that is responsible for copying and // setting proper permissions on the client certificate and key after initialization whenever // there is a change in the certificates or key ContainerClientCertCopy = "replication-cert-copy" // ContainerNSSWrapperInit is the name of the init container utilized to configure support // for the nss_wrapper ContainerNSSWrapperInit = "nss-wrapper-init" // ContainerPGBackRestLogDirInit is the name of the init container utilized to make // a pgBackRest log directory when using a dedicated repo host. ContainerPGBackRestLogDirInit = "pgbackrest-log-dir" // ContainerPGMonitorExporter is the name of a container running postgres_exporter ContainerPGMonitorExporter = "exporter" // ContainerJobMovePGDataDir is the name of the job container utilized to copy v4 Operator // pgData directories to the v5 default location ContainerJobMovePGDataDir = "pgdata-move-job" // ContainerJobMovePGWALDir is the name of the job container utilized to copy v4 Operator // pg_wal directories to the v5 default location ContainerJobMovePGWALDir = "pgwal-move-job" // ContainerJobMovePGBackRestRepoDir is the name of the job container utilized to copy v4 // Operator pgBackRest repo directories to the v5 default location ContainerJobMovePGBackRestRepoDir = "repo-move-job" )
const ( // PortExporter is the named port for the "exporter" container PortExporter = "exporter" // PortPGAdmin is the name of a port that connects to pgAdmin. PortPGAdmin = "pgadmin" // PortPGBouncer is the name of a port that connects to PgBouncer. PortPGBouncer = "pgbouncer" // PortIvorySQL is the name of a port that connects to IvorySQL. PortIvorySQL = "ivory" )
const ( // RootCertSecret is the default root certificate secret name RootCertSecret = "ivyo-root-cacert" /* #nosec */ // ClusterCertSecret is the default cluster leaf certificate secret name ClusterCertSecret = "%s-cluster-cert" /* #nosec */ )
const ( // CertVolume is the name of the Certificate volume and volume mount in a // IvorySQL instance Pod CertVolume = "cert-volume" // CertMountPath is the path for mounting the ivorycluster certificates // and key CertMountPath = "/pgconf/tls" // ReplicationDirectory is the directory at CertMountPath where the replication // certificates and key are mounted ReplicationDirectory = "/replication" // ReplicationTmp is the directory where the replication certificates and key can // have the proper permissions set due to: // https://github.com/kubernetes/kubernetes/issues/57923 ReplicationTmp = "/tmp/replication" // ReplicationCert is the secret key to the ivorycluster's // replication/rewind user's client certificate ReplicationCert = "tls.crt" // ReplicationCertPath is the path to the ivorycluster's replication/rewind // user's client certificate ReplicationCertPath = "replication/tls.crt" // ReplicationPrivateKey is the secret key to the ivorycluster's // replication/rewind user's client private key ReplicationPrivateKey = "tls.key" // ReplicationPrivateKeyPath is the path to the ivorycluster's // replication/rewind user's client private key ReplicationPrivateKeyPath = "replication/tls.key" // ReplicationCACert is the key name of the ivorycluster's replication/rewind // user's client CA certificate // Note: when using auto-generated certificates, this will be identical to the // server CA cert ReplicationCACert = "ca.crt" // ReplicationCACertPath is the path to the ivorycluster's replication/rewind // user's client CA certificate ReplicationCACertPath = "replication/ca.crt" )
const ( // PGBackRestRepoContainerName is the name assigned to the container used to run pgBackRest PGBackRestRepoContainerName = "pgbackrest" // PGBackRestRestoreContainerName is the name assigned to the container used to run pgBackRest // restores PGBackRestRestoreContainerName = "pgbackrest-restore" // PGBackRestRepoName is the name used for a pgbackrest repository PGBackRestRepoName = "%s-pgbackrest-repo-%s" // PGBackRestPGDataLogPath is the pgBackRest default log path configuration used by the // IvorySQL instance. PGBackRestPGDataLogPath = "/pgdata/pgbackrest/log" // PGBackRestRepoLogPath is the pgBackRest default log path configuration used by the // dedicated repo host, if configured. PGBackRestRepoLogPath = "/pgbackrest/%s/log" // RestoreConfigCopySuffix is the suffix used for ConfigMap or Secret configuration // resources needed when restoring from a IvoryCluster data source. If, for // example, a Secret is named 'mysecret' and is the first item in the configuration // slice, the copied Secret will be named 'mysecret-restorecopy-0' RestoreConfigCopySuffix = "%s-restorecopy-%d" )
const (
ControllerBridge = "bridge-controller"
)
Variables ¶
This section is empty.
Functions ¶
func AnyCluster ¶
func AnyCluster() metav1.LabelSelector
AnyCluster selects things for any IvorySQL cluster.
func AsObjectKey ¶
func AsObjectKey(m metav1.ObjectMeta) client.ObjectKey
AsObjectKey converts the ObjectMeta API type to a client.ObjectKey. When you have a client.Object, use client.ObjectKeyFromObject() instead.
func AsSelector ¶
func AsSelector(s metav1.LabelSelector) (labels.Selector, error)
AsSelector is a wrapper around metav1.LabelSelectorAsSelector() which converts the LabelSelector API type into something that implements labels.Selector.
func Cluster ¶
func Cluster(cluster string) metav1.LabelSelector
Cluster selects things for cluster.
func ClusterConfigMap ¶
func ClusterConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterConfigMap returns the ObjectMeta necessary to lookup cluster's shared ConfigMap.
func ClusterDataForIvoryAndPGBackRest ¶
func ClusterDataForIvoryAndPGBackRest(cluster string) metav1.LabelSelector
ClusterDataForIvoryAndPGBackRest selects things for IvorySQL data and things for pgBackRest data.
func ClusterInstance ¶
func ClusterInstance(cluster, instance string) metav1.LabelSelector
ClusterInstance selects things for a single instance in a cluster.
func ClusterInstanceRBAC ¶
func ClusterInstanceRBAC(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterInstanceRBAC returns the ObjectMeta necessary to lookup the ServiceAccount, Role, and RoleBinding for cluster's IvorySQL instances.
func ClusterInstanceSet ¶
func ClusterInstanceSet(cluster, set string) metav1.LabelSelector
ClusterInstanceSet selects things for set in cluster.
func ClusterInstanceSets ¶
func ClusterInstanceSets(cluster string) metav1.LabelSelector
ClusterInstanceSets selects things for sets in a cluster.
func ClusterInstances ¶
func ClusterInstances(cluster string) metav1.LabelSelector
ClusterInstances selects things for IvorySQL instances in cluster.
func ClusterIvoryUsers ¶
func ClusterIvoryUsers(cluster string) metav1.LabelSelector
ClusterIvoryUsers selects things labeled for IvorySQL users in cluster.
func ClusterPGAdmin ¶
func ClusterPGAdmin(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterPGAdmin returns the ObjectMeta necessary to lookup the ConfigMap, Service, StatefulSet, or Volume for the cluster's pgAdmin user interface.
func ClusterPGBouncer ¶
func ClusterPGBouncer(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterPGBouncer returns the ObjectMeta necessary to lookup the ConfigMap, Deployment, Secret, PodDisruptionBudget or Service that is cluster's PgBouncer proxy.
func ClusterPGBouncerSelector ¶
func ClusterPGBouncerSelector(cluster *v1beta1.IvoryCluster) metav1.LabelSelector
ClusterPGBouncerSelector selects things labeled for PGBouncer in cluster.
func ClusterPatronis ¶
func ClusterPatronis(cluster *v1beta1.IvoryCluster) metav1.LabelSelector
ClusterPatronis selects things labeled for Patroni in cluster.
func ClusterPodService ¶
func ClusterPodService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterPodService returns the ObjectMeta necessary to lookup the Service that is responsible for the network identity of Pods.
func ClusterPrimary ¶
func ClusterPrimary(cluster string) metav1.LabelSelector
ClusterPrimary selects things for the Primary IvorySQL instance.
func ClusterPrimaryService ¶
func ClusterPrimaryService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterPrimaryService returns the ObjectMeta necessary to lookup the Service that exposes the IvorySQL primary instance.
func ClusterReplicaService ¶
func ClusterReplicaService(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ClusterReplicaService returns the ObjectMeta necessary to lookup the Service that exposes IvorySQL replica instances.
func DeprecatedIvoryUserSecret ¶
func DeprecatedIvoryUserSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
DeprecatedIvoryUserSecret returns the ObjectMeta necessary to lookup the old Secret containing the default Ivory user and connection information. Use IvoryUserSecret instead.
func DirectoryMoveJobLabels ¶
DirectoryMoveJobLabels provides labels for PVC move Jobs.
func ExporterWebConfigMap ¶
func ExporterWebConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ExporterWebConfigMap returns ObjectMeta necessary to lookup and create the exporter web configmap. This configmap is used to configure the exporter web server.
func GenerateInstance ¶
func GenerateInstance( cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec, ) metav1.ObjectMeta
GenerateInstance returns a random name for a member of cluster and set.
func GenerateStartupInstance ¶
func GenerateStartupInstance( cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec, ) metav1.ObjectMeta
GenerateStartupInstance returns a stable name that's shaped like GenerateInstance above. The stable name is based on a four character hash of the cluster name and instance set name
func InstanceCertificates ¶
func InstanceCertificates(instance metav1.Object) metav1.ObjectMeta
InstanceCertificates returns the ObjectMeta necessary to lookup the Secret containing instance's certificates.
func InstanceConfigMap ¶
func InstanceConfigMap(instance metav1.Object) metav1.ObjectMeta
InstanceConfigMap returns the ObjectMeta necessary to lookup instance's shared ConfigMap.
func InstanceIvoryDataVolume ¶
func InstanceIvoryDataVolume(instance *appsv1.StatefulSet) metav1.ObjectMeta
InstanceIvoryDataVolume returns the ObjectMeta for the IvorySQL data volume for instance.
func InstanceIvoryWALVolume ¶
func InstanceIvoryWALVolume(instance *appsv1.StatefulSet) metav1.ObjectMeta
InstanceIvoryWALVolume returns the ObjectMeta for the IvorySQL WAL volume for instance.
func InstancePodDNSNames ¶
func InstancePodDNSNames(ctx context.Context, instance *appsv1.StatefulSet) []string
InstancePodDNSNames returns the possible DNS names for instance. The first name is the fully qualified domain name (FQDN).
func InstanceSet ¶
func InstanceSet(cluster *v1beta1.IvoryCluster, set *v1beta1.IvoryInstanceSetSpec) metav1.ObjectMeta
InstanceSet returns the ObjectMeta necessary to lookup the objects associated with a single instance set. Includes PodDisruptionBudgets
func InstanceTablespaceDataVolume ¶
func InstanceTablespaceDataVolume(instance *appsv1.StatefulSet, tablespaceName string) metav1.ObjectMeta
InstanceTablespaceDataVolume returns the ObjectMeta for the tablespace data volume for instance.
func IvoryTLSSecret ¶
func IvoryTLSSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
IvoryTLSSecret returns the ObjectMeta necessary to lookup the Secret containing the default Ivory TLS certificates and key
func IvoryUserSecret ¶
func IvoryUserSecret(cluster *v1beta1.IvoryCluster, username string) metav1.ObjectMeta
IvoryUserSecret returns the ObjectMeta necessary to lookup a Secret containing a IvorySQL user and its connection information.
func KubernetesClusterDomain ¶
KubernetesClusterDomain looks up the Kubernetes cluster domain name.
func Merge ¶
Merge takes sets of labels and merges them. The last set provided will win in case of conflicts.
func MonitoringUserSecret ¶
func MonitoringUserSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
MonitoringUserSecret returns ObjectMeta necessary to lookup the Secret containing authentication credentials for monitoring tools.
func MovePGBackRestRepoDirJob ¶
func MovePGBackRestRepoDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
MovePGBackRestRepoDirJob returns the ObjectMeta for a pgBackRest repo directory move Job
func MovePGDataDirJob ¶
func MovePGDataDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
MovePGDataDirJob returns the ObjectMeta for a pgData directory move Job
func MovePGWALDirJob ¶
func MovePGWALDirJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
MovePGWALDirJob returns the ObjectMeta for a pg_wal directory move Job
func OperatorConfigurationSecret ¶
func OperatorConfigurationSecret() metav1.ObjectMeta
OperatorConfigurationSecret returns the ObjectMeta necessary to lookup the Secret containing IVO configuration.
func PGBackRestBackupJob ¶
func PGBackRestBackupJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestBackupJob returns the ObjectMeta for the pgBackRest backup Job utilized to create replicas using pgBackRest
func PGBackRestBackupJobLabels ¶
func PGBackRestBackupJobLabels(clusterName, repoName string, backupType BackupJobType) labels.Set
PGBackRestBackupJobLabels provides labels for pgBackRest backup Jobs.
func PGBackRestBackupJobSelector ¶
func PGBackRestBackupJobSelector(clusterName, repoName string, backupType BackupJobType) labels.Selector
PGBackRestBackupJobSelector provides a selector for querying all pgBackRest resources
func PGBackRestConfig ¶
func PGBackRestConfig(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestConfig returns the ObjectMeta for a pgBackRest ConfigMap
func PGBackRestConfigLabels ¶
PGBackRestConfigLabels provides labels for the pgBackRest configuration created and used by the IvorySQL Operator
func PGBackRestCronJob ¶
func PGBackRestCronJob(cluster *v1beta1.IvoryCluster, backuptype, repoName string) metav1.ObjectMeta
PGBackRestCronJob returns the ObjectMeta for a pgBackRest CronJob
func PGBackRestCronJobLabels ¶
PGBackRestCronJobLabels provides common labels for pgBackRest CronJobs
func PGBackRestDedicatedLabels ¶
PGBackRestDedicatedLabels provides labels for a pgBackRest dedicated repository host
func PGBackRestDedicatedSelector ¶
PGBackRestDedicatedSelector provides a selector for querying pgBackRest dedicated repository host resources
func PGBackRestLabels ¶
PGBackRestLabels provides common labels for pgBackRest resources.
func PGBackRestRBAC ¶
func PGBackRestRBAC(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestRBAC returns the ObjectMeta necessary to lookup the ServiceAccount, Role, and RoleBinding for pgBackRest Jobs
func PGBackRestRepoLabels ¶
PGBackRestRepoLabels provides common labels for pgBackRest repository resources.
func PGBackRestRepoVolume ¶
func PGBackRestRepoVolume(cluster *v1beta1.IvoryCluster, repoName string) metav1.ObjectMeta
PGBackRestRepoVolume returns the ObjectMeta for a pgBackRest repository volume
func PGBackRestRepoVolumeLabels ¶
PGBackRestRepoVolumeLabels the labels for a pgBackRest repository volume.
func PGBackRestRestoreConfigLabels
deprecated
PGBackRestRestoreConfigLabels provides labels for configuration (e.g. ConfigMaps and Secrets) generated to perform a pgBackRest restore.
Deprecated: Store restore data in the pgBackRest ConfigMap and Secret, PGBackRestConfig and PGBackRestSecret.
func PGBackRestRestoreConfigSelector ¶
PGBackRestRestoreConfigSelector provides selector for querying pgBackRest restore config resources.
func PGBackRestRestoreJob ¶
func PGBackRestRestoreJob(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestRestoreJob returns the ObjectMeta for a pgBackRest restore Job
func PGBackRestRestoreJobLabels ¶
PGBackRestRestoreJobLabels provides labels for pgBackRest restore Jobs and associated configuration ConfigMaps and Secrets.
func PGBackRestRestoreJobSelector ¶
PGBackRestRestoreJobSelector provides selector for querying pgBackRest restore Jobs.
func PGBackRestSSHConfig ¶
func PGBackRestSSHConfig(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestSSHConfig returns the ObjectMeta for a pgBackRest SSHD ConfigMap Deprecated: Repository hosts use mTLS for encryption, authentication, and authorization. TODO(tjmoore4): Once we no longer need this for cleanup purposes, this should be removed.
func PGBackRestSSHSecret ¶
func PGBackRestSSHSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestSSHSecret returns the ObjectMeta for a pgBackRest SSHD Secret Deprecated: Repository hosts use mTLS for encryption, authentication, and authorization. TODO(tjmoore4): Once we no longer need this for cleanup purposes, this should be removed.
func PGBackRestSecret ¶
func PGBackRestSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PGBackRestSecret returns the ObjectMeta for a pgBackRest Secret
func PGBackRestSelector ¶
PGBackRestSelector provides a selector for querying all pgBackRest resources
func PatroniDistributedConfiguration ¶
func PatroniDistributedConfiguration(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PatroniDistributedConfiguration returns the ObjectMeta necessary to lookup the DCS created by Patroni for cluster. This same name is used for both ConfigMap and Endpoints. See Patroni DCS "config_path".
func PatroniLeaderConfigMap ¶
func PatroniLeaderConfigMap(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PatroniLeaderConfigMap returns the ObjectMeta necessary to lookup the ConfigMap created by Patroni for the leader election of cluster. See Patroni DCS "leader_path".
func PatroniLeaderEndpoints ¶
func PatroniLeaderEndpoints(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PatroniLeaderEndpoints returns the ObjectMeta necessary to lookup the Endpoints created by Patroni for the leader election of cluster. See Patroni DCS "leader_path".
func PatroniScope ¶
func PatroniScope(cluster *v1beta1.IvoryCluster) string
PatroniScope returns the "scope" Patroni uses for cluster.
func PatroniTrigger ¶
func PatroniTrigger(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
PatroniTrigger returns the ObjectMeta necessary to lookup the ConfigMap or Endpoints Patroni creates for cluster to initiate a controlled change of the leader. See Patroni DCS "failover_path".
func ReplicationClientCertSecret ¶
func ReplicationClientCertSecret(cluster *v1beta1.IvoryCluster) metav1.ObjectMeta
ReplicationClientCertSecret returns ObjectMeta necessary to lookup the Secret containing the Patroni client authentication certificate information.
func RepoHostPodDNSNames ¶
func RepoHostPodDNSNames(ctx context.Context, repoHost *appsv1.StatefulSet) []string
RepoHostPodDNSNames returns the possible DNS names for a pgBackRest repository host Pod. The first name is the fully qualified domain name (FQDN).
func ServiceDNSNames ¶
ServiceDNSNames returns the possible DNS names for service. The first name is the fully qualified domain name (FQDN).
func UpgradeCheckConfigMap ¶
func UpgradeCheckConfigMap() metav1.ObjectMeta
UpgradeCheckConfigMap returns the ObjectMeta for the IVO ConfigMap
Types ¶
type BackupJobType ¶
type BackupJobType string
BackupJobType represents different types of backups (e.g. ad-hoc backups, scheduled backups, the backup for pgBackRest replica creation, etc.)
const ( // BackupManual is the backup type utilized for manual backups BackupManual BackupJobType = "manual" // BackupReplicaCreate is the backup type for the backup taken to enable pgBackRest replica // creation BackupReplicaCreate BackupJobType = "replica-create" )