This repository is a BOSH release for deploying CF Networking and associated tasks. CF Networking provides policy-based container networking and service discovery for Cloud Foundry.
For information on getting started with Cloud Foundry look at the docs for CF Deployment.
Our BOSH release is available on bosh.io and on our GitHub Releases page
For help or questions with this release or any of its submodules, you can reach
the maintainers on Slack at
cloudfoundry.slack.com in the #cf-for-vms-networking
channel.
Please look at the "Contributing to CF Networking" doc for more information.
- CF Networking Operator Resources
- CF App Developer Resources
- CF Networking Contributor Resources
- CF CNI Plugin Developer Resources
- What is CF Networking explains the problems that this release solves and describes the basic functionaltiy that this release provides.
-
Container to Container Networking Architecture goes step-by-step through the container to container networking control plane and data plane flows.
-
Service Discovery Architecture goes step-by-step through the control plane and data plane flows for service discovery.
CF Networking is automatically included in CF Deployment. You don't have to do anything!
- Configuring Container to Container Networking describes some of the most popular ways to configure container to container networking and its policies.
- Configuring Service Discovery describes some of the most popular ways to configure service discovery, including how to create more internal domains.
- Service Discovery Metrics lists all of the available metrics for the service discovery components.
- TODO - add doc for c2c networking metrics.
- Overlay Network Troubleshooting describes general debugging tips for overlay networking and common failures.
- Container to Container Networking Troubleshooting describes general debugging tips for c2c networking and some specific common failures.
- Debugging Latency with Container to Container Networking describes how to determine the root cause for c2c latency.
- Network Policy Database Overview
- Known Issues contains a list of known bugs for c2c networking. This list has not been maintained since 2018 and even then it was only sporadically maintained.
- CF Docs for "Configuring Container-to-Container Networking" contains information on how app developers can create/list/delete network policies.
- CF Docs for "Configuring Routes and Domains" contains information on how app developers can create internal routes for c2c networking.
-
Policy Server External API contains full docs on all endpoints for the external policy server. This includes creating, listing, and deleting policies.
-
Policy Server Internal API contains full docs on all endpoints for the internal policy server. This includes creating and listing tags and getting policies.
- Example Apps Overview describes a handful of example apps (like the ever popular proxy) and the features that they provide.
- The Contributing Guide describes the steps you should take to contribute. Thanks in advance! We love our community :D
- Adding Libraries or Packages describes how to add external golang libraries or new bosh packages to this release.
-
Clone CI repository (next to where this code is cloned), and make sure latest is pulled by running
git pull
mkdir -p ~/workspace cd ~/workspace git clone https://github.com/cloudfoundry/wg-app-platform-runtime-ci.git
-
Git - Distributed version control system
-
Go - The Go programming language
Running tests for this release requires a DB
flavor. The following scripts with default to mysql
DB. Set DB
environment variable for alternate DBs e.g. <mysql-8.0(or mysql),mysql-5.7,postgres>
./scripts/create-docker-container.bash
: This will create a docker container with appropriate mounts../scripts/test-in-docker-locally.bash
: Create docker container and run all tests and setup in a single script../scripts/test-in-docker-locally.bash <package> <sub-package>
: For running tests under a specific package and/or sub-package: e.g../scripts/test-in-docker-locally.bash policy-server api
When inside docker container:
/repo/scripts/docker/test.bash
: This will run all tests in this release/repo/scripts/docker/test.bash policy-server
: This will only runpolicy-server
tests/repo/scripts/docker/test.bash policy-server api
: This will only runpolicy-server
sub-package tests forapi
package/repo/scripts/docker/tests-templates.bash
: This will run all of tests for bosh tempalates/repo/scripts/docker/lint.bash
: This will run all of linting defined for this repo.
- 3rd Party Plugin Development describes how to create a CNI plugin for CF that would replace silk-release.