From b13f157dd07aaaf18d02fc7b4d438340311bcab0 Mon Sep 17 00:00:00 2001 From: Daniel Paul Date: Fri, 28 Nov 2025 19:22:24 +0100 Subject: [PATCH 1/4] use px pxb for pxb --- scripts/helm-backup | 27 ++++++++++++++++--- scripts/helm-backup-apps | 56 +++++++++++++++++++++++++++------------- scripts/install-px | 6 +++++ 3 files changed, 67 insertions(+), 22 deletions(-) diff --git a/scripts/helm-backup b/scripts/helm-backup index 154823c9..07adce45 100644 --- a/scripts/helm-backup +++ b/scripts/helm-backup @@ -1,5 +1,24 @@ NAMESPACE=central -VERSION=2.9.1 +VERSION=2.10.0 + +kubectl apply -f - </dev/null) -kubectl cp -n $NAMESPACE $BACKUP_POD_NAME:pxbackupctl/linux/pxbackupctl /usr/bin/pxbackupctl -chmod +x /usr/bin/pxbackupctl +#BACKUP_POD_NAME=$(kubectl get pods -n $NAMESPACE -l app=px-backup -o jsonpath='{.items[0].metadata.name}' 2>/dev/null) +#kubectl cp -n $NAMESPACE $BACKUP_POD_NAME:pxbackupctl/linux/pxbackupctl /usr/bin/pxbackupctl +#chmod +x /usr/bin/pxbackupctl diff --git a/scripts/helm-backup-apps b/scripts/helm-backup-apps index ad5ec5fd..cc4c5e98 100644 --- a/scripts/helm-backup-apps +++ b/scripts/helm-backup-apps @@ -1,24 +1,41 @@ -BACKUP_POD_IP=$(kubectl get pods -n central -l app=px-backup -o jsonpath='{.items[*].status.podIP}' 2>/dev/null) AWS_ACCESS_KEY=$(sed -n 's/aws_access_key_id[ =]*//p' /root/.aws/credentials 2>/dev/null) AWS_SECRET_KEY=$(sed -n 's/aws_secret_access_key[ =]*//p' /root/.aws/credentials 2>/dev/null) IMDSTOKEN=$(curl -s -X PUT 'http://169.254.169.254/latest/api/token' -H 'X-aws-ec2-metadata-token-ttl-seconds: 120') pubIP=$(curl -H "X-aws-ec2-metadata-token: $IMDSTOKEN" -s http://169.254.169.254/latest/meta-data/public-ipv4) -backupPort=$(kubectl get svc px-backup-ui -n central -o=jsonpath='{.spec.ports[?(@.port==80)].nodePort}') -client_secret=$(kubectl get secret --namespace central pxc-backup-secret -o jsonpath={.data.OIDC_CLIENT_SECRET} | base64 --decode) +authPort=$(kubectl get svc px-central-ui -n central -o=jsonpath='{.spec.ports[?(@.port==80)].nodePort}') +ADMIN_PW=$(kubectl get secret pxcentral-keycloak-http -n central -o jsonpath="{.data.password}" | base64 --decode) -# Configures backup with clusters and locations -pxbackupctl login -s http://$pubIP:$backupPort -u admin -p admin -pxbackupctl create cloudcredential --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY -e $BACKUP_POD_IP:10002 --orgID default -n s3 -p aws -sleep 5 -cloud_credential_uid=$(pxbackupctl get cloudcredential -e $BACKUP_POD_IP:10002 --orgID default -o json | jq -cr '.[0].metadata.uid') -pxbackupctl create backuplocation --cloud-credential-name s3 --cloud-credential-Uid $cloud_credential_uid -n aws -p s3 --s3-endpoint https://s3.$aws_region.amazonaws.com --path $BACKUP_BUCKET --s3-region $aws_region -e $BACKUP_POD_IP:10002 --orgID default -pxbackupctl create schedulepolicy --interval-minutes 15 --interval-retain 12 --name 15min-schedule -e $BACKUP_POD_IP:10002 --orgID default -sleep 5 -ssh master-2 cat /root/.kube/config > /cluster-2-kube-config -ssh master-3 cat /root/.kube/config > /cluster-3-kube-config -pxbackupctl create cluster --name cluster-1 -k /root/.kube/.config -e $BACKUP_POD_IP:10002 --orgID default -pxbackupctl create cluster --name cluster-2 -k /cluster-2-kube-config -e $BACKUP_POD_IP:10002 --orgID default -pxbackupctl create cluster --name cluster-3 -k /cluster-3-kube-config -e $BACKUP_POD_IP:10002 --orgID default +#expose px-backup api grpc endpoint +kubectl apply -f - < /tmp/cluster-2-kube-config +ssh master-3 cat /root/.kube/config > /tmp/cluster-3-kube-config +px pxb connect cluster --name cluster-2 --kubeconfig /tmp/cluster-2-kube-config +px pxb connect cluster --name cluster-3 --kubeconfig /tmp/cluster-3-kube-config # Patches Prometheus operator to allow multiple instances to run kubectl patch deployment prometheus-operator -n kube-system --type=json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-namespaces=kube-system" }]' @@ -29,13 +46,16 @@ ssh master-3 << EOF kubectl patch deployment prometheus-operator -n kube-system --type=json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-namespaces=kube-system" }]' EOF +PXB_URL=$(kubectl get svc px-backup-ui -n central -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}') + cat <> /etc/motd +================================================+ SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ -PX-Central User Interface Access URL : http://$pubIP:$backupPort +PX-Central User Interface Access URL : http://$PXB_URL +Alternate User Interface Access URL : http://$pubIP:$backupPort PX-Central admin user name: admin -PX-Central admin user password: admin +PX-Central admin user password: $ADMIN_PW +================================================+ EOF diff --git a/scripts/install-px b/scripts/install-px index e2bc2fc3..bfda55d4 100644 --- a/scripts/install-px +++ b/scripts/install-px @@ -143,6 +143,12 @@ done kubectl apply -f /tmp/px.yml +# Install px cli +curl -L -o /tmp/pxcli.tgz https://mirrors.portworx.com/packages/px-cli/latest/px-v1.0.0.linux.amd64.tar.gz +tar -xzf /tmp/pxcli.tgz -C /tmp/ +chmod +x /tmp/px/bin/px* +cp /tmp/px/bin/* /usr/local/bin/ + # Install pxctl.sh cp /assets/pxctl.sh /usr/bin/pxctl chmod 755 /usr/bin/pxctl From cd9b65fe67a120b4ff0c6aa4020eb7525e9f10fd Mon Sep 17 00:00:00 2001 From: Daniel Paul Date: Sun, 30 Nov 2025 20:27:36 +0100 Subject: [PATCH 2/4] px pxb cli on ocp kubevirt --- scripts/helm-backup-apps | 1 - scripts/helm-backup-ocp4-kubevirt | 53 +++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/scripts/helm-backup-apps b/scripts/helm-backup-apps index cc4c5e98..176ca5cd 100644 --- a/scripts/helm-backup-apps +++ b/scripts/helm-backup-apps @@ -53,7 +53,6 @@ cat <> /etc/motd SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ PX-Central User Interface Access URL : http://$PXB_URL -Alternate User Interface Access URL : http://$pubIP:$backupPort PX-Central admin user name: admin PX-Central admin user password: $ADMIN_PW +================================================+ diff --git a/scripts/helm-backup-ocp4-kubevirt b/scripts/helm-backup-ocp4-kubevirt index 0153eab0..b97cd10c 100644 --- a/scripts/helm-backup-ocp4-kubevirt +++ b/scripts/helm-backup-ocp4-kubevirt @@ -15,6 +15,23 @@ spec: wildcardPolicy: None EOF +# create ocp route for central UI +cat </dev/null) AWS_SECRET_KEY=$(sed -n 's/aws_secret_access_key[ =]*//p' /root/.aws/credentials 2>/dev/null) backupPort=80 -client_secret=$(kubectl get secret --namespace central pxc-backup-secret -o jsonpath={.data.OIDC_CLIENT_SECRET} | base64 --decode) +authPort=80 +ADMIN_PW=$(kubectl get secret pxcentral-keycloak-http -n central -o jsonpath="{.data.password}" | base64 --decode) +#client_secret=$(kubectl get secret --namespace central pxc-backup-secret -o jsonpath={.data.OIDC_CLIENT_SECRET} | base64 --decode) +px pxb init config --px-backup-api-url $pubIP:$backupPort --pxcentral-auth-url $authIP:$authPort +px pxb set config --pxcentral-verify-ssl false +px pxb login --username admin --password $ADMIN_PW +px pxb create cloudcredential --name aws-credential --provider aws --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY +px pxb create backuplocation --name s3 --provider s3 --path $BACKUP_BUCKET --cloud-credential-name aws-credential --s3-endpoint s3.amazonaws.com --s3-region $aws_region +px pxb create schedulepolicy --name 15min-schedule --interval-minutes 15 --interval-retain 12 +px pxb connect cluster --name cluster-1 --kubeconfig /root/.kube/config # Configures backup with clusters and locations -pxbackupctl login -s http://$pubIP:$backupPort -u admin -p admin -pxbackupctl version -e $BACKUP_POD_IP:10002 -pxbackupctl create cloudcredential --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY -e $BACKUP_POD_IP:10002 --orgID default -n s3 -p aws -sleep 5 -cloud_credential_uid=$(pxbackupctl get cloudcredential -e $BACKUP_POD_IP:10002 --orgID default -o json | jq -cr '.[0].metadata.uid') -pxbackupctl create backuplocation --cloud-credential-name s3 --cloud-credential-Uid $cloud_credential_uid -n $BACKUP_BUCKET -p s3 --s3-endpoint https://s3.$aws_region.amazonaws.com --path $BACKUP_BUCKET --s3-region $aws_region -e $BACKUP_POD_IP:10002 --orgID default -pxbackupctl create schedulepolicy --interval-minutes 15 --interval-retain 12 --name 15min-schedule -e $BACKUP_POD_IP:10002 --orgID default -sleep 5 +#pxbackupctl login -s http://$pubIP:$backupPort -u admin -p admin +#pxbackupctl version -e $BACKUP_POD_IP:10002 +#pxbackupctl create cloudcredential --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY -e $BACKUP_POD_IP:10002 --orgID default -n s3 -p aws +#sleep 5 +#cloud_credential_uid=$(pxbackupctl get cloudcredential -e $BACKUP_POD_IP:10002 --orgID default -o json | jq -cr '.[0].metadata.uid') +#pxbackupctl create backuplocation --cloud-credential-name s3 --cloud-credential-Uid $cloud_credential_uid -n $BACKUP_BUCKET -p s3 --s3-endpoint https://s3.$aws_region.amazonaws.com --path $BACKUP_BUCKET --s3-region $aws_region -e $BACKUP_POD_IP:10002 --orgID default +#pxbackupctl create schedulepolicy --interval-minutes 15 --interval-retain 12 --name 15min-schedule -e $BACKUP_POD_IP:10002 --orgID default +#sleep 5 -pxbackupctl create cluster --name cluster-1 -k /root/.kube/config -e $BACKUP_POD_IP:10002 --orgID default +#pxbackupctl create cluster --name cluster-1 -k /root/.kube/config -e $BACKUP_POD_IP:10002 --orgID default cat <> /etc/motd +================================================+ -How to access PX-BACKUP UI +SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ -PX-Central User Interface Access URL : http://$pubIP:$backupPort +PX-Central User Interface Access URL : http://$pubIP PX-Central admin user name: admin -PX-Central admin user password: admin +PX-Central admin user password: $ADMIN_PW +================================================+ EOF \ No newline at end of file From 37e8ca8b5182df651d6878a6751a2121b4f528d1 Mon Sep 17 00:00:00 2001 From: Daniel Paul Date: Mon, 1 Dec 2025 20:10:54 +0100 Subject: [PATCH 3/4] unify helm-backup-apps scripts --- scripts/helm-backup-apps | 92 ++++++++++++++++++++++++++----- scripts/helm-backup-ocp4-kubevirt | 14 ++--- templates/ocp-backup.yml | 14 +++++ templates/ocp-kubevirt.yml | 2 +- 4 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 templates/ocp-backup.yml diff --git a/scripts/helm-backup-apps b/scripts/helm-backup-apps index 176ca5cd..1b6a0583 100644 --- a/scripts/helm-backup-apps +++ b/scripts/helm-backup-apps @@ -1,10 +1,69 @@ AWS_ACCESS_KEY=$(sed -n 's/aws_access_key_id[ =]*//p' /root/.aws/credentials 2>/dev/null) AWS_SECRET_KEY=$(sed -n 's/aws_secret_access_key[ =]*//p' /root/.aws/credentials 2>/dev/null) -IMDSTOKEN=$(curl -s -X PUT 'http://169.254.169.254/latest/api/token' -H 'X-aws-ec2-metadata-token-ttl-seconds: 120') -pubIP=$(curl -H "X-aws-ec2-metadata-token: $IMDSTOKEN" -s http://169.254.169.254/latest/meta-data/public-ipv4) -authPort=$(kubectl get svc px-central-ui -n central -o=jsonpath='{.spec.ports[?(@.port==80)].nodePort}') ADMIN_PW=$(kubectl get secret pxcentral-keycloak-http -n central -o jsonpath="{.data.password}" | base64 --decode) +if [ "$platform" = ocp4 ]; then + +# create ocp route for backup UI +cat < /tmp/cluster-2-kube-config -ssh master-3 cat /root/.kube/config > /tmp/cluster-3-kube-config -px pxb connect cluster --name cluster-2 --kubeconfig /tmp/cluster-2-kube-config -px pxb connect cluster --name cluster-3 --kubeconfig /tmp/cluster-3-kube-config -# Patches Prometheus operator to allow multiple instances to run -kubectl patch deployment prometheus-operator -n kube-system --type=json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-namespaces=kube-system" }]' +for i in $(seq 2 $clusters); do + ssh master-$i cat /root/.kube/config > /tmp/cluster-$i-kube-config + px pxb connect cluster --name cluster-$i --kubeconfig /tmp/cluster-$i-kube-config +done + +if [ "$platform" != ocp4 ]; then + # Patches Prometheus operator to allow multiple instances to run + kubectl patch deployment prometheus-operator -n kube-system --type=json -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-namespaces=kube-system" }]' + ssh master-2 <> /etc/motd +================================================+ SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ -PX-Central User Interface Access URL : http://$PXB_URL +PX-Central User Interface Access URL : $PXB_URL PX-Central admin user name: admin PX-Central admin user password: $ADMIN_PW +================================================+ diff --git a/scripts/helm-backup-ocp4-kubevirt b/scripts/helm-backup-ocp4-kubevirt index b97cd10c..59d1f64e 100644 --- a/scripts/helm-backup-ocp4-kubevirt +++ b/scripts/helm-backup-ocp4-kubevirt @@ -37,15 +37,15 @@ EOF kubectl patch svc px-backup -n central -p '{"spec":{"type":"LoadBalancer"}}' -BACKUP_POD_IP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") +pubIP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") -while [ $BACKUP_POD_IP = "null" ]; do +while [ $pubIP = "null" ]; do sleep 2 echo "PX Backup grpc LB not ready" - BACKUP_POD_IP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") + pubIP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") done -echo "PX Backup grpc LB ready: $BACKUP_POD_IP" +echo "PX Backup grpc LB ready: $pubIP" # now as the service has a IP assigned lets check if the service is available #curl --connect-timeout 2 $BACKUP_POD_IP:10002 2>/dev/null @@ -60,11 +60,11 @@ sleep 20 # TODO: find a reliable way to detect if grpc is responding # get external px-backup route hostname -pubIP=$(kubectl get route px-backup-ui -n central -o json |jq -r ".status.ingress[0].host") +PXB_URL=$(kubectl get route px-backup-ui -n central -o json |jq -r ".status.ingress[0].host") authIP=$(kubectl get route px-central-ui -n central -o json |jq -r ".status.ingress[0].host") AWS_ACCESS_KEY=$(sed -n 's/aws_access_key_id[ =]*//p' /root/.aws/credentials 2>/dev/null) AWS_SECRET_KEY=$(sed -n 's/aws_secret_access_key[ =]*//p' /root/.aws/credentials 2>/dev/null) -backupPort=80 +backupPort=10002 authPort=80 ADMIN_PW=$(kubectl get secret pxcentral-keycloak-http -n central -o jsonpath="{.data.password}" | base64 --decode) #client_secret=$(kubectl get secret --namespace central pxc-backup-secret -o jsonpath={.data.OIDC_CLIENT_SECRET} | base64 --decode) @@ -92,7 +92,7 @@ cat <> /etc/motd +================================================+ SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ -PX-Central User Interface Access URL : http://$pubIP +PX-Central User Interface Access URL : http://$PXB_URL PX-Central admin user name: admin PX-Central admin user password: $ADMIN_PW +================================================+ diff --git a/templates/ocp-backup.yml b/templates/ocp-backup.yml new file mode 100644 index 00000000..fb875fb7 --- /dev/null +++ b/templates/ocp-backup.yml @@ -0,0 +1,14 @@ +description: Two Cluster OCP with Backup & AsyncDR on a aws vm +scripts: ["install-awscli","install-px", "licenses"] +aws_type: "m6i.xlarge" +platform: "ocp4" +cloud: "aws" +clusters: 2 +nodes: 5 +cluster: + - id: 1 + scripts: ["helm-backup", "helm-backup-apps"] + - id: 2 + scripts: ["clusterpair"] +env: + cloud_drive: "type%3Dgp2%2Csize%3D150" diff --git a/templates/ocp-kubevirt.yml b/templates/ocp-kubevirt.yml index 623ddcff..e476c01f 100644 --- a/templates/ocp-kubevirt.yml +++ b/templates/ocp-kubevirt.yml @@ -9,7 +9,7 @@ cloud: "aws" clusters: 2 cluster: - id: 1 - scripts: [ "kubevirt-apps", "helm-backup", "helm-backup-ocp4-kubevirt"] + scripts: [ "kubevirt-apps", "helm-backup", "helm-backup-apps"] - id: 2 scripts: ["clusterpair"] env: From 7ec2c5a9462f6b0655aed9b4069bee78fbb30d8c Mon Sep 17 00:00:00 2001 From: Daniel Paul Date: Wed, 3 Dec 2025 18:19:10 +0100 Subject: [PATCH 4/4] add grpc availability check --- scripts/helm-backup-apps | 18 +++--- scripts/helm-backup-ocp4-kubevirt | 99 ------------------------------- 2 files changed, 10 insertions(+), 107 deletions(-) delete mode 100644 scripts/helm-backup-ocp4-kubevirt diff --git a/scripts/helm-backup-apps b/scripts/helm-backup-apps index 1b6a0583..65f06f16 100644 --- a/scripts/helm-backup-apps +++ b/scripts/helm-backup-apps @@ -39,19 +39,16 @@ spec: EOF # expose px-backup service to run pxbackupctl - # kubectl patch svc px-backup -n central -p '{"spec":{"type":"LoadBalancer"}}' - kubectl patch svc px-backup -n central -p '{"spec":{"type":"LoadBalancer"}}' backupIP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") while [ $backupIP = "null" ]; do sleep 2 - echo "PX Backup grpc LB not ready" + echo "PX Backup grpc LB not assigned" backupIP=$(kubectl get svc px-backup -n central -o json | jq -r ".status.loadBalancer.ingress[0].hostname") done - - echo "PX Backup grpc LB ready: $backupIP" - sleep 20 + echo "PX Backup grpc LB assigned: $backupIP" + backupPort=10002 authIP=$(kubectl get route px-central-ui -n central -o json |jq -r ".status.ingress[0].host") authPort=80 @@ -83,12 +80,17 @@ spec: EOF backupPort=$(kubectl get svc px-backup-api-grpc -n central -o=jsonpath='{.spec.ports[?(@.port==10002)].nodePort}') PXB_URL=$(kubectl get svc px-backup-ui -n central -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}') - PXB_URL="http://$PXB_URL" fi px pxb init config --px-backup-api-url http://$backupIP:$backupPort --pxcentral-auth-url http://$authIP:$authPort px pxb set config --pxcentral-verify-ssl false px pxb login --username admin --password $ADMIN_PW + +while ! px pxb version; do + echo "waiting for grpc availability" + sleep 2 +done + px pxb create cloudcredential --name aws-credential --provider aws --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY px pxb create backuplocation --name s3 --provider s3 --path $BACKUP_BUCKET --cloud-credential-name aws-credential --s3-endpoint s3.amazonaws.com --s3-region $aws_region px pxb create schedulepolicy --name 15min-schedule --interval-minutes 15 --interval-retain 12 @@ -118,7 +120,7 @@ cat <> /etc/motd +================================================+ SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES +================================================+ -PX-Central User Interface Access URL : $PXB_URL +PX-Central User Interface Access URL : http://$PXB_URL PX-Central admin user name: admin PX-Central admin user password: $ADMIN_PW +================================================+ diff --git a/scripts/helm-backup-ocp4-kubevirt b/scripts/helm-backup-ocp4-kubevirt deleted file mode 100644 index 59d1f64e..00000000 --- a/scripts/helm-backup-ocp4-kubevirt +++ /dev/null @@ -1,99 +0,0 @@ -# create ocp route for backup UI -cat </dev/null -#res=$? -#while [ "$res" != "23" ]; do -# echo "Waiting for grpc to accept connections. Ret: $res " -# sleep 2 -# curl --connect-timeout 2 $BACKUP_POD_IP:10002 2>/dev/null -# res=$? -#done -sleep 20 -# TODO: find a reliable way to detect if grpc is responding - -# get external px-backup route hostname -PXB_URL=$(kubectl get route px-backup-ui -n central -o json |jq -r ".status.ingress[0].host") -authIP=$(kubectl get route px-central-ui -n central -o json |jq -r ".status.ingress[0].host") -AWS_ACCESS_KEY=$(sed -n 's/aws_access_key_id[ =]*//p' /root/.aws/credentials 2>/dev/null) -AWS_SECRET_KEY=$(sed -n 's/aws_secret_access_key[ =]*//p' /root/.aws/credentials 2>/dev/null) -backupPort=10002 -authPort=80 -ADMIN_PW=$(kubectl get secret pxcentral-keycloak-http -n central -o jsonpath="{.data.password}" | base64 --decode) -#client_secret=$(kubectl get secret --namespace central pxc-backup-secret -o jsonpath={.data.OIDC_CLIENT_SECRET} | base64 --decode) - -px pxb init config --px-backup-api-url $pubIP:$backupPort --pxcentral-auth-url $authIP:$authPort -px pxb set config --pxcentral-verify-ssl false -px pxb login --username admin --password $ADMIN_PW -px pxb create cloudcredential --name aws-credential --provider aws --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY -px pxb create backuplocation --name s3 --provider s3 --path $BACKUP_BUCKET --cloud-credential-name aws-credential --s3-endpoint s3.amazonaws.com --s3-region $aws_region -px pxb create schedulepolicy --name 15min-schedule --interval-minutes 15 --interval-retain 12 -px pxb connect cluster --name cluster-1 --kubeconfig /root/.kube/config -# Configures backup with clusters and locations -#pxbackupctl login -s http://$pubIP:$backupPort -u admin -p admin -#pxbackupctl version -e $BACKUP_POD_IP:10002 -#pxbackupctl create cloudcredential --aws-access-key $AWS_ACCESS_KEY --aws-secret-key $AWS_SECRET_KEY -e $BACKUP_POD_IP:10002 --orgID default -n s3 -p aws -#sleep 5 -#cloud_credential_uid=$(pxbackupctl get cloudcredential -e $BACKUP_POD_IP:10002 --orgID default -o json | jq -cr '.[0].metadata.uid') -#pxbackupctl create backuplocation --cloud-credential-name s3 --cloud-credential-Uid $cloud_credential_uid -n $BACKUP_BUCKET -p s3 --s3-endpoint https://s3.$aws_region.amazonaws.com --path $BACKUP_BUCKET --s3-region $aws_region -e $BACKUP_POD_IP:10002 --orgID default -#pxbackupctl create schedulepolicy --interval-minutes 15 --interval-retain 12 --name 15min-schedule -e $BACKUP_POD_IP:10002 --orgID default -#sleep 5 - -#pxbackupctl create cluster --name cluster-1 -k /root/.kube/config -e $BACKUP_POD_IP:10002 --orgID default - -cat <> /etc/motd -+================================================+ -SAVE THE FOLLOWING DETAILS FOR FUTURE REFERENCES -+================================================+ -PX-Central User Interface Access URL : http://$PXB_URL -PX-Central admin user name: admin -PX-Central admin user password: $ADMIN_PW -+================================================+ -EOF \ No newline at end of file