routing-api-cli

command module
v0.0.0-...-7608c84 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

README

Build Status

Routing API CLI

The Routing API CLI lets you list, register, and unregister routes with the Cloud Foundry Routing API.

Note: This repository should be imported as code.cloudfoundry.org/routing-api-cli.

Note: This repository was built as an internal tool and is not actively maintained. Your mileage may vary.

Dependencies

The Routing API uses OAuth tokens to authenticate clients. To obtain a token from UAA an OAuth client must first be created for the API client in UAA. For instructions on registering OAuth clients, see Routing API Server Configuration.

Installation

Download Binaries

Download the binary at Releases. Move the binary to a directory in your $PATH. Run rtr -v to confirm that the Routing API CLI is working properly.

Compile
  • Go should be installed and in the PATH

  • Checkout routing-release

  • Build the binary, and place it in your path:

    cd routing-release/src/code.cloudfoundry.org
    go build -o ../../../bin/rtr routing-api-cli
    

Usage

Each command has required arguments and route structure.

Required arguments:

--api: the routing API endpoint, e.g. http://api.10.244.0.34.xip.io
--client-id: the id of the client registered with your OAuth provider with the proper authorities, e.g. routing_api_client
--client-secret: your OAuth client secret, e.g. route_secret
--oauth-url: the OAuth provider endpoint with optional port, e.g. http://uaa.10.244.0.34.xip.io

Optional arguments: --skip-tls-verification: Skip TLS verification when talking to UAA and Routing API.

Routes are described as JSON: '[{"route":"foo.com","port":65340,"ip":"1.2.3.4","ttl":60, "route_service_url":"https://route-service.example.cf-app.com"}]'

List Routes
rtr list [args]
Register Route(s)
rtr register [args] [routes]
Unregister Route(s)
rtr unregister [args] [routes]
Subscribe to Events
rtr events [args]
Tracing Requests and Responses

By specifying the environment variable RTR_TRACE=true, rtr will output the HTTP requests and responses that it makes and receives.

export RTR_TRACE=true
rtr list [args]

Notes:

  • Route "ttl" definition is ignored for unregister.
  • CLI will appear successful when unregistering routes that do not exist.
  • The route_service_url is an optional value, and must be a HTTPS url.

###Examples

rtr list --api https://api.example.com --client-id admin --client-secret admin-secret --oauth-url https://uaa.example.com

rtr register --api https://api.example.com --client-id admin --client-secret admin-secret --oauth-url https://uaa.example.com '[{"route":"mynewroute.com","port":12345,"ip":"1.2.3.4","ttl":60}]'

rtr unregister --api https://api.example.com --client-id admin --client-secret admin-secret --oauth-url https://uaa.example.com '[{"route":"undesiredroute.com","port":12345,"ip":"1.2.3.4"}]'

Development

Dependencies

This repository's dependencies are managed using routing-release. Please refer to documentation in that repository for setting up tests

Executables
  1. bin/test.bash: This file is used to run test in Docker & CI. Please refer to Dependencies for setting up tests.
Reporting issues and requesting features

Please report all issues and feature requests in cloudfoundry/routing-release.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL