Add team name to tpr object metadata name
This commit is contained in:
parent
db53134cbd
commit
dd2ed5ff9d
|
|
@ -56,3 +56,5 @@ spec:
|
|||
value: "registry.opensource.zalan.do/acid/spilo-9.6:1.2-p12"
|
||||
- name: PGOP_DB_HOSTED_ZONE
|
||||
value: "db.example.com"
|
||||
- name: PGOP_DNS_NAME_FORMAT
|
||||
value: "%s.%s.staging.%s"
|
||||
|
|
@ -9,7 +9,6 @@ import (
|
|||
"k8s.io/client-go/pkg/util/intstr"
|
||||
|
||||
"github.bus.zalan.do/acid/postgres-operator/pkg/spec"
|
||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util"
|
||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util/constants"
|
||||
)
|
||||
|
||||
|
|
@ -243,7 +242,7 @@ func (c *Cluster) genService(allowedSourceRanges []string) *v1.Service {
|
|||
Namespace: c.Metadata.Namespace,
|
||||
Labels: c.labelsSet(),
|
||||
Annotations: map[string]string{
|
||||
constants.ZalandoDnsNameAnnotation: util.ClusterDNSName(c.Metadata.Name, c.TeamName(), c.OpConfig.DbHostedZone),
|
||||
constants.ZalandoDnsNameAnnotation: c.dnsName(),
|
||||
},
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
|
|
|
|||
|
|
@ -209,6 +209,14 @@ func (c *Cluster) labelsSet() labels.Set {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Cluster) dnsName() string {
|
||||
return strings.ToLower(fmt.Sprintf(
|
||||
c.OpConfig.DNSFormat,
|
||||
c.Spec.ClusterName,
|
||||
c.TeamName(),
|
||||
c.OpConfig.DbHostedZone))
|
||||
}
|
||||
|
||||
func (c *Cluster) credentialSecretName(username string) string {
|
||||
return fmt.Sprintf(constants.UserSecretTemplate,
|
||||
username,
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ type PostgresSpec struct {
|
|||
NumberOfInstances int32 `json:"numberOfInstances"`
|
||||
Users map[string]UserFlags `json:"users"`
|
||||
MaintenanceWindows []MaintenanceWindow `json:"maintenanceWindows,omitempty"`
|
||||
ClusterName string `json:"-"`
|
||||
}
|
||||
|
||||
type PostgresqlList struct {
|
||||
|
|
@ -190,6 +191,18 @@ func (pl *PostgresqlList) GetListMeta() unversioned.List {
|
|||
type PostgresqlListCopy PostgresqlList
|
||||
type PostgresqlCopy Postgresql
|
||||
|
||||
func clusterName(clusterName string, teamName string) (string, error) {
|
||||
teamNameLen := len(teamName)
|
||||
if len(clusterName) < teamNameLen + 2 {
|
||||
return "", fmt.Errorf("Name is too short")
|
||||
}
|
||||
if strings.ToLower(clusterName[:teamNameLen]) != strings.ToLower(teamName) {
|
||||
return "", fmt.Errorf("Name must start with the team name")
|
||||
}
|
||||
|
||||
return clusterName[teamNameLen+1:], nil
|
||||
}
|
||||
|
||||
func (p *Postgresql) UnmarshalJSON(data []byte) error {
|
||||
tmp := PostgresqlCopy{}
|
||||
err := json.Unmarshal(data, &tmp)
|
||||
|
|
@ -197,6 +210,12 @@ func (p *Postgresql) UnmarshalJSON(data []byte) error {
|
|||
return err
|
||||
}
|
||||
tmp2 := Postgresql(tmp)
|
||||
|
||||
clusterName, err := clusterName(tmp2.Metadata.Name, tmp2.Spec.TeamId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tmp2.Spec.ClusterName = clusterName
|
||||
*p = tmp2
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ type Config struct {
|
|||
WALES3Bucket string `envconfig:"wal_s3_bucket"`
|
||||
KubeIAMRole string `envconfig:"kube_iam_role"`
|
||||
DebugLogging bool `split_words:"true" default:"false"`
|
||||
DNSNameFormat string `envconfig:"dns_name_format" default:"%s.%s.%s"`
|
||||
}
|
||||
|
||||
func LoadFromEnv() *Config {
|
||||
|
|
|
|||
|
|
@ -54,10 +54,6 @@ func PodSpiloRole(pod *v1.Pod) string {
|
|||
return pod.Labels["spilo-role"]
|
||||
}
|
||||
|
||||
func ClusterDNSName(clusterName, teamName, hostedZone string) string {
|
||||
return fmt.Sprintf("%s.%s.%s", clusterName, teamName, hostedZone)
|
||||
}
|
||||
|
||||
func PGUserPassword(user spec.PgUser) string {
|
||||
s := md5.Sum([]byte(user.Password + user.Name))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue