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¶
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 }' )
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}}'
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'"
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.sqlwith the actual name of your dump.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

