Skip to content
This repository has been archived by the owner on Feb 14, 2023. It is now read-only.

Latest commit

 

History

History
94 lines (68 loc) · 3.73 KB

CONTRIBUTING.md

File metadata and controls

94 lines (68 loc) · 3.73 KB

Contributing to CF-K8s-Networking

The Cloud Foundry team uses GitHub and accepts code contributions via pull requests.

Prerequisites

Before working on a PR to the CF-K8s-Networking code base, please:

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:

  1. 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.
  2. Fork the project repository.
  3. Create a feature branch (e.g. git checkout -b good_network) and make changes on this branch
    • Tests are required for any changes.
  4. 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.

Local development for cf-k8s-networking

Development dependencies

Golang

We currently build with Golang 1.13.x and use go mod for dependencies.

k14s Tools

Most of our templating and deploy scripts rely on the k14s Kubernetes Tools. We recommend installing the latest versions.

  • ytt
  • kapp
  • vendir

Integration Test Dependencies

Our integration tests spin up temporary Kind clusters using Docker.

Running Tests

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.

RouteController Unit and Integration Tests

  1. cd cf-k8s-networking/routecontroller
  2. ./scripts/test
  3. ./scripts/integration

Networking Acceptance Tests

To run the acceptance tests, you must have a Kubernetes cluster provisioned. Follow the steps in ./test/acceptance/ to run these tests.

Other Tests

We have a few additional test suites that run in our CI.

CF-K8s-Networking Upgradeability Uptime Tests

  1. For more information, check this README

CF-K8s-Networking Scaling Tests

  1. For more information, check this README

Deploying your changes

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:

  1. Run ./scripts/vendir-sync-local which will run vendir sync in cf-for-k8s with override to use the local cf-k8s-networking config.
  2. Follow docs to install cf-for-k8s