CrunchyData / postgres-operator

Production PostgreSQL for Kubernetes, from high availability Postgres clusters to full-scale database-as-a-service.
https://access.crunchydata.com/documentation/postgres-operator/v5/
Apache License 2.0
3.92k stars 592 forks source link

Very very quick quickstart not working for me. #1582

Closed B45man closed 4 years ago

B45man commented 4 years ago

Which example are you working with? https://access.crunchydata.com/documentation/postgres-operator/latest/quickstart/#postgresql-operator-installer

What is the current behavior? I have an extremely simple 1 node K8s cluster. I have used this command:

kubeadm init --pod-network-cidr=10.244.0.0/16 After which I run some commands to copy a kubeconfig file to the right location. Afterwards I can deploy a simple application (the official Redis docker container) to my cluster. Directly after This I run the two commands from the quick start:

kubectl create namespace pgo
kubectl apply -f https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.3.1/installers/kubectl/postgres-operator.yml

This results in this output:

The Job "pgo-deploy" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"pgo-deploy", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(time.Location)(nil)}}, DeletionTimestamp:(v1.Time)(nil), DeletionGracePeriodSeconds:(int64)(nil), Labels:map[string]string{"controller-uid":"4877baac-fa29-47a9-872d-588bc6cedb66", "job-name":"pgo-deploy"}, Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:"pgo-deploy", Image:"registry.developers.crunchydata.com/crunchydata/pgo-deployer:centos7-4.3.1", Command:[]string{"/pgo-deploy.sh"}, Args:[]string(nil), WorkingDir:"", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar{core.EnvVar{Name:"ARCHIVE_MODE", Value:"true", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"ARCHIVE_TIMEOUT", Value:"60", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"BACKREST", Value:"true", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"BADGER", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"CRUNCHY_DEBUG", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"CREATE_RBAC", Value:"true", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"CCP_IMAGE_PREFIX", Value:"registry.developers.crunchydata.com/crunchydata", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"CCP_IMAGE_TAG", Value:"centos7-12.3-4.3.1", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DB_PASSWORD_LENGTH", Value:"24", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DB_PORT", Value:"5432", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DB_REPLICAS", Value:"0", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DB_USER", Value:"testuser", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DEFAULT_INSTANCE_MEMORY", Value:"128Mi", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DEFAULT_PGBACKREST_MEMORY", Value:"", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DEFAULT_PGBOUNCER_MEMORY", Value:"", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DEPLOY_ACTION", Value:"install", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DISABLE_AUTO_FAILOVER", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DISABLE_FSGROUP", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"DYNAMIC_RBAC", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"EXPORTERPORT", Value:"9187", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"METRICS", Value:"false", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"NAMESPACE", Value:"pgo", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"NAMESPACE_MODE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGBADGERPORT", Value:"10000", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_ADMIN_PASSWORD", Value:"password", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_ADMIN_PERMS", Value:"", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_ADMIN_ROLE_NAME", Value:"pgoadmin", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_ADMIN_USERNAME", Value:"admin", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_CLIENT_VERSION", Value:"v4.3.1", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_IMAGE_PREFIX", Value:"registry.developers.crunchydata.com/crunchydata", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_IMAGE_TAG", Value:"centos7-4.3.1", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_INSTALLATION_NAME", Value:"devtest", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PGO_OPERATOR_NAMESPACE", Value:"pgo", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"SCHEDULER_TIMEOUT", Value:"3600", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"BACKREST_STORAGE", Value:"hostpathstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"BACKUP_STORAGE", Value:"hostpathstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"PRIMARY_STORAGE", Value:"hostpathstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"REPLICA_STORAGE", Value:"hostpathstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"WAL_STORAGE", Value:"", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE1_NAME", Value:"hostpathstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE1_ACCESS_MODE", Value:"ReadWriteMany", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE1_SIZE", Value:"1G", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE1_TYPE", Value:"create", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE2_NAME", Value:"replicastorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE2_ACCESS_MODE", Value:"ReadWriteMany", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE2_SIZE", Value:"700M", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE2_TYPE", Value:"create", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE3_NAME", Value:"nfsstorage", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE3_ACCESS_MODE", Value:"ReadWriteMany", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE3_SIZE", Value:"1G", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE3_TYPE", Value:"create", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE3_SUPPLEMENTAL_GROUPS", Value:"65534", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_NAME", Value:"nfsstoragered", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_ACCESS_MODE", Value:"ReadWriteMany", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_SIZE", Value:"1G", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_MATCH_LABEL", Value:"crunchyzone=red", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_TYPE", Value:"create", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE4_SUPPLEMENTAL_GROUPS", Value:"65534", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE5_NAME", Value:"storageos", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE5_ACCESS_MODE", Value:"ReadWriteOnce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE5_SIZE", Value:"5Gi", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE5_TYPE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE5_CLASS", Value:"fast", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE6_NAME", Value:"primarysite", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE6_ACCESS_MODE", Value:"ReadWriteOnce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE6_SIZE", Value:"4G", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE6_TYPE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE6_CLASS", Value:"primarysite", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE7_NAME", Value:"alternatesite", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE7_ACCESS_MODE", Value:"ReadWriteOnce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE7_SIZE", Value:"4G", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE7_TYPE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE7_CLASS", Value:"alternatesite", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE8_NAME", Value:"gce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE8_ACCESS", Value:"ReadWriteOnce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE8_SIZE", Value:"300M", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE8_TYPE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE8_CLASS", Value:"standard", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE9_NAME", Value:"rook", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE9_ACCESS_MODE", Value:"ReadWriteOnce", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE9_SIZE", Value:"1Gi", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE9_TYPE", Value:"dynamic", ValueFrom:(core.EnvVarSource)(nil)}, core.EnvVar{Name:"STORAGE9_CLASS", Value:"rook-ceph-block", ValueFrom:(core.EnvVarSource)(nil)}}, Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList(nil)}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(core.Probe)(nil), ReadinessProbe:(core.Probe)(nil), StartupProbe:(core.Probe)(nil), Lifecycle:(core.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"IfNotPresent", SecurityContext:(core.SecurityContext)(nil), Stdin:false, StdinOnce:false, TTY:false}}, EphemeralContainers:[]core.EphemeralContainer(nil), RestartPolicy:"Never", TerminationGracePeriodSeconds:(int64)(0xc007b3e158), ActiveDeadlineSeconds:(int64)(nil), DNSPolicy:"ClusterFirst", NodeSelector:map[string]string(nil), ServiceAccountName:"pgo-deployer-sa", AutomountServiceAccountToken:(bool)(nil), NodeName:"", SecurityContext:(core.PodSecurityContext)(0xc00c97e7e0), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(core.Affinity)(nil), SchedulerName:"default-scheduler", Tolerations:[]core.Toleration(nil), HostAliases:[]core.HostAlias(nil), PriorityClassName:"", Priority:(int32)(nil), PreemptionPolicy:(core.PreemptionPolicy)(nil), DNSConfig:(core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(string)(nil), Overhead:core.ResourceList(nil), EnableServiceLinks:(bool)(nil), TopologySpreadConstraints:[]core.TopologySpreadConstraint(nil)}}: field is immutable

What is the expected behavior? A working operator.

Other information (e.g. detailed explanation, related issues, etc)

Please tell us about your environment:

If possible please run the following on the kubernetes or OpenShift (oc) commands and provide the result: kubectl describe yourPodName kubectl describe pvc kubectl get nodes kubectl log yourPodName

cbandy commented 4 years ago

The Job "pgo-deploy" is invalid: spec.template … field is immutable

It sounds like the Job already exists. Try kubectl -n pgo delete job pgo-deploy then kubectl apply as you have.