Documentation
¶
Overview ¶
Package specs contains the specification of the K8s resources generated by the CloudNativePG operator
Index ¶
- Constants
- func AddBarmanEndpointCAToPodSpec(podSpec *corev1.PodSpec, caSecret *apiv1.SecretKeySelector, ...)
- func BuildPrimaryPodDisruptionBudget(cluster *apiv1.Cluster) *policyv1beta1.PodDisruptionBudget
- func BuildReplicasPodDisruptionBudget(cluster *apiv1.Cluster) *policyv1beta1.PodDisruptionBudget
- func CreateAffinitySection(clusterName string, config apiv1.AffinityConfiguration) *corev1.Affinity
- func CreateClusterAnyService(cluster apiv1.Cluster) *corev1.Service
- func CreateClusterReadOnlyService(cluster apiv1.Cluster) *corev1.Service
- func CreateClusterReadService(cluster apiv1.Cluster) *corev1.Service
- func CreateClusterReadWriteService(cluster apiv1.Cluster) *corev1.Service
- func CreateContainerSecurityContext() *corev1.SecurityContext
- func CreateGeneratedAntiAffinity(clusterName string, config apiv1.AffinityConfiguration) *corev1.Affinity
- func CreateManagedSecretsAnnotationValue(imagePullSecretsNames []string) (string, error)
- func CreatePodMonitor(cluster *apiv1.Cluster) *monitoringv1.PodMonitor
- func CreatePodSecurityContext(user, group int64) *corev1.PodSecurityContext
- func CreatePrimaryJobViaInitdb(cluster apiv1.Cluster, nodeSerial int) *batchv1.Job
- func CreatePrimaryJobViaPgBaseBackup(cluster apiv1.Cluster, nodeSerial int) *batchv1.Job
- func CreatePrimaryJobViaRecovery(cluster apiv1.Cluster, nodeSerial int, backup *apiv1.Backup) *batchv1.Job
- func CreateRole(cluster apiv1.Cluster, backupOrigin *apiv1.Backup) rbacv1.Role
- func CreateRoleBinding(objectMeta metav1.ObjectMeta) rbacv1.RoleBinding
- func CreateSecret(name string, namespace string, hostname string, dbname string, username string, ...) *corev1.Secret
- func GetBootstrapControllerImageName(pod corev1.Pod) (string, error)
- func GetContainerImageName(pod corev1.Pod, containerName string) (string, error)
- func GetInitContainerImageName(pod corev1.Pod, containerName string) (string, error)
- func GetNodeSerial(object metav1.ObjectMeta) (int, error)
- func GetPostgresImageName(pod corev1.Pod) (string, error)
- func IsPodPrimary(pod corev1.Pod) bool
- func IsPodStandby(pod corev1.Pod) bool
- func IsServiceAccountAligned(sa *corev1.ServiceAccount, imagePullSecretsNames []string) (bool, error)
- func JoinReplicaInstance(cluster apiv1.Cluster, nodeSerial int) *batchv1.Job
- func PodWithExistingStorage(cluster apiv1.Cluster, nodeSerial int) *corev1.Pod
- func UpdateServiceAccount(imagePullSecretsNames []string, serviceAccount *corev1.ServiceAccount) error
Constants ¶
const ( // MetadataNamespace is the annotation and label namespace used by the operator MetadataNamespace = "cnpg.io" // ClusterSerialAnnotationName is the name of the annotation containing the // serial number of the node ClusterSerialAnnotationName = MetadataNamespace + "/nodeSerial" // ClusterRestartAnnotationName is the name of the annotation containing the // latest required restart time ClusterRestartAnnotationName = "kubectl.kubernetes.io/restartedAt" // ClusterReloadAnnotationName is the name of the annotation containing the // latest required restart time ClusterReloadAnnotationName = MetadataNamespace + "/reloadedAt" // ClusterRoleLabelName label is applied to Pods to mark primary ones ClusterRoleLabelName = "role" // ClusterRoleLabelPrimary is written in labels to represent primary servers ClusterRoleLabelPrimary = "primary" // ClusterRoleLabelReplica is written in labels to represent replica servers ClusterRoleLabelReplica = "replica" // WatchedLabelName label is for Secrets or ConfigMaps that needs to be reloaded WatchedLabelName = MetadataNamespace + "/reload" // ClusterLabelName label is applied to Pods to link them to the owning // cluster. // // Deprecated. // // utils.ClusterLabelName should be used instead where possible. ClusterLabelName = "postgresql" // PostgresContainerName is the name of the container executing PostgreSQL // inside one Pod PostgresContainerName = "postgres" // BootstrapControllerContainerName is the name of the container copying the bootstrap // controller inside the Pod file system BootstrapControllerContainerName = "bootstrap-controller" // PgDataPath is the path to PGDATA variable PgDataPath = "/var/lib/postgresql/data/pgdata" // PgWalPath is the path to the pg_wal directory PgWalPath = PgDataPath + "/pg_wal" // PgWalArchiveStatusPath is the path to the archive status directory PgWalArchiveStatusPath = PgWalPath + "/archive_status" // ReadinessProbePeriod is the period set for the postgres instance readiness probe ReadinessProbePeriod = 10 )
const ( // OperatorManagedSecretsName is the name of the annotation containing the secrets // managed by the operator inside the generated service account OperatorManagedSecretsName = "cnpg.io/managedSecrets" // #nosec )
Variables ¶
This section is empty.
Functions ¶
func AddBarmanEndpointCAToPodSpec ¶ added in v1.16.1
func AddBarmanEndpointCAToPodSpec( podSpec *corev1.PodSpec, caSecret *apiv1.SecretKeySelector, credentials apiv1.BarmanCredentials, )
AddBarmanEndpointCAToPodSpec adds the required volumes and env variables needed by barman to work correctly
func BuildPrimaryPodDisruptionBudget ¶
func BuildPrimaryPodDisruptionBudget(cluster *apiv1.Cluster) *policyv1beta1.PodDisruptionBudget
BuildPrimaryPodDisruptionBudget creates a pod disruption budget, telling K8s to avoid removing more than one primary instance at a time
func BuildReplicasPodDisruptionBudget ¶
func BuildReplicasPodDisruptionBudget(cluster *apiv1.Cluster) *policyv1beta1.PodDisruptionBudget
BuildReplicasPodDisruptionBudget creates a pod disruption budget telling K8s to avoid removing more than one replica at a time
func CreateAffinitySection ¶
func CreateAffinitySection(clusterName string, config apiv1.AffinityConfiguration) *corev1.Affinity
CreateAffinitySection creates the affinity sections for Pods, given the configuration from the user
func CreateClusterAnyService ¶
CreateClusterAnyService create a service insisting on all the pods
func CreateClusterReadOnlyService ¶
CreateClusterReadOnlyService create a service insisting on all the ready pods
func CreateClusterReadService ¶
CreateClusterReadService create a service insisting on all the ready pods
func CreateClusterReadWriteService ¶
CreateClusterReadWriteService create a service insisting on the primary pod
func CreateContainerSecurityContext ¶
func CreateContainerSecurityContext() *corev1.SecurityContext
CreateContainerSecurityContext initializes container security context
func CreateGeneratedAntiAffinity ¶
func CreateGeneratedAntiAffinity(clusterName string, config apiv1.AffinityConfiguration) *corev1.Affinity
CreateGeneratedAntiAffinity generates the affinity terms the operator is in charge for if enabled, return nil if disabled or an error occurred, as invalid values should be validated before this method is called
func CreateManagedSecretsAnnotationValue ¶
CreateManagedSecretsAnnotationValue creates the value of the annotations that stores the names of the secrets managed by the operator inside a ServiceAccount
func CreatePodMonitor ¶
func CreatePodMonitor(cluster *apiv1.Cluster) *monitoringv1.PodMonitor
CreatePodMonitor create a new podmonitor for cluster
func CreatePodSecurityContext ¶ added in v1.15.3
func CreatePodSecurityContext(user, group int64) *corev1.PodSecurityContext
CreatePodSecurityContext defines the security context under which the containers are running
func CreatePrimaryJobViaInitdb ¶
CreatePrimaryJobViaInitdb creates a new primary instance in a Pod
func CreatePrimaryJobViaPgBaseBackup ¶
CreatePrimaryJobViaPgBaseBackup creates a new primary instance in a Pod
func CreatePrimaryJobViaRecovery ¶
func CreatePrimaryJobViaRecovery(cluster apiv1.Cluster, nodeSerial int, backup *apiv1.Backup) *batchv1.Job
CreatePrimaryJobViaRecovery creates a new primary instance in a Pod
func CreateRole ¶
CreateRole create a role with the permissions needed by the instance manager
func CreateRoleBinding ¶
func CreateRoleBinding(objectMeta metav1.ObjectMeta) rbacv1.RoleBinding
CreateRoleBinding is the binding between the permissions that the instance manager can use and the ServiceAccount used by the Pod
func CreateSecret ¶
func CreateSecret( name string, namespace string, hostname string, dbname string, username string, password string, ) *corev1.Secret
CreateSecret create a secret with the PostgreSQL and the owner passwords
func GetBootstrapControllerImageName ¶
GetBootstrapControllerImageName get the controller image name used to bootstrap a Pod
func GetContainerImageName ¶
GetContainerImageName get the name of the image used in a container
func GetInitContainerImageName ¶
GetInitContainerImageName get the name of the image used in an init container
func GetNodeSerial ¶
func GetNodeSerial(object metav1.ObjectMeta) (int, error)
GetNodeSerial get the serial number of an object created by the operator for a Cluster
func GetPostgresImageName ¶
GetPostgresImageName get the PostgreSQL image name used in this Pod
func IsPodPrimary ¶
IsPodPrimary check if a certain pod belongs to a primary
func IsPodStandby ¶
IsPodStandby check if a certain pod belongs to a standby
func IsServiceAccountAligned ¶
func IsServiceAccountAligned(sa *corev1.ServiceAccount, imagePullSecretsNames []string) (bool, error)
IsServiceAccountAligned compares the given list of pull secrets with the ones managed by the operator inside the given ServiceAccount and returns true when everything is aligned
func JoinReplicaInstance ¶
JoinReplicaInstance create a new PostgreSQL node, copying the contents from another Pod
func PodWithExistingStorage ¶
PodWithExistingStorage create a new instance with an existing storage
func UpdateServiceAccount ¶
func UpdateServiceAccount(imagePullSecretsNames []string, serviceAccount *corev1.ServiceAccount) error
UpdateServiceAccount sets the needed values in the ServiceAccount that will be used in every Pod
Types ¶
This section is empty.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package pgbouncer contains the specification of the K8s resources generated by the CloudNativePG operator related to pgbouncer poolers
|
Package pgbouncer contains the specification of the K8s resources generated by the CloudNativePG operator related to pgbouncer poolers |