Thank you to everyone who has used and contributed to capi-k8s-release!
As a follow-on to the 8/23/21 cf-dev CF on K8s Update, this project has been deprecated to focus efforts on Korifi. Korifi provides a Kubernetes-native app platform by reimplementing the core Cloud Foundry APIs and backing them by a set of Kubernetes custom resources and controllers. We invite you to try out Korifi and provide feedback!
capi-k8s-release
This collection of yaml, ytt, and go code packages together the bits that make the CF API run in cf-for-k8s.
Deploying
capi-k8s-release is best consumed as part of cf-for-k8s
Clone the cf-for-k8s repository: git clone https://github.com/cloudfoundry/cf-for-k8s.git
cf-api-controllers is a collection of kubebuilder controllers that synchronize the CF API and various k8s CRDs (Images, Builds, Routes, PeriodicSyncs, etc).
eirini is an adapter that lets Cloudfoundry Processes and Tasks run on Kubernetes
kpack is a collection of CRDs and Controllers for building container images from source using Cloud Native Buildpacks
route controller & istio are used by cf-for-k8s to manage Routes to apps and the service mesh between CF components
uaa is used to manage users and token verification
cf is the eponymous CLI for interacting with the CF API. We support versions v7 and higher.
Rolling out development changes to capi-k8s-release
./scripts/rollout.sh will take any local changes to capi-k8s-release, apply them to a local cf-for-k8s directory, and then deploy cf-for-k8s
./scripts/build-and-rollout.sh will take local changes to cloud_controller_ng and the components in capi-k8s-release/src, build them with kbld, pack, and paketo’s ruby and go buildpacks, and then deploy the new images to cf-for-k8s.
Environment variables can be used with either script to override default local source directories and remote image repositories.
Configuring Honeycomb
For debugging, it may be useful to emit events to Honeycomb. This can be done by
passing an additional data file with a library annotation to the ytt command
that builds the cf-for-k8s manifest, or to one of our rollout.sh scripts.
capi-k8s-release currently uploads app source code to a blobstore, but then hands that off to kpack to build app images that are then placed in a registry. In order for this to work, you must configure the following values:
kpack:
registry:
hostname: # the hostname of the registry, used for authentication
repository: # the destination of the build app images within the registry
username: # basic auth registry username
password: # basic auth registry password
Thank you to everyone who has used and contributed to capi-k8s-release!
As a follow-on to the 8/23/21 cf-dev CF on K8s Update, this project has been deprecated to focus efforts on Korifi. Korifi provides a Kubernetes-native app platform by reimplementing the core Cloud Foundry APIs and backing them by a set of Kubernetes custom resources and controllers. We invite you to try out Korifi and provide feedback!
capi-k8s-release
This collection of yaml, ytt, and go code packages together the bits that make the CF API run in cf-for-k8s.
Deploying
cf-for-k8srepository:git clone https://github.com/cloudfoundry/cf-for-k8s.gitComponents & Collaborators
In this repo:
From elsewhere:
Rolling out development changes to capi-k8s-release
./scripts/rollout.shwill take any local changes tocapi-k8s-release, apply them to a localcf-for-k8sdirectory, and then deploycf-for-k8s./scripts/build-and-rollout.shwill take local changes tocloud_controller_ngand the components incapi-k8s-release/src, build them with kbld, pack, and paketo’s ruby and go buildpacks, and then deploy the new images to cf-for-k8s.Environment variables can be used with either script to override default local source directories and remote image repositories.
Configuring Honeycomb
For debugging, it may be useful to emit events to Honeycomb. This can be done by passing an additional data file with a library annotation to the
yttcommand that builds the cf-for-k8s manifest, or to one of ourrollout.shscripts.Configuring pushes of buildpack apps
capi-k8s-releasecurrently uploads app source code to a blobstore, but then hands that off tokpackto build app images that are then placed in a registry. In order for this to work, you must configure the following values:dockerhub example:
gcr example: