UNPKG

@grucloud/module-k8s-crunchy-postgres

Version:

GruCloud Module for the Kubernetes Crunchy Data Postgres Operator

178 lines (172 loc) 8.24 kB
// Generated by k8s-manifest2code from crunchy-postgres.yaml const assert = require("assert"); exports.createResources = ({ provider }) => { const pgopgoDeployerSaServiceAccount = provider.makeServiceAccount({ properties: () => ({ apiVersion: "v1", metadata: { name: "pgo-deployer-sa", namespace: "pgo", }, }), }); const pgoDeployerCrClusterRole = provider.makeClusterRole({ properties: () => ({ apiVersion: "rbac.authorization.k8s.io/v1", metadata: { name: "pgo-deployer-cr", }, rules: [ { apiGroups: [""], resources: ["namespaces"], verbs: ["get", "list", "create", "patch", "delete"], }, { apiGroups: [""], resources: ["pods"], verbs: ["list"], }, { apiGroups: [""], resources: ["secrets"], verbs: ["list", "get", "create", "delete"], }, { apiGroups: [""], resources: ["configmaps", "services", "persistentvolumeclaims"], verbs: ["get", "create", "delete", "list"], }, { apiGroups: [""], resources: ["serviceaccounts"], verbs: ["get", "create", "delete", "patch", "list"], }, { apiGroups: ["apps", "extensions"], resources: ["deployments", "replicasets"], verbs: ["get", "list", "watch", "create", "delete"], }, { apiGroups: ["apiextensions.k8s.io"], resources: ["customresourcedefinitions"], verbs: ["get", "create", "delete"], }, { apiGroups: ["rbac.authorization.k8s.io"], resources: [ "clusterroles", "clusterrolebindings", "roles", "rolebindings", ], verbs: ["get", "create", "delete", "bind", "escalate"], }, { apiGroups: ["rbac.authorization.k8s.io"], resources: ["roles"], verbs: ["create", "delete"], }, { apiGroups: ["batch"], resources: ["jobs"], verbs: ["delete", "list"], }, { apiGroups: ["crunchydata.com"], resources: ["pgclusters", "pgreplicas", "pgpolicies", "pgtasks"], verbs: ["delete", "list"], }, ], }), }); const pgopgoDeployerCmConfigMap = provider.makeConfigMap({ properties: () => ({ apiVersion: "v1", metadata: { name: "pgo-deployer-cm", namespace: "pgo", }, data: { "values.yaml": '# =====================\n# Configuration Options\n# More info for these options can be found in the docs\n# https://access.crunchydata.com/documentation/postgres-operator/latest/installation/configuration/\n# =====================\narchive_mode: "true"\narchive_timeout: "60"\nbackrest_aws_s3_bucket: ""\nbackrest_aws_s3_endpoint: ""\nbackrest_aws_s3_key: ""\nbackrest_aws_s3_region: ""\nbackrest_aws_s3_secret: ""\nbackrest_aws_s3_uri_style: ""\nbackrest_aws_s3_verify_tls: "true"\nbackrest_port: "2022"\nbadger: "false"\nccp_image_prefix: "registry.developers.crunchydata.com/crunchydata"\nccp_image_pull_secret: ""\nccp_image_pull_secret_manifest: ""\nccp_image_tag: "centos8-13.2-4.6.2"\ncreate_rbac: "true"\ncrunchy_debug: "false"\ndb_name: ""\ndb_password_age_days: "0"\ndb_password_length: "24"\ndb_port: "5432"\ndb_replicas: "0"\ndb_user: "testuser"\ndefault_instance_memory: "128Mi"\ndefault_pgbackrest_memory: "48Mi"\ndefault_pgbouncer_memory: "24Mi"\ndefault_exporter_memory: "24Mi"\ndelete_operator_namespace: "false"\ndelete_watched_namespaces: "false"\ndisable_auto_failover: "false"\ndisable_fsgroup: "false"\nreconcile_rbac: "true"\nexporterport: "9187"\nmetrics: "false"\nnamespace: "pgo"\nnamespace_mode: "dynamic"\npgbadgerport: "10000"\npgo_add_os_ca_store: "false"\npgo_admin_password: "examplepassword"\npgo_admin_perms: "*"\npgo_admin_role_name: "pgoadmin"\npgo_admin_username: "admin"\npgo_apiserver_port: "8443"\npgo_apiserver_url: "https://postgres-operator"\npgo_client_cert_secret: "pgo.tls"\npgo_client_container_install: "false"\npgo_client_install: "true"\npgo_client_version: "4.6.2"\npgo_cluster_admin: "false"\npgo_disable_eventing: "false"\npgo_disable_tls: "false"\npgo_image_prefix: "registry.developers.crunchydata.com/crunchydata"\npgo_image_pull_secret: ""\npgo_image_pull_secret_manifest: ""\npgo_image_tag: "centos8-4.6.2"\npgo_installation_name: "devtest"\npgo_noauth_routes: ""\npgo_operator_namespace: "pgo"\npgo_tls_ca_store: ""\npgo_tls_no_verify: "false"\npod_anti_affinity: "preferred"\npod_anti_affinity_pgbackrest: ""\npod_anti_affinity_pgbouncer: ""\nscheduler_timeout: "3600"\nservice_type: "ClusterIP"\nsync_replication: "false"\nbackrest_storage: "default"\nbackup_storage: "default"\nprimary_storage: "default"\nreplica_storage: "default"\nwal_storage: ""\nstorage1_name: "default"\nstorage1_access_mode: "ReadWriteOnce"\nstorage1_size: "1G"\nstorage1_type: "dynamic"\nstorage2_name: "hostpathstorage"\nstorage2_access_mode: "ReadWriteMany"\nstorage2_size: "1G"\nstorage2_type: "create"\nstorage3_name: "nfsstorage"\nstorage3_access_mode: "ReadWriteMany"\nstorage3_size: "1G"\nstorage3_type: "create"\nstorage3_supplemental_groups: "65534"\nstorage4_name: "nfsstoragered"\nstorage4_access_mode: "ReadWriteMany"\nstorage4_size: "1G"\nstorage4_match_labels: "crunchyzone=red"\nstorage4_type: "create"\nstorage4_supplemental_groups: "65534"\nstorage5_name: "storageos"\nstorage5_access_mode: "ReadWriteOnce"\nstorage5_size: "5Gi"\nstorage5_type: "dynamic"\nstorage5_class: "fast"\nstorage6_name: "primarysite"\nstorage6_access_mode: "ReadWriteOnce"\nstorage6_size: "4G"\nstorage6_type: "dynamic"\nstorage6_class: "primarysite"\nstorage7_name: "alternatesite"\nstorage7_access_mode: "ReadWriteOnce"\nstorage7_size: "4G"\nstorage7_type: "dynamic"\nstorage7_class: "alternatesite"\nstorage8_name: "gce"\nstorage8_access_mode: "ReadWriteOnce"\nstorage8_size: "300M"\nstorage8_type: "dynamic"\nstorage8_class: "standard"\nstorage9_name: "rook"\nstorage9_access_mode: "ReadWriteOnce"\nstorage9_size: "1Gi"\nstorage9_type: "dynamic"\nstorage9_class: "rook-ceph-block"', }, }), }); const pgoDeployerCrbClusterRoleBinding = provider.makeClusterRoleBinding({ properties: () => ({ apiVersion: "rbac.authorization.k8s.io/v1", metadata: { name: "pgo-deployer-crb", }, roleRef: { apiGroup: "rbac.authorization.k8s.io", kind: "ClusterRole", name: "pgo-deployer-cr", }, subjects: [ { kind: "ServiceAccount", name: "pgo-deployer-sa", namespace: "pgo", }, ], }), }); const pgopgoDeployJob = provider.makeJob({ properties: () => ({ apiVersion: "batch/v1", metadata: { name: "pgo-deploy", namespace: "pgo", }, spec: { backoffLimit: 0, template: { metadata: { name: "pgo-deploy", }, spec: { serviceAccountName: "pgo-deployer-sa", restartPolicy: "Never", containers: [ { name: "pgo-deploy", image: "registry.developers.crunchydata.com/crunchydata/pgo-deployer:centos8-4.6.2", imagePullPolicy: "IfNotPresent", env: [ { name: "DEPLOY_ACTION", value: "install", }, ], volumeMounts: [ { name: "deployer-conf", mountPath: "/conf", }, ], }, ], volumes: [ { name: "deployer-conf", configMap: { name: "pgo-deployer-cm", }, }, ], }, }, }, }), }); return { pgopgoDeployerSaServiceAccount, pgoDeployerCrClusterRole, pgopgoDeployerCmConfigMap, pgoDeployerCrbClusterRoleBinding, pgopgoDeployJob, }; };