# kf **Repository Path**: mirrors_google/kf ## Basic Information - **Project Name**: kf - **Description**: Feels like Cloud Foundry. Runs on Kubernetes. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-19 - **Last Updated**: 2025-12-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kf [![Docs](https://img.shields.io/badge/Docs-kf.dev-brightgreen)](https://kf.dev) [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white)](https://pkg.go.dev/github.com/google/kf) [![Go Report Card](https://goreportcard.com/badge/google/kf)](https://goreportcard.com/report/github.com/google/kf) [![Releases](https://img.shields.io/github/release-pre/google/kf.svg)](https://github.com/google/kf/releases) [![LICENSE](https://img.shields.io/github/license/google/kf.svg)](https://github.com/google/kf/blob/main/LICENSE) This is not an officially supported Google product. ## Using Kf Start with the docs at [kf.dev](https://kf.dev) ## Building and developing Kf If you want to build and deploy Kf on your own, start with the following. ### Getting started the manual way Follow the install instructions at https://cloud.google.com/migrate/kf/docs/ to create a GKE cluster, install Kf into it, and deploy an app with the `kf` CLI. ## Deploy a local Kf install to a new cluster If you need to set up a new development cluster run the following command: ```sh ./hack/deploy-dev-release.sh ``` It will fetch all your local sources and kick off a Cloud Build that builds a version of Kf, creates a GKE cluster and installs the Kf version onto it. ### Iterative development **Building the CLI:** ```sh $ ./hack/build.sh ``` **Installing Kf server-side components:** ***With the Operator*** Kf is installed through the Operator. Operator code is in the `operator` folder. To apply current change to the server, run `hack/apply-kf-with-operator.sh`. This script will build `kf` with `ko`, copy the built yaml file into the operator data folder(operator/cmd/manager/kodata/kf/), then build and apply the `operator`. ***Without the Operator*** Kf can be installed independently. To do so, you will need to disable the Operator first. One way to do so is to run: ```sh kubectl patch kfsystem kfsystem --type='json' -p="[{'op':'replace','path':'/spec/kf/enabled','value':false}]" ``` We use [ko](https://github.com/google/ko) for rapid development and during the release process to build a full set of `kf` images and installation YAML. Run the following to stage local changes on a targeted cluster: ```sh $ ./hack/ko-apply.sh ``` This will build any images required by `config/`, upload them to the provided registry, and apply the resulting configuration to the current cluster. **Verify the installation of Kf components:** ***Kf CLI*** Kf CLI can be downloaded from [official releases](https://cloud.google.com/migrate/kf/docs/2.11/downloads) or built locally. To build Kf CLI locally, run `hack/build.sh`. A executable `kf` will be generated under `bin`. ***Kf server side component** Kf has a built-in self diagnostic tool called `Kf doctor`. Run `kf doctor` to run through the diagnotics to make sure the Kf server side component and dependencies are properly installed. **Run tests:** All tests can be run using the script `hack/test.sh`. Integration tests can be skipped by setting the environment variable `SKIP_INTEGRATION` to `true`. Optionally, unit tests can be run separately with script `hack/unit-test.sh`. Integration tests can be run with script `hack/integration-test.sh`. Integrationt tests requires a Kubernetes cluster with Kf server component installed.