Create a proxy for Cloud Foundry service instances.
Create a service proxy.
make-proxy.sh -s SERVICE_NAME
Create and print the resulting connection string.
make-proxy.sh -s SERVICE_NAME -p
Create and only print the resulting connection string.
make-proxy.sh -s SERVICE_NAME -up
Name of the service instance to proxy.
Example: redis
Destination service port being proxied.
Example: "9200/tcp"
Default: The service_bindings.credentials.port
value is used.
Use: Proxy a non-default port from a service instance which exposes multiple ports in service_bindings.credentials.ports
key. For example, ELK might expose 5000, 5601, 9200 and 9300 for syslog, Kibana and Elasticsearch HTTP / Transport respectively.
Domain portion of the proxy app route.
Example: 18f.gov
Default: The first shared domain available to the org is used.
Use: Force a specific domain to be used when creating the proxy route.
Hostname portion of the proxy app route.
Example: myproject-dev-redis
Default: The proxy app is created with the name ORG_NAME-SPACE_NAME-SERVICE_NAME-proxy
.
Use: Force a specific domain to be used when creating the proxy route.
The script will create or update bindings for the service and proxy app as needed.
Looking for jq.
- Found jq.
Getting domains for ORG_NAME.
Getting status for SERVICE_NAME.
- Checking service bindings for SERVICE_NAME.
Creating temp app: placeholder-ED5B2D25-5A9D-4421-950C-BAFEE8B45E09
Binding service to temp app: placeholder-ED5B2D25-5A9D-4421-950C-BAFEE8B45E09
- Checking service bindings for SERVICE_NAME.
Deleting: placeholder-ED5B2D25-5A9D-4421-950C-BAFEE8B45E09
Cleaning up: /tmp/placeholder-ED5B2D25-5A9D-4421-950C-BAFEE8B45E09
Checking status for SERVICE_NAME-proxy.
Creating SERVICE_NAME-proxy...
Getting service credentials for SERVICE_NAME.
Port: 12345
IP: 10.10.10.1
Getting app environment for SERVICE_NAME-proxy.
! Proxy vars don't match.
+ Injecting service credentials into SERVICE_NAME-proxy.
+ Binding SERVICE_NAME-proxy to PROXY_HOST in 10.10.10.1.
+ Binding SERVICE_NAME-proxy to PROXY_PORT in 12345.
Checking status for SERVICE_NAME-proxy.
- Finishing start of SERVICE_NAME-proxy.
- Getting credentials for SERVICE_NAME-proxy.
Checking status for SERVICE_NAME-proxy.
Access the the proxied service here:
https://user:pass@proxy.domain
Done.
Looking for jq.
- Found jq.
Getting domains for ed.
Getting status for SERVICE_NAME.
- Checking service bindings for SERVICE_NAME.
- Found bindings.
Checking status for SERVICE_NAME-proxy.
Creating SERVICE_NAME-proxy...
Getting service credentials for SERVICE_NAME.
Port: 12345
IP: 10.10.10.1
Getting app environment for SERVICE_NAME-proxy.
! Proxy vars don't match.
+ Injecting service credentials into SERVICE_NAME-proxy.
+ Binding SERVICE_NAME-proxy to PROXY_HOST in 10.10.10.1
+ Binding SERVICE_NAME-proxy to PROXY_PORT in 12345.
Checking status for SERVICE_NAME-proxy.
- Finishing start of SERVICE_NAME-proxy.
- Getting credentials for SERVICE_NAME-proxy.
Checking status for SERVICE_NAME-proxy.
Access the the proxied service here:
https://user:pass@proxy.domain
Done.
Looking for jq.
- Found jq.
Getting domains for ORG_NAME.
Getting status for SERVICE_NAME.
- Checking service bindings for SERVICE_NAME.
- Found bindings.
Checking status for SERVICE_NAME.
- Skipping creation.
Getting service credentials for SERVICE_NAME.
Port: 12345
IP: 10.10.10.1
Getting app environment for SERVICE_NAME-proxy.
- Getting credentials for SERVICE_NAME-proxy.
Checking status for SERVICE_NAME-proxy.
Access the the proxied service here:
https://user:pass@proxy.domain
Done.
A script to assist with creating, restoring and deleting Elasticsearch snapshots and repositories on S3 via the cloud-aws plugin.
Run make-proxy.sh
to create the proxy and/or obtain credentials for es-util.sh
.
Run es-util.sh
with the provided credentials or include it inline with the -u
and -p
switches.
Export your ES connection string to avoid re-running make-proxy.sh
repeatedly.
export ES_CONNECTION=$(make-proxy.sh -s ELASTICSEARCH_SERVICE -d DOMAIN -up)
es-util.sh -c REPO_NAME \
-s BUCKET_SERVICE \
-p $ES_CONNECTION \
-n SNAPSHOT_NAME
Output:
Looking for jq.
- Found jq.
Getting bindings for BUCKET_SERVICE.
Attempting to create repo REPO_NAME.
- result: {"acknowledged":true}
Attempting to create snap SNAPSHOT_NAME.
- result: {"accepted":true}
- status: IN_PROGRESS
- status: SUCCESS
Looking for jq.
- Found jq.
Getting bindings for BUCKET_SERVICE.
Attempting to create repo REPO_NAME.
- result: {"acknowledged":true}
Output:
Snapshots:
- name: SNAPSHOT_NAME
- status: "SUCCESS"
es-util.sh -c REPO_NAME \
-s BUCKET_SERVICE \
-p $ES_CONNECTION \
-n SNAPSHOT_NAME \
-i INDEX_NAME \
-r
Output:
Looking for jq.
- Found jq.
Getting bindings for BUCKET_SERVICE.
Attempting to create repo REPO_NAME.
- result: {"acknowledged":true}
Attempting to restore snap latest.
- result: {"accepted":true}
- status: 0.0%
- status: 1.3%
- status: 2.7%
- status: 4.1%
- status: 5.2%
- status: 6.3%
- status: 7.7%
...
- status: 100.0%
es-util.sh -c REPO_NAME \
-s BUCKET_SERVICE \
-p $ES_CONNECTION \
-d SNAPSHOT_NAME
Output:
Looking for jq.
- Found jq.
Getting bindings for bservice.
Attempting to create repo ed-college-choice-indexing.
- result: {"acknowledged":true}
Attempting to delete snap newsnap.
- result: {"acknowledged":true}
Success.