Restore ARTESCA Identity Provider Database

Prerequisites

A PostgreSQL dump of ARTESCA Identity Provider database generated following the Back Up ARTESCA Identity Provider Database procedure.

Procedure

  1. Retrieve the number of ARTESCA Identity Provider replicas.

    [artesca-os@bootstrap ~]$
    
    KEYCLOAK_REPLICAS=$(
        sudo kubectl get --kubeconfig=/etc/kubernetes/admin.conf \
            --namespace artesca-auth keycloak artesca-keycloak \
            --output jsonpath='{ .spec.instances }'
    )
    
  2. Scale down ARTESCA Identity Provider replicas to 0.

    [artesca-os@bootstrap ~]$
    
    sudo kubectl patch --kubeconfig=/etc/kubernetes/admin.conf \
        --namespace artesca-auth keycloak artesca-keycloak --type merge \
        -p '{"spec": {"instances": 0}}'
    
  3. Drop the current ARTESCA Identity Provider database.

    [artesca-os@bootstrap ~]$
    
    sudo kubectl exec --kubeconfig=/etc/kubernetes/admin.conf \
       --namespace artesca-auth $(
            sudo kubectl get --kubeconfig=/etc/kubernetes/admin.conf \
            --namespace artesca-auth pods --output name \
            --selector spilo-role=master
        ) \
        --container postgres \
        -- su postgres -c "psql -c 'DROP DATABASE keycloak'"
    
  4. Inject the ARTESCA Identity Provider database dump.

    [artesca-os@bootstrap ~]$
    
    sudo kubectl exec --kubeconfig=/etc/kubernetes/admin.conf \
        --namespace artesca-auth $(
            sudo kubectl get --kubeconfig=/etc/kubernetes/admin.conf \
            --namespace artesca-auth pods --output name \
            --selector spilo-role=master
        ) \
        --stdin --container postgres \
        -- su postgres -c psql < keycloak.sql
    

    Note

    Replace keycloak.sql with the actual name of your dump.

  5. Restore ARTESCA Identity Provider number of replicas.

    [artesca-os@bootstrap ~]$
    
    sudo kubectl patch --kubeconfig=/etc/kubernetes/admin.conf \
        --namespace artesca-auth keycloak artesca-keycloak \
        -p "{\"spec\": {\"instances\": $KEYCLOAK_REPLICAS}}" --type merge