Coder Social home page Coder Social logo

alphagov / paas-routing-release Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudfoundry/routing-release

0.0 9.0 2.0 2.68 MB

This is BOSH release for cloud foundry routers

License: Apache License 2.0

Ruby 36.81% Shell 36.23% HTML 26.35% HCL 0.61%
paas

paas-routing-release's Introduction

Cloud Foundry Routing [BOSH release]

This repository is a BOSH release that delivers HTTP and TCP routing for Cloud Foundry.

Status

Job Status
unit tests networking.ci.cf-app.com
performance tests networking.ci.cf-app.com
smoke tests networking.ci.cf-app.com

Getting Help

If you a concrete issue to report or change to request, please create a Github issue. Issues with any related submodules (Gorouter, Routing API, Route Registrar, CF TCP Router) should be created here instead.

You can also reach us on Slack at cloudfoundry.slack.com in the #networking channel.

Developer Workflow

When working on individual components of the Routing Release, work out of the submodules under src/.

Run the appropriate unit tests (see Testing).

The release branch contains code that has been released. All development work happens on the develop branch.

Get the code

  1. Clone the repository
mkdir -p ~/workspace
cd ~/workspace
git clone https://github.com/cloudfoundry/routing-release.git
cd routing-release/
  1. Automate $GOPATH and $PATH setup.

This BOSH release doubles as a $GOPATH. It will automatically be set up for you if you have direnv installed.

direnv allow

If you do not wish to use direnv, you can simply source the .envrc file at the root of the repository. You may manually need to update your $GOPATH and $PATH variables as you switch in and out of the directory.

  1. Initialize and sync submodules.
./scripts/update

Running BOSH Job Templating Tests

From the root of the repo, run:

Run the specs

rspec ./spec/

Lint the specs

rubocop ./spec/

If you do not have rspec or rubocop installed locally, run ./scripts/start-docker-for-testing.sh and execute the commands in the docker container.

Running Unit and Integration Tests

In a Docker container

  • Run tests using the script provided. This script pulls a docker image and runs the tests within a container because integration tests require Linux specific features.

    Notice/warning: the script is called run-unit-tests-in-docker but it really runs unit and integration tests, that's why they need to run in a container.

    ./scripts/run-unit-tests-in-docker
  • If you'd like to run a specific component's tests in a Docker container, the run-unit-tests script also takes a package name as an argument:

    ./scripts/run-unit-tests-in-docker gorouter

Locally

  • If you'd like to run the unit and integration tests for an individual component locally, we recommend you run bin/test in that component's directory. Please make sure it's a component that doesn't require a Linux operating system.

Running Acceptance tests

The Routing Acceptance Tests must run on a full Cloud Foundry deployment. One method is to deploy Cloud Foundry on a BOSH lite with cf-deployment.

To Run the Routing Acceptance Tests, see the README.md.

High Availability

The TCP Router and Routing API are stateless and horizontally scalable. The TCP Routers must be fronted by a load balancer for high-availability. The Routing API depends on a database, that can be clustered for high-availability. For high availability, deploy multiple instances of each job, distributed across regions of your infrastructure.

Routing API

For details refer to Routing API.

Metrics Documentation

For documentation on metrics available for streaming from Routing components through the Loggregator Firehose, visit the CloudFoundry Documentation. You can use the NOAA Firehose sample app to quickly consume metrics from the Firehose.

paas-routing-release's People

Contributors

atulkc avatar flawedmatrix avatar shalako avatar routing-ci avatar crhino avatar aaronshurley avatar charleshansen avatar bruce-ricard avatar swetharepakula avatar jberkhahn avatar rosenhouse avatar nino-k avatar leochu avatar fordaz avatar ameowlia avatar markstgodard avatar angelachin avatar tylerschultz avatar abbyachau avatar nhsieh avatar kauzclay avatar christianang avatar mike1808 avatar ewrenn8 avatar belinda-liu avatar mcwumbly avatar msmykowski avatar eleanorrigby avatar tcdowney avatar utako avatar

Watchers

David Illsley avatar Tom avatar James Cloos avatar Matt Hobbs avatar William Palmer avatar Rebecca Law avatar Stephen Harker avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.