command module
v0.0.0-...-d88c78e Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2021 License: Apache-2.0 Imports: 27 Imported by: 0



This repository has been merged into cf-k8s-controllers and will be archived.

Open issues have been moved and further development will proceed in the controllers repository.


This repository contains what we call the "CF API Shim", an experimental implementation of the V3 Cloud Foundry API that is backed entirely by Kubernetes custom resources.

For more information about what we're building, check out the Vision for CF on Kubernetes document.


While this project seeks to faithfully reproduce the V3 CF APIs as much as is feasible, not all APIs have been implemented and not all features are supported.

We maintain our own set of API Endpoint docs for tracking what is currently supported by the Shim.



This project relies on the controllers and CRDs of the cf-k8s-controllers repo. Install it by following the instructions in its README.

Running Locally


make run


go run main.go
Deploying the app to your cluster

Note Supports ingress with only GKE

Editing Local Configuration

To specify a custom configuration file, set the CONFIG environment variable to its path when running the web server. Refer to the default config for the config file structure and options.

Edit the file config/base/cf_k8s_api_config.yaml and set the packageRegistryBase field to be the registry location you want your source package image to be uploaded to. Edit the file config/base/api_url_patch.yaml to specify the desired URL for the deployed API.

Using make

You can deploy the app to your cluster by running make deploy from the project root.

Using Kubectl

You can deploy the app to your cluster by running kubectl apply -f reference/cf-k8s-api.yaml from the project root.

Post Deployment

Run the commands below substituting the values for the Docker credentials to the registry where source package images will be uploaded to.

kubectl create secret docker-registry image-registry-secret \
    --docker-username="<DOCKER_USERNAME>" \
    --docker-password="<DOCKER_PASSWORD>" \
     --docker-server="<DOCKER_SERVER>" --namespace cf-k8s-api-system


Running Tests


make test

shell (testbin must be sourced first if using this method)

KUBEBUILDER_ASSETS=$PWD/testbin/bin go test ./... -coverprofile cover.out
Updating CRDs for Tests

Some tests run a real Kubernetes API/etcd via the envtest package. These tests rely on the CRDs from cf-k8s-controllers which we have vendored in. To update these CRDs you'll need to install vendir and run vendir sync in the repositories/fixtures directory.

Regenerate kubernetes resources after making changes

To regenerate the kubernetes resources under ./config, run make manifests from the root of the project.

Generate reference yaml

make build-reference


The Go Gopher

There is no documentation for this package.


Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL