Removing Management subsystem postgres resources on Kubernetes

When you remove the API Connect Management subsystem by deleting its files, some postgres resources from Crunchy Data remain, and must be deleted manually before you attempt to re-install the Management subsystem.

About this task

Sometimes when you remove the Management subsystem, some postgres resources remain and must be deleted manually.

To determine whether you need to delete any postgres resources, use the kubectl get command and specify vendor=crunchydata; as shown in the following example.

$ kubectl get pods -n apic -l vendor=crunchydata
NAME                                                              READY   STATUS      RESTARTS   AGE
backrest-backup-production-mgmt-mymgmtsite123-postgres-k77xj      0/1     Completed   0          17h
production-mgmt-mymgmtsite123-postgres-backrest-shared-repk4kzc   1/1     Running     0          2d21h
production-mgmt-mymgmtsite123-postgres-full-sch-backup-9ktp5      0/1     Completed   0          164m

$ kubectl get deployments -n apic -l vendor=crunchydata
NAME                                                          READY   UP-TO-DATE   AVAILABLE   AGE
production-mgmt-mymgmtsite123-postgres-backrest-shared-repo   1/1     1            1           2d21h

$ kubectl get sa -n apic -l vendor=crunchydata
No resources found in apic namespace.

$ kubectl get jobs -n apic -l vendor=crunchydata
NAME                                                     COMPLETIONS   DURATION   AGE
backrest-backup-production-mgmt-mymgmtsite123-postgres   1/1           10s        17h
production-mgmt-mymgmtsite123-postgres-full-sch-backup   1/1           37s        164m
production-mgmt-mymgmtsite123-postgres-rmdata-cemg       1/1           20s        14m

$ kubectl get roles -n apic -l vendor=crunchydata
No resources found in apic namespace.

$ kubectl get rolebindings -n apic -l vendor=crunchydata
No resources found in apic namespace.

$ kubectl get secrets -n apic -l vendor=crunchydata
NAME                                                          TYPE     DATA   AGE
production-mgmt-7bc754c7-postgres-backrest-repo-config        Opaque   9      6d23h
production-mgmt-7bc754c7-postgres-postgres-secret             Opaque   2      6d23h
production-mgmt-7bc754c7-postgres-primaryuser-secret          Opaque   2      6d23h
production-mgmt-7bc754c7-postgres-testuser-secret             Opaque   2      6d23h
production-mgmt-8aac6b4e-postgres-backrest-repo-config        Opaque   9      6d22h
production-mgmt-8aac6b4e-postgres-postgres-secret             Opaque   2      6d22h
production-mgmt-8aac6b4e-postgres-primaryuser-secret          Opaque   2      6d22h
production-mgmt-8aac6b4e-postgres-testuser-secret             Opaque   2      6d22h
production-mgmt-mymgmtsite123-postgres-backrest-repo-config   Opaque   9      2d21h
production-mgmt-mymgmtsite123-postgres-postgres-secret        Opaque   2      2d21h
production-mgmt-mymgmtsite123-postgres-primaryuser-secret     Opaque   2      2d21h
production-mgmt-mymgmtsite123-postgres-testuser-secret        Opaque   2      2d21h

$ kubectl get cm -n apic -l vendor=crunchydata
NAME                                                  DATA   AGE
production-mgmt-mymgmtsite123-postgres-config         0      2d21h
production-mgmt-mymgmtsite123-postgres-leader         0      2d21h
production-mgmt-mymgmtsite123-postgres-pgbouncer-cm   2      2d21h
production-mgmt-mymgmtsite123-postgres-pgha-config    5      2d21h

Procedure

For each type of postgres resource, check to see if any resources are available and if so, delete the resources:
  • pods:
    kubectl get pods -n <namespace> -l vendor=crunchydata
    kubectl delete pods -n <namespace> -l vendor=crunchydata
  • deployments:
    kubectl get deployments -n <namespace> -l vendor=crunchydata
    kubectl delete deployments -n <namespace> -l vendor=crunchydata
  • service accounts:
    kubectl get sa -n <namespace> -l vendor=crunchydata
    kubectl delete sa -n <namespace> -l vendor=crunchydata
  • jobs:
    kubectl get jobs -n <namespace> -l vendor=crunchydata
    kubectl delete jobs -n <namespace> -l vendor=crunchydata
  • roles:
    kubectl get roles -n <namespace> -l vendor=crunchydata
    kubectl delete roles -n <namespace> -l vendor=crunchydata
    
  • rolebindings:
    kubectl get rolebindings -n <namespace> -l vendor=crunchydata
    kubectl delete rolebindings -n <namespace> -l vendor=crunchydata
    
  • secrets:
    kubectl get secrets -n <namespace> -l vendor=crunchydata
    kubectl delete secrets -n <namespace> -l vendor=crunchydata
    
  • cm:
    kubectl get cm -n <namespace> -l vendor=crunchydata
    kubectl delete cm -n <namespace> -l vendor=crunchydata
    
  • pgtasks:
    kubectl get pgtasks.crunchydata.com -n <namespace> -l vendor=crunchydata
    kubectl delete pgtasks.crunchydata.com -n <namespace>
    
  • pgreplica:
    kubectl get pgreplica -n <management_namespace> -l vendor=crunchydata
    kubectl delete pgreplica -n <management_namespace> -l vendor=crunchydata