The Cloud Foundry team uses GitHub and accepts code contributions via pull requests.
Before working on a PR to the CF-K8s-Networking code base, please:
- reach out to us first via a GitHub issue,
You can always chat with us on our Slack #networking channel (request an invite),
After reaching out to the App Connectivity team and the conclusion is to make a PR, please follow these steps:
- Ensure that you have either:
- completed our Contributor License Agreement (CLA) for individuals (if you haven't done this already the PR will prompt you to)
- or, are a public member of an organization that has signed the corporate CLA.
- Fork the project repository.
- Create a feature branch (e.g.
git checkout -b good_network
) and make changes on this branch- Tests are required for any changes.
- Push to your fork (e.g.
git push origin good_network
) and submit a pull request
Note: All contributions must be sent using GitHub Pull Requests. We prefer a small, focused pull request with a clear message that conveys the intent of your change.
We currently build with Golang 1.13.x
and use go mod
for dependencies.
Most of our templating and deploy scripts rely on the k14s Kubernetes Tools. We recommend installing the latest versions.
ytt
kapp
vendir
Our integration tests spin up temporary Kind clusters using Docker.
When contributing to this project you should, at a minimum, be running the
routecontroller
unit and integration tests. We also recommend running the Networking Acceptance Tests.
cd cf-k8s-networking/routecontroller
./scripts/test
./scripts/integration
To run the acceptance tests, you must have a Kubernetes cluster provisioned. Follow the steps in ./test/acceptance/ to run these tests.
We have a few additional test suites that run in our CI.
- For more information, check this README
- For more information, check this README
CF-K8s-Networking is a set of components meant to be integrated into a cf-for-k8s deployment.
To deploy your local changes to cf-k8s-networking
with cf-for-k8s
, you can
follow these steps:
- Run
./scripts/vendir-sync-local
which will runvendir sync
incf-for-k8s
with override to use the local cf-k8s-networking config. - Follow docs to install
cf-for-k8s