From e3a8a9e5d3dad2c8ffdc8cf47e5878da3041840d Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Mon, 18 Nov 2019 13:05:31 +0100 Subject: [PATCH] inject cluster name label into logical backup pod --- docker/logical-backup/dump.sh | 31 ------------------------------- pkg/cluster/k8sres.go | 8 ++++++-- 2 files changed, 6 insertions(+), 33 deletions(-) diff --git a/docker/logical-backup/dump.sh b/docker/logical-backup/dump.sh index c3cf5ba67..cf1e2d1f9 100755 --- a/docker/logical-backup/dump.sh +++ b/docker/logical-backup/dump.sh @@ -16,7 +16,6 @@ DUMP_SIZE_COEFF=5 TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) K8S_API_URL=https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT CERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt -CLUSTER_NAME_LABEL=cluster-name function estimate_size { "$PG_BIN"/psql -tqAc "${ALL_DB_SIZE_QUERY}" @@ -61,41 +60,11 @@ function get_current_pod { } declare -a search_strategy=( - get_cluster_name_label list_all_replica_pods_current_node list_all_replica_pods_any_node get_master_pod ) -function get_config_resource() { - curl "${K8S_API_URL}/apis/apps/v1/namespaces/default/deployments/postgres-operator" \ - --cacert $CERT \ - -H "Authorization: Bearer ${TOKEN}" | jq '.spec.template.spec.containers[0].env[] | select(.name == "$1") | .value' -} - -function get_cluster_name_label { - local config - local clustername - - config=$(get_config_resource "CONFIG_MAP_NAME") - if [ -n "$config" ]; then - clustername=$(curl "${K8S_API_URL}/api/v1/namespaces/default/configmaps/${config}" \ - --cacert $CERT \ - -H "Authorization: Bearer ${TOKEN}" | jq '.data.cluster_name_label') - else - config=$(get_config_resource "POSTGRES_OPERATOR_CONFIGURATION_OBJECT") - if [ -n "$config" ]; then - clustername=$(curl "${K8S_API_URL}/apis/acid.zalan.do/v1/namespaces/default/operatorconfigurations/${config}" \ - --cacert $CERT \ - -H "Authorization: Bearer ${TOKEN}" | jq '.configuration.kubernetes.cluster_name_label') - fi - fi - - if [ -n "$clustername" ]; then - CLUSTER_NAME_LABEL=${clustername} - fi; -} - function list_all_replica_pods_current_node { get_pods "labelSelector=${CLUSTER_NAME_LABEL}%3D${SCOPE},spilo-role%3Dreplica&fieldSelector=spec.nodeName%3D${CURRENT_NODENAME}" | head -n 1 } diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index ddadf8d52..655a6a429 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -493,7 +493,7 @@ func generatePodTemplate( Spec: podSpec, } if kubeIAMRole != "" { - if template.Annotations == nil{ + if template.Annotations == nil { template.Annotations = make(map[string]string) } template.Annotations[constants.KubeIAmAnnotation] = kubeIAMRole @@ -967,7 +967,7 @@ func (c *Cluster) generatePodAnnotations(spec *acidv1.PostgresSpec) map[string]s annotations[k] = v } } - + if len(annotations) == 0 { return nil } @@ -1557,6 +1557,10 @@ func (c *Cluster) generateLogicalBackupPodEnvVars() []v1.EnvVar { Name: "SCOPE", Value: c.Name, }, + { + Name: "CLUSTER_NAME_LABEL", + Value: c.OpConfig.ClusterNameLabel, + }, { Name: "POD_NAMESPACE", ValueFrom: &v1.EnvVarSource{