diff --git a/deploy/tools/populate-cf/susecon-2019.sh b/deploy/tools/populate-cf/susecon-2019.sh deleted file mode 100755 index 3aef555cc2..0000000000 --- a/deploy/tools/populate-cf/susecon-2019.sh +++ /dev/null @@ -1,320 +0,0 @@ -#!/bin/bash -#set -e - -# This script will populate Cloud Foundry with a set of orgs, spaces and apps. - -ORGNAME="SUSECON 2019" -ORGNAME2="SUSE Hackweek" -ORGNAME3="SUSE CAP" -ORGNAME4="SUSE Developers" -SPACENAME=dev -SPACENAME2=prod -SPACENAME3=test - -ORGQUOTA_NAME=susecon-org-quota -ORGQUOTA_TOTALMEMORY=100M -ORGQUOTA_APPINSTANCEMEMORY=50M -ORGQUOTA_ROUTES=50 -ORGQUOTA_SERVICEINSTANCES=50 -ORGQUOTA_APPINSTANCES=50 - -SPACEQUOTA_NAME=susecon-space-quota -SPACEQUOTA_TOTALMEMORY=70M -SPACEQUOTA_APPINSTANCEMEMORY=50M -SPACEQUOTA_ROUTES=6 -SPACEQUOTA_SERVICEINSTANCES=5 -SPACEQUOTA_APPINSTANCES=5 - -SERVICE_TYPE="persi-nfs" -SERVICE_NAME="susecon-persi-nfs" - -SERVICEINSTANCE_PCF_1_TYPE=p-mysql -SERVICEINSTANCE_PCF_1_PLAN=512mb -SERVICEINSTANCE_PCF_1_NAME=susecon-p-mysql -SERVICEINSTANCE_PCF_1_PARAMS='{"name":"value1","name":"value1"}' - -SERVICEINSTANCE_PCF_2_TYPE=p-rabbitmq -SERVICEINSTANCE_PCF_2_PLAN=standard -SERVICEINSTANCE_PCF_2_NAME=susecon-p-rabbitmq -SERVICEINSTANCE_PCF_2_PARAMS='{"name":"value2","name":"value2"}' - -SERVICEINSTANCE_SCF_1_TYPE=$SERVICE_TYPE -SERVICEINSTANCE_SCF_1_PLAN=10mb -SERVICEINSTANCE_SCF_1_NAME=susecon-mysql-dev-1 -SERVICEINSTANCE_SCF_1_PARAMS='{"name":"value3","name":"value3"}' - -SERVICEINSTANCE_SCF_2_TYPE=$SERVICE_TYPE -SERVICEINSTANCE_SCF_2_PLAN=20mb -SERVICEINSTANCE_SCF_2_NAME=susecon-mysql-dev-2 -SERVICEINSTANCE_SCF_2_PARAMS='{"name":"value4","name":"value4"}' - -function login { - cf login -a https://api.local.pcfdev.io --skip-ssl-validation -} - -function createQuota { - echo Creating Quota: $1 - echo Total Memory $2 - echo Instance Memory $3 - echo Routes $4 - echo Service Instances $5 - echo App Instances $6 - - if [ "$7" = true ]; then - #cf create-quota QUOTA [-m TOTAL_MEMORY] [-i INSTANCE_MEMORY] [-r ROUTES] [-s SERVICE_INSTANCES] [-a APP_INSTANCES] [--allow-paid-service-plans] [--reserved-route-ports RESERVED_ROUTE_PORTS] - cf create-quota "$1" -m "$2" -i "$3" -r "$4" -s "$5" -a "$6" - cf quotas - else - #cf create-space-quota QUOTA [-i INSTANCE_MEMORY] [-m MEMORY] [-r ROUTES] [-s SERVICE_INSTANCES] [-a APP_INSTANCES] [--allow-paid-service-plans] [--reserved-route-ports RESERVED_ROUTE_PORTS] - cf target -o "$ORGNAME" - cf create-space-quota "$1" -m "$2" -i "$3" -r "$4" -s "$5" -a "$6" - cf space-quotas - fi -} - -# Create an org, optionally assign it the qiven quota -function createOrg { - if [ -z "$2" ]; then - cf create-org "$1" - else - cf create-org "$1" -q "$2" - fi -} - -function createSpace { - SPACE_QUOTA_ARGS="" - SPACE_ORG=$1 - if [ "$2" = "true" ]; then - SPACE_QUOTA_ARGS=-q $SPACEQUOTA_NAME - fi - - echo "Creating spaces in $SPACE_ORG : $SPACE_QUOTA_ARGS" - - #cf create-space SPACE [-o ORG] [-q SPACE_QUOTA] - cf create-space "$SPACENAME" -o "$SPACE_ORG" ${SPACE_QUOTA_ARGS} - cf create-space "$SPACENAME2" -o "$SPACE_ORG" ${SPACE_QUOTA_ARGS} - cf create-space "$SPACENAME3" -o "$SPACE_ORG" ${SPACE_QUOTA_ARGS} -} - -function createServiceInstance { - echo Creating service: "$1", Type: "$2", Plan: "$3" - #cf create-service SERVICE PLAN SERVICE_INSTANCE -c '{"name":"value","name":"value"}' - cf create-service "$2" "$3" "$1" -c "$4" -} - -function createServiceInstances { - cf target -o "$ORGNAME3" -s dev - createServiceInstance "$SERVICEINSTANCE_NAME" "$SERVICEINSTANCE_TYPE" "$SERVICEINSTANCE_PLAN" "$SERVICEINSTANCE_PARAMS" - createServiceInstance "$SERVICEINSTANCE_NAME2" "$SERVICEINSTANCE_TYPE2" "$SERVICEINSTANCE_PLAN2" "$SERVICEINSTANCE_PARAMS2" -} - -function createApp { - echo Creating App: "$1" - echo Disk Limit: "$2" - echo Memory Limit: "$3" - echo Number of instances: "$4" - - cf target -o "$ORGNAME" -s "$SPACENAME" - cf push "$1" -k "$2" -m "$3" -i "$4" --no-manifest --no-start -} - -function createApps { - TEMP_PUSH_FOLDER=temp-push-folder - rm -rf $TEMP_PUSH_FOLDER - mkdir $TEMP_PUSH_FOLDER -p - pushd $TEMP_PUSH_FOLDER - - # Create these first, so they are not the most recent apps - cf target -o "$ORGNAME3" -s prod - # rm -rf cf-demo-app - # git clone https://github.com/nwmac/cf-demo-app - # pushd cf-demo-app - # cf push SUSECON_Demo_App --random-route -p . - # popd - - rm -rf cf-quick-app - git clone https://github.com/nwmac/cf-quick-app.git - pushd cf-quick-app - - cf target -o "$ORGNAME3" -s dev - cf push Scheduler -p . -b binary_buildpack -i 4 - cf push Notifier -p . -b binary_buildpack - cf push StaticWebSite -p . -b binary_buildpack - cf push APIServer -p . -b binary_buildpack - - # Stop one of the apps - cf stop Scheduler - - cf target -o "$ORGNAME" -s dev - - # Create an app in the 'Staging Failed' state - git checkout staging-fails - cf push BillingServer -p . - popd - - - # Create a few others to show space quotas - rm -rf empty-app - mkdir empty-app -p - pushd empty-app - touch delete-me - # Won't be running, so won't actually use any quota - createApp "IncompleteApp" "5M" "5M" 1 - popd - - rm -rf go-env - git clone https://github.com/cf-stratos/go-env - pushd go-env - cf push -m 22M - - # This app will use 3 application instances from teh quota - cf scale go-env -i 3 -f - - # Push the same app but call it TestApp - #cf push TestApp -p . --no-start - - popd - - popd -} - -function bindServiceInstancesToApp { - cf target -o "$ORGNAME3" -s dev - cf bind-service "Scheduler" "$SERVICEINSTANCE_NAME" - cf bind-service "Notifier" "$SERVICEINSTANCE_NAME2" - cf bind-service "Notifier" "$SERVICEINSTANCE_NAME" - cf bind-service "StaticWebSite" "$SERVICEINSTANCE_NAME2" -} - -function create { - createQuota "$ORGQUOTA_NAME" "$ORGQUOTA_TOTALMEMORY" "$ORGQUOTA_APPINSTANCEMEMORY" "$ORGQUOTA_ROUTES" "$ORGQUOTA_SERVICEINSTANCES" "$ORGQUOTA_APPINSTANCES" true - createOrg "$ORGNAME" "$ORGQUOTA_NAME" - createSpace "$ORGNAME" - createOrg "$ORGNAME2" - createSpace "$ORGNAME2" - createOrg "$ORGNAME3" - createSpace "$ORGNAME3" - createOrg "$ORGNAME4" "$ORGQUOTA_NAME" - createSpace "$ORGNAME4" - createQuota "$SPACEQUOTA_NAME" "$SPACEQUOTA_TOTALMEMORY" "$SPACEQUOTA_APPINSTANCEMEMORY" "$SPACEQUOTA_ROUTES" "$SPACEQUOTA_SERVICEINSTANCES" "$SPACEQUOTA_APPINSTANCES" false - - # Assign space quotas only in the first org - cf target -o "$ORGNAME" - cf set-space-quota "$SPACENAME" "$SPACEQUOTA_NAME" - cf set-space-quota "$SPACENAME2" "$SPACEQUOTA_NAME" - cf set-space-quota "$SPACENAME3" "$SPACEQUOTA_NAME" - - if [ "$CREATE_SERVICES" = true ]; then - createServiceInstances - fi - - createApps - - if [ "$CREATE_SERVICES" = true ]; then - bindServiceInstancesToApp - fi -} - -function showHelp { - - echo This script creates a set of orgs and spaces and populates a few applications. - echo Options: - echo -c to clean the orgs, space and apps - echo -s to create services -} - -function clean { - echo "Cleaning...." - echo Targeting $ORGNAME and deleting it\'s content - cf target -o "$ORGNAME" - cf delete-space "$SPACENAME" -f - cf delete-space "$SPACENAME2" -f - cf delete-space "$SPACENAME3" -f - cf delete-space-quota "$SPACEQUOTA_NAME" -f - - echo Deleting Orgs - # Delete org will also delete spaces, apps, service instances, routes, private domains and space-scoped service brokers - cf delete-org "$ORGNAME" -f - cf delete-org "$ORGNAME2" -f - cf delete-org "$ORGNAME3" -f - cf delete-org "$ORGNAME4" -f - cf delete-org "$ORGNAME5" -f - cf delete-org "$ORGNAME6" -f - cf delete-quota "$ORGQUOTA_NAME" -f -} - -echo "=================================================" -echo "Org, Space, Quota, Apps script " -echo "=================================================" -echo "" - -# Quick check that the cf cli is available -echo "Checking that the CF cli is available..." -cf --version -if [ ! $? -eq 0 ]; then - echo "This script needs the CF cli to be installed" - exit -1 -fi - -CLEAN=false -CREATE_SERVICES=false -CF=SCF -while getopts ":cpsh" opt ; do - case $opt in - h) - showHelp - exit 0 - ;; - c) - CLEAN=true - ;; - s) - CREATE_SERVICES=true - ;; - p) - CF=PCF - ;; - esac -done - -if [ "$CF" = "SCF" ]; then - echo Using SCF - SERVICEINSTANCE_NAME=$SERVICEINSTANCE_SCF_1_NAME - SERVICEINSTANCE_TYPE=$SERVICEINSTANCE_SCF_1_TYPE - SERVICEINSTANCE_PLAN=$SERVICEINSTANCE_SCF_1_PLAN - SERVICEINSTANCE_PARAMS=$SERVICEINSTANCE_SCF_1_PARAMS - - SERVICEINSTANCE_NAME2=$SERVICEINSTANCE_SCF_2_NAME - SERVICEINSTANCE_TYPE2=$SERVICEINSTANCE_SCF_2_TYPE - SERVICEINSTANCE_PLAN2=$SERVICEINSTANCE_SCF_2_PLAN - SERVICEINSTANCE_PARAMS2=$SERVICEINSTANCE_SCF_2_PARAMS -else - echo Using PCF - SERVICEINSTANCE_NAME=$SERVICEINSTANCE_PCF_1_NAME - SERVICEINSTANCE_TYPE=$SERVICEINSTANCE_PCF_1_TYPE - SERVICEINSTANCE_PLAN=$SERVICEINSTANCE_PCF_1_PLAN - SERVICEINSTANCE_PARAMS=$SERVICEINSTANCE_PCF_1_PARAMS - - SERVICEINSTANCE_NAME2=$SERVICEINSTANCE_PCF_2_NAME - SERVICEINSTANCE_TYPE2=$SERVICEINSTANCE_PCF_2_TYPE - SERVICEINSTANCE_PLAN2=$SERVICEINSTANCE_PCF_2_PLAN - SERVICEINSTANCE_PARAMS2=$SERVICEINSTANCE_PCF_2_PARAMS -fi - -#login -if [ "$CLEAN" = true ]; then - echo "===========================" - echo "Cleaning orgs and spaces..." - echo "===========================" - clean - exit 0 -fi - -echo "=================================================" -echo "Creating orgs, spaces, quota and applications ..." -echo "=================================================" - -create - -echo "" -echo "All done" diff --git a/docs/eksdeployment.md b/docs/eksdeployment.md deleted file mode 100644 index cbf1eccf4e..0000000000 --- a/docs/eksdeployment.md +++ /dev/null @@ -1,154 +0,0 @@ -# Stratos, SCF and metrics on EKS - -## EKS Setup - -Follow the instructions outlined in https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html to deploy an EKS cluster. - -If you plan to deploy SCF in the cluster, make the following modifications when creating the worker nodes. -- Set `NodeInstanceType` to `t2.large` -- Set `NodeInstanceVolume` to `75` - -## Helm Setup - -Download the latest Helm release (atleast 2.9 is required for RBAC support) from https://github.com/helm/helm/releases - -Save the following to a file caleld `helm-rbac.yaml` -``` -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tiller - namespace: kube-system ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRoleBinding -metadata: - name: tiller -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: - - kind: ServiceAccount - name: tiller - namespace: kube-system -``` - -Apply the configuration to the EKS cluster -``` -$ kubectl apply -f helm-rbac.yaml -``` - -Install Helm -``` -$ helm init --service-account tiller -``` - -## Storage Classes - -Two storage classes are required, one general storage class that will be marked as the `default` storage class in the cluster, and a storage class that is scoped to a single `AZ`. This scoped storage class will be used to deploy Stratos and Metrics, that make use of shared storage volumes. - -To setup the `default` storage class save the following to a file `default_storage_class.yaml` -``` -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: gp2 - annotations: - storageclass.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" -provisioner: kubernetes.io/aws-ebs -parameters: - type: gp2 -``` - -To create the storage class, execute the following: -``` -$ kubectl apply -f default_storage_class.yaml -``` - -To setup the scoped storage class, save the following to `scoped_storage_class.yaml`. -``` -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: gp2scoped -provisioner: kubernetes.io/aws-ebs -parameters: - type: gp2 - zone: "us-east-1a" -reclaimPolicy: Retain -mountOptions: - - debug -``` -To create the storage class, execute the following: -``` -$ kubectl apply -f scoped_storage_class.yaml -``` - -In this guide, the scoped storage class will be referred to as `gp2scoped`. -## SCF Installation - -To deploy SCF, follow instructions detailed in https://github.com/SUSE/scf/wiki/Deployment-on-Amazon-EKS, starting from the [Deploy Cloud Foundry](https://github.com/SUSE/scf/wiki/Deployment-on-Amazon-EKS#deploy-cloud-foundry) section. - -The initial steps can be skipped, (changing storage volume size, helm and storage class configuration). - -The SCF config values file, will be referred to as `scf-config-values.yaml` in the guide. - - -## Metrics Installation - -Download the latest metrics chart from [here](). Or use the latest published `devel` release. - -Save the following configuration overrides to a file named `metrics-values.yaml`. - -``` -useLb: true -kubernetes: - authEndpoint: < EKS Cluster endpoint > -prometheus: - kubeStateMetrics: - enabled: true - server: - persistentVolume: - storageClass: gp2scoped -kube: - external_metrics_port: 443 - storage_class: - persistent: "gp2scoped" - shared: "gp2scoped" -``` -Deploy `metrics` to your cluster: - -``` - -$ helm install stratos/metrics --namespace metrics --name metrics -f metrics-values.yaml -f scf-config-values.yaml -``` - -Once all pods are `Ready`, retrieve the load balancer address for the `metrics` Endpoint. - -``` -$ kubectl get services --namespace metrics -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -metrics-f-exp-service ClusterIP 10.100.219.223 9186/TCP 43m -metrics-metrics-nginx LoadBalancer 10.100.31.139 a98a9c6f3d5e111e8b51d0eeeba70c15-724925591.us-east-1.elb.amazonaws.com,172.31.34.100 443:30943/TCP 43m -metrics-prometheus-kube-state-metrics ClusterIP None 80/TCP 43m -prometheus-service ClusterIP 10.100.32.254 9090/TCP 43m - -``` - -The address in this example is `https://a98a9c6f3d5e111e8b51d0eeeofba70c15-724925591.us-east-1.elb.amazonaws.com`. Make a note it. - -## Stratos Deployment - -To deploy Stratos on EKS, the following configuration overrides are required, save the following to a file named `stratos-values.yaml`. -``` -storageClass: gp2scoped -useLb: true -``` - -Install `stratos` with Helm -``` -$ helm install stratos/console -f stratos-values.yaml --namespace stratos --name stratos -``` diff --git a/src/jetstream/dev-certs/pproxy.crt b/src/jetstream/dev-certs/pproxy.crt deleted file mode 100644 index e0de5419c5..0000000000 --- a/src/jetstream/dev-certs/pproxy.crt +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIJAPfqD7ElLvDDMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV -BAYTAlVLMRAwDgYDVQQIDAdCcmlzdG9sMRAwDgYDVQQHDAdCcmlzdG9sMQ0wCwYD -VQQKDARTVVNFMQwwCgYDVQQLDANDQVAxEjAQBgNVBAMMCTEyNy4wLjAuMTETMBEG -CSqGSIb3DQEJARYEU1VTRTAeFw0xODA4MjgxNTUyMDJaFw0xOTA4MjgxNTUyMDJa -MHcxCzAJBgNVBAYTAlVLMRAwDgYDVQQIDAdCcmlzdG9sMRAwDgYDVQQHDAdCcmlz -dG9sMQ0wCwYDVQQKDARTVVNFMQwwCgYDVQQLDANDQVAxEjAQBgNVBAMMCTEyNy4w -LjAuMTETMBEGCSqGSIb3DQEJARYEU1VTRTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAKCALIH2JiAeJIpZfn19eJ0PTQi6xwxrZ0g6no6PInVC+SGcjwvS -fNQTSei1OZ2+rzlE0wBjmxYmkVy+QBEKHX+fPyOsmu16UKPzYE/y4gTnXhudLm5x -2MY/S3gVvfmOLMAUJYvuT1fbfqYz+2uxam8UAZqeYC36b/YoDqavgQ2tci+CNKc9 -lYOh2I6IBHlWJZAI1uBC6045UFiOauPBXecBaHvXrztQxpjCEXv1UINQOWZcaONA -JCs3xT65hHsF5iEu9g3/5gghsutl2q8hnrIbUQfegbhTQ7nKkYmS2pdxB9tmUUlr -AXfvRR3vUvHEMWOsbihBZvZnmtVasRbPLZECAwEAAaNQME4wHQYDVR0OBBYEFLx3 -Nl8Ww7YQ7LvSQfw0nSt5fk4FMB8GA1UdIwQYMBaAFLx3Nl8Ww7YQ7LvSQfw0nSt5 -fk4FMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAACQKgBH4Wvm3y5n -apRuU5B4FSx0osPJC+t5bSRf0o/4Nai2ViFfGxYNy1XGAkW9ad/2Ax69RIMVV2gX -GMrO/QbDxmldO8NmxAWp0zhENYWO7g3PgL87LAsMNlOS9ofPLXTIAs5ChqgXu3x2 -2v8TnazuGmUvj+7dN/L5G0YosZFuXJdv570bCOeEUBoXZkVrK9N0Pg/NCIS/lHwL -zTc5MLmgmU9xK4bVgpAwy7scqCuM0P5gi2XtrRk/ZshrZwPzDK2YmJ8P4ZdOln98 -Hnnp9WbdQ86QzZ6vgErbKLSKzNLriRlsgAKKCbLqd9GBcQwGV4MMUReI1ulupwaR -TcPKe8c= ------END CERTIFICATE----- diff --git a/src/jetstream/dev-certs/pproxy.key b/src/jetstream/dev-certs/pproxy.key deleted file mode 100644 index 8711d9131c..0000000000 --- a/src/jetstream/dev-certs/pproxy.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCggCyB9iYgHiSK -WX59fXidD00IuscMa2dIOp6OjyJ1QvkhnI8L0nzUE0notTmdvq85RNMAY5sWJpFc -vkARCh1/nz8jrJrtelCj82BP8uIE514bnS5ucdjGP0t4Fb35jizAFCWL7k9X236m -M/trsWpvFAGanmAt+m/2KA6mr4ENrXIvgjSnPZWDodiOiAR5ViWQCNbgQutOOVBY -jmrjwV3nAWh71687UMaYwhF79VCDUDlmXGjjQCQrN8U+uYR7BeYhLvYN/+YIIbLr -ZdqvIZ6yG1EH3oG4U0O5ypGJktqXcQfbZlFJawF370Ud71LxxDFjrG4oQWb2Z5rV -WrEWzy2RAgMBAAECggEARhczWJ3yEFyZgIGMp6i/n3crIQDQJDBTLkvLKl5/oc3Z -lkAUiAkn0kWKJUHfI3A+fTf9HVJiS84T9PhwagCM2Url++JI1iRwSujhyog7BAE2 -K8D8oea9z/WcM5jrGaxpBojFzNIJfEiyikpxJZqY7GFEQg2f2vRfKJRdsZU7Ookv -I1dv7Ctuq0I+VvqXIRUIu/8PFstNRHQMOhwmhr6BhruSFo9AgeI1MG2Jv/hDTzLo -PuNt8aTvp67BuM2cK/GxfZ9IDebcVKz1k9jikvjPSzCcl20AgzQzQ6pvt9fJQrCk -BmkmCFu9Ao0/zTEsN4q7KMUkX66zp/HzQdTpiNx9cQKBgQDMrKsu1gYmZ/vN+Nbh -Y9Ued6BIoBy+IWF3FylT4L+Drqg2sB724jrYHs9TLZFBsngZRzK+vZZTPQvOHXoo -6DcqTDYvOpSoEHJdBp9ax8n/QlmB/Hc3CFd+KaCWDS8oExi9lJ3iB09XC+F67qcm -OSbn9F4X4/YvX2sGJ7BREOV0MwKBgQDIv7aKtGJhIUsl35FPfSeilRnHMcfBMiBw -QpJ867SsoFlCPDMFjJ6CStajIuaxr/qoR/1c0Zeg8egv4SxHWCYX+CvtBwWuSFHT -CsA3c77KKCntmYENpXVBd7YrsiJazNEFRFbnP4Qg8CFgL1hDQXGBOA9tTRqQOhbr -38pnMuezKwKBgDrMI8UpsMyZtKnAIaLQNioxfXc/n+Iy3rgCjFnPR9VBeIt1Xv/X -j8YEW9TuUztHVN8WKArJlgTFlb2ZlD1qMGbTTAGXV5tMVj5JJ8BBgtL0sZf4+hpy -KAhTVxGkKfbePY5AwnZrWSyNejIBmz0M0BN0jQ9Z6qBDThCPmERBkVknAoGBAL93 -srgqgeaYJZ+S03pYKXR09yg4v4fxsmS/6g3BlgpLybZVymgRjaFBleP0xslUyiK0 -vt9HfHJiJ417G4tUdMjJx8ODvhRTH8/E4j5BZAhWNF9M2HzWgbaWYibc+M1Xqkh2 -vNhEiVYNEhg2L929zm9rs7MRJjPHY9NHGDpDoCAPAoGAIjz/ibLU+iIU1YRilW4e -00WZtoBjce2p4tVuaHoPkIXiy8VFXYWx0DB0J4yV+YAElZX3bvKCtgUyqw+OZoi2 -ViaUwUZf7m0WTKV+fD3w4CkTwNUf/KzDA9o3iR0Wd04w+MZf8cpZwjqNxena0kJK -EYk10OKHoifeAhhe/osplLI= ------END PRIVATE KEY-----