From 572d8ca678e72812f5a06ad41d599d7e6b6f169d Mon Sep 17 00:00:00 2001 From: Jason O'Donnell <2160810+jasonodonnell@users.noreply.github.com> Date: Wed, 10 Apr 2019 10:49:52 -0400 Subject: [PATCH] Add ansible playbooks and documentation --- .gitignore | 1 + ansible/README.md | 15 + ansible/ansible.cfg | 5 + ansible/crunchy_logo.png | Bin 0 -> 403323 bytes ansible/inventory | 138 ++++ ansible/main.yml | 10 + ansible/roles/pgo-metrics/defaults/main.yml | 9 + ansible/roles/pgo-metrics/tasks/cleanup.yml | 79 ++ ansible/roles/pgo-metrics/tasks/grafana.yml | 54 ++ .../roles/pgo-metrics/tasks/kubernetes.yml | 11 + .../pgo-metrics/tasks/kubernetes_auth.yml | 4 + ansible/roles/pgo-metrics/tasks/main.yml | 42 ++ ansible/roles/pgo-metrics/tasks/openshift.yml | 11 + .../pgo-metrics/tasks/openshift_auth.yml | 25 + .../pgo-metrics/tasks/preflight-grafana.yml | 17 + .../tasks/preflight-prometheus.yml | 12 + .../roles/pgo-metrics/tasks/prometheus.yml | 45 ++ .../templates/grafana-deployment.json.j2 | 89 +++ .../pgo-metrics/templates/grafana-pvc.json.j2 | 18 + .../templates/grafana-secret.json.j2 | 12 + .../templates/grafana-service.json.j2 | 26 + .../templates/prometheus-deployment.json.j2 | 63 ++ .../templates/prometheus-pvc.json.j2 | 18 + .../templates/prometheus-rbac.json.j2 | 51 ++ .../templates/prometheus-service.json.j2 | 26 + ansible/roles/pgo-metrics/vars/openshift.yml | 2 + ansible/roles/pgo-operator/defaults/main.yml | 20 + .../files/crds/pgbackups-crd.yaml | 14 + .../files/crds/pgclusters-crd.yaml | 14 + .../files/crds/pgpolicies-crd.yaml | 14 + .../files/crds/pgreplicas-crd.yaml | 14 + .../pgo-operator/files/crds/pgtasks-crd.yaml | 14 + .../files/pgo-backrest-repo/aws-s3-ca.crt | 21 + .../files/pgo-backrest-repo/config | 5 + .../files/pgo-backrest-repo/sshd_config | 139 ++++ .../pgo-operator/files/pgo-configs/README.txt | 2 + .../files/pgo-configs/affinity.json | 16 + .../files/pgo-configs/backrest-job.json | 80 +++ .../pgo-configs/backrest-restore-job.json | 94 +++ .../files/pgo-configs/backup-job.json | 71 ++ .../files/pgo-configs/cluster-deployment.json | 199 +++++ .../files/pgo-configs/cluster-roles.yaml | 32 + .../files/pgo-configs/cluster-service.json | 52 ++ .../files/pgo-configs/collect.json | 20 + .../pgo-configs/container-resources.json | 10 + .../pgo-configs/pgbackrest-env-vars.json | 33 + .../pgo-configs/pgbackrest-s3-env-vars.json | 18 + .../files/pgo-configs/pgbadger.json | 33 + .../files/pgo-configs/pgbench-job.json | 105 +++ .../files/pgo-configs/pgbouncer-template.json | 86 +++ .../files/pgo-configs/pgbouncer.ini | 22 + .../files/pgo-configs/pgbouncer_hba.conf | 1 + .../files/pgo-configs/pgdump-job.json | 97 +++ .../files/pgo-configs/pgmonitor-env-vars.json | 3 + .../pgo-backrest-repo-service-template.json | 25 + .../pgo-backrest-repo-template.json | 100 +++ .../files/pgo-configs/pgo.load-template.json | 69 ++ .../files/pgo-configs/pgo.lspvc-template.json | 42 ++ .../pgo-configs/pgo.sqlrunner-template.json | 81 +++ .../pgo-operator/files/pgo-configs/pgorole | 2 + .../files/pgo-configs/pgpool-template.json | 83 +++ .../files/pgo-configs/pgpool.conf | 677 ++++++++++++++++++ .../files/pgo-configs/pgrestore-job.json | 94 +++ .../files/pgo-configs/pool_hba.conf | 67 ++ .../files/pgo-configs/pool_passwd | 2 + .../files/pgo-configs/pvc-matchlabels.json | 1 + .../files/pgo-configs/pvc-storageclass.json | 22 + .../pgo-operator/files/pgo-configs/pvc.json | 24 + .../files/pgo-configs/rmdata-job.json | 53 ++ .../pgo-operator/files/pgo-configs/users.txt | 2 + ansible/roles/pgo-operator/files/service.json | 25 + ansible/roles/pgo-operator/tasks/certs.yml | 47 ++ ansible/roles/pgo-operator/tasks/cleanup.yml | 175 +++++ ansible/roles/pgo-operator/tasks/crds.yml | 70 ++ .../roles/pgo-operator/tasks/deprecated.yml | 37 + .../roles/pgo-operator/tasks/kubernetes.yml | 13 + .../pgo-operator/tasks/kubernetes_auth.yml | 4 + ansible/roles/pgo-operator/tasks/main.yml | 201 ++++++ .../roles/pgo-operator/tasks/openshift.yml | 13 + .../pgo-operator/tasks/openshift_auth.yml | 25 + .../roles/pgo-operator/tasks/preflight.yml | 38 + ansible/roles/pgo-operator/tasks/ssh_keys.yml | 36 + .../templates/aws-s3-credentials.yaml.j2 | 3 + .../templates/cluster-rbac.yaml.j2 | 65 ++ .../pgo-operator/templates/deployment.json.j2 | 160 +++++ .../roles/pgo-operator/templates/pgo.yaml.j2 | 78 ++ .../roles/pgo-operator/templates/pgouser.j2 | 1 + .../pgo-operator/templates/pgouser.local.j2 | 1 + .../roles/pgo-operator/templates/rbac.yaml.j2 | 79 ++ ansible/roles/pgo-operator/vars/main.yml | 4 + ansible/roles/pgo-operator/vars/openshift.yml | 2 + .../pgo-preflight/tasks/check_kubernetes.yml | 13 + .../pgo-preflight/tasks/check_openshift.yml | 40 ++ ansible/roles/pgo-preflight/tasks/main.yml | 23 + .../install-with-ansible/_index.md | 28 + .../installation/_index.md | 6 + .../installation/installing-ansible.md | 29 + .../installation/installing-metrics.md | 92 +++ .../installation/installing-operator.md | 111 +++ .../install-with-ansible/prereq/_index.md | 6 + .../prereq/prerequisites.md | 264 +++++++ .../install-with-ansible/uninstall/_index.md | 6 + .../uninstall/uninstalling-metrics.md | 21 + .../uninstall/uninstalling-operator.md | 29 + 104 files changed, 5101 insertions(+) create mode 100644 ansible/README.md create mode 100644 ansible/ansible.cfg create mode 100644 ansible/crunchy_logo.png create mode 100644 ansible/inventory create mode 100644 ansible/main.yml create mode 100644 ansible/roles/pgo-metrics/defaults/main.yml create mode 100644 ansible/roles/pgo-metrics/tasks/cleanup.yml create mode 100644 ansible/roles/pgo-metrics/tasks/grafana.yml create mode 100644 ansible/roles/pgo-metrics/tasks/kubernetes.yml create mode 100644 ansible/roles/pgo-metrics/tasks/kubernetes_auth.yml create mode 100644 ansible/roles/pgo-metrics/tasks/main.yml create mode 100644 ansible/roles/pgo-metrics/tasks/openshift.yml create mode 100644 ansible/roles/pgo-metrics/tasks/openshift_auth.yml create mode 100644 ansible/roles/pgo-metrics/tasks/preflight-grafana.yml create mode 100644 ansible/roles/pgo-metrics/tasks/preflight-prometheus.yml create mode 100644 ansible/roles/pgo-metrics/tasks/prometheus.yml create mode 100644 ansible/roles/pgo-metrics/templates/grafana-deployment.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/grafana-pvc.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/grafana-secret.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/grafana-service.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/prometheus-deployment.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/prometheus-pvc.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/prometheus-rbac.json.j2 create mode 100644 ansible/roles/pgo-metrics/templates/prometheus-service.json.j2 create mode 100644 ansible/roles/pgo-metrics/vars/openshift.yml create mode 100644 ansible/roles/pgo-operator/defaults/main.yml create mode 100644 ansible/roles/pgo-operator/files/crds/pgbackups-crd.yaml create mode 100644 ansible/roles/pgo-operator/files/crds/pgclusters-crd.yaml create mode 100644 ansible/roles/pgo-operator/files/crds/pgpolicies-crd.yaml create mode 100644 ansible/roles/pgo-operator/files/crds/pgreplicas-crd.yaml create mode 100644 ansible/roles/pgo-operator/files/crds/pgtasks-crd.yaml create mode 100644 ansible/roles/pgo-operator/files/pgo-backrest-repo/aws-s3-ca.crt create mode 100644 ansible/roles/pgo-operator/files/pgo-backrest-repo/config create mode 100644 ansible/roles/pgo-operator/files/pgo-backrest-repo/sshd_config create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/README.txt create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/affinity.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/backrest-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/backrest-restore-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/backup-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/cluster-deployment.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/cluster-roles.yaml create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/cluster-service.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/collect.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/container-resources.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbackrest-env-vars.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbackrest-s3-env-vars.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbadger.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbench-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbouncer-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbouncer.ini create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgbouncer_hba.conf create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgdump-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgmonitor-env-vars.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgo-backrest-repo-service-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgo-backrest-repo-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgo.load-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgo.lspvc-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgo.sqlrunner-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgorole create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgpool-template.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgpool.conf create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pgrestore-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pool_hba.conf create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pool_passwd create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pvc-matchlabels.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pvc-storageclass.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/pvc.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/rmdata-job.json create mode 100644 ansible/roles/pgo-operator/files/pgo-configs/users.txt create mode 100644 ansible/roles/pgo-operator/files/service.json create mode 100644 ansible/roles/pgo-operator/tasks/certs.yml create mode 100644 ansible/roles/pgo-operator/tasks/cleanup.yml create mode 100644 ansible/roles/pgo-operator/tasks/crds.yml create mode 100644 ansible/roles/pgo-operator/tasks/deprecated.yml create mode 100644 ansible/roles/pgo-operator/tasks/kubernetes.yml create mode 100644 ansible/roles/pgo-operator/tasks/kubernetes_auth.yml create mode 100644 ansible/roles/pgo-operator/tasks/main.yml create mode 100644 ansible/roles/pgo-operator/tasks/openshift.yml create mode 100644 ansible/roles/pgo-operator/tasks/openshift_auth.yml create mode 100644 ansible/roles/pgo-operator/tasks/preflight.yml create mode 100644 ansible/roles/pgo-operator/tasks/ssh_keys.yml create mode 100644 ansible/roles/pgo-operator/templates/aws-s3-credentials.yaml.j2 create mode 100644 ansible/roles/pgo-operator/templates/cluster-rbac.yaml.j2 create mode 100644 ansible/roles/pgo-operator/templates/deployment.json.j2 create mode 100644 ansible/roles/pgo-operator/templates/pgo.yaml.j2 create mode 100644 ansible/roles/pgo-operator/templates/pgouser.j2 create mode 100644 ansible/roles/pgo-operator/templates/pgouser.local.j2 create mode 100644 ansible/roles/pgo-operator/templates/rbac.yaml.j2 create mode 100644 ansible/roles/pgo-operator/vars/main.yml create mode 100644 ansible/roles/pgo-operator/vars/openshift.yml create mode 100644 ansible/roles/pgo-preflight/tasks/check_kubernetes.yml create mode 100644 ansible/roles/pgo-preflight/tasks/check_openshift.yml create mode 100644 ansible/roles/pgo-preflight/tasks/main.yml create mode 100644 hugo/content/Installation/install-with-ansible/_index.md create mode 100644 hugo/content/Installation/install-with-ansible/installation/_index.md create mode 100644 hugo/content/Installation/install-with-ansible/installation/installing-ansible.md create mode 100644 hugo/content/Installation/install-with-ansible/installation/installing-metrics.md create mode 100644 hugo/content/Installation/install-with-ansible/installation/installing-operator.md create mode 100644 hugo/content/Installation/install-with-ansible/prereq/_index.md create mode 100644 hugo/content/Installation/install-with-ansible/prereq/prerequisites.md create mode 100644 hugo/content/Installation/install-with-ansible/uninstall/_index.md create mode 100644 hugo/content/Installation/install-with-ansible/uninstall/uninstalling-metrics.md create mode 100644 hugo/content/Installation/install-with-ansible/uninstall/uninstalling-operator.md diff --git a/.gitignore b/.gitignore index a48cf0de7a..a7cea663af 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ public +.DS_Store diff --git a/ansible/README.md b/ansible/README.md new file mode 100644 index 0000000000..a517b90591 --- /dev/null +++ b/ansible/README.md @@ -0,0 +1,15 @@ +# Crunchy Data PostgreSQL Operator Playbook + +
+
+
AIc5hp*?Z)C?MNJ*G$Wys*|JkK_uc%n{%ifv!Uk*)>V0f
z{;_1+#g^Dg((Zm7C{d|@_J Ow!VR+T?48>f!8@2qR
zS8}FrUmC9%CHFc&Kc&{xKz%%}2GAvVr&EQ?`M#GiRh#@;L6T6_PnG5<=8c~X4WdAj
zZ@&hHkZ^@J+Ev!nX=!Py-88y&b6~FzU{pZ#H!~UZm;i
za(uV2?&L>kSHZjI_j|G7NxZyPl9$87N-J#}PsmKO?cwie)1*f5e;DXMAgl$@nTF!@
zCgu3-t9h?Y`qSE-0QnldTPu?3N&1zGrNf-35($N8O&ci!T!F0mA~K%UjmkL1x#g^V
z?h)N_>AxG}WTaPLD#KnJ0>M5>#73kZcJMPle-xJ8u_5hQeLrsj3uByzZMKRuEcAw5
z@a+Q*ft=mDH=V)$`&KMWOv!~L#MDpKHN`35^o`f=@);{b@iIP9ZPm^#n+Aajw^LX?
z1j7BkgL|{(HnOosN7v2tzlvP`Y4#E($O*jGOpeyTjllH6tM2EqdBsvdNkL4|DWpHH
zEb!t;BjT15l9!KrGC%a;s_ZSFMEmg8Vq;8sBE_2H`JpolNu
k(d9}mrI%sGc=JE3KmQDYM$4;Ztx~PzF6
Of4mCD8~zSJzVH}
zNp>4_I9${pdPhg4@7^zCYzKlhV6qagUQuh7S}@Qko^2%fNi{H-X4gYpzTh8wBgyPq
z?(^Pf&4Ku#zFKea|EQB*usqmh=to3#)}Uu;&3jNxODH-p7KTF4)+qE-@?PXSs`@cN
z;tn#zkiZcKXQ>hUpChn3crpeSqbf@AQw<$*BNAc}G{M3kENy99C9J6LnIu>{ZH=A$
z5*&E^=5CTk-KYSmYZs(Gn*}R(