cloudfoundry-incubator / kubecf

Cloud Foundry on Kubernetes
Apache License 2.0
115 stars 62 forks source link

KubeCF

Build step State
Linting lint
Building build
Smoke tests on Diego smoke-diego
Smoke tests on Eirini smoke-eirini
Acceptance Tests on Diego acceptance-diego
Acceptance Tests on Eirini acceptance-diego

Introduction

KubeCF is a distribution of Cloud Foundry Application Runtime (CFAR) for Kubernetes. It works with the cf-operator from Project Quarks to deploy and manage releases built from cf-deployment.

Documentation

The Community documentation website is available here.

Contributing to KubeCF development

See the Guide to Contribution.

System requirements

To work with kubecf, a variety of supporting tools are required. These are:

Tool Notes
k8s The platform to run KubeCF.
minikube Provider for local k8s clusters.
kind Provider for local k8s clusters.
kubectl Client to talk to k8s clusters.
Helm Handling helm charts.
cf-operator Processes BOSH deployments. Maps them to kube objects.
cf-deployment The CF release at the core of kubecf.

As most of the developers use the Make & Bash build system coming with the kubecf repository, they implicitly use the versions for the tools set down in scripts/tools/*. At the time of writing, these are:

At the time of this writing these were:

Tool Version Notes
Kubernetes 1.17.5
minikube 1.9.2
kind 0.6.0
kubectl 1.17.0
Helm 3.0.3
jq 1.6
python3 3.3
ruby 2.4
shellcheck 0.7.0
yamllint 1.23
CF Operator 6.1.17+0.gec409fd7
cf-deployment 13.17.0

Note however: As kubecf is updated these versions may change from commit to commit. The table above is therefore not authoritative.

Always check the contents of dependencies.yaml and scripts/tools/* for the authoritative answer.

Note further: Just because the build system provides targets to conveniently bring up a local k8s cluster using minikube or kind, this does not preclude the use of other k8s cluster providers, local or in the cloud.

Besides the required tools noted above, other tools used by developers are:

Tool Notes Location
k9s Curses-based UI over kubectl https://github.com/derailed/k9s
stern Multi-pod log tailing https://github.com/wercker/stern

Last, but not least, more documentation on how to work with kubecf is found in the Guide to Contribution.

Useful Information

What Where
Concourse Pipeline https://concourse.suse.dev/teams/main/pipelines/kubecf
S3 Bucket with helm charts* https://kubecf.s3.amazonaws.com/index.html
Cloud Foundry Operator https://github.com/cloudfoundry-incubator/cf-operator/
CF Operator Charts https://cf-operators.s3.amazonaws.com/helm-charts/index.html

* The bundle file includes the operator chart