kf

module
v2.11.26 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2024 License: Apache-2.0

README

Kf

Docs go.dev reference Go Report Card Releases LICENSE

This is not an officially supported Google product.

Using Kf

Start with the docs at 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:

./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:

$ ./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:

kubectl patch kfsystem kfsystem --type='json' -p="[{'op':'replace','path':'/spec/kf/enabled','value':false}]"

We use 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:

$ ./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 downlowed from official releases or build 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.

Directories

Path Synopsis
cmd
kf
nop
pkg
admission/validation
Package kfvalidation contains validation webhook callbacks for Kf components that require cross-component lookups.
Package kfvalidation contains validation webhook callbacks for Kf components that require cross-component lookups.
apis/kf
Package kf contains shared code for all versions of Kf dealing with the underlying Kubernetes infrastructure it uses.
Package kf contains shared code for all versions of Kf dealing with the underlying Kubernetes infrastructure it uses.
apis/kf/config
Package config holds the typed objects that define the schemas for assorted ConfigMap objects on which Kf depends
Package config holds the typed objects that define the schemas for assorted ConfigMap objects on which Kf depends
client/kf/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/kf/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/kf/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/kf/clientset/versioned/typed/kf/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/kf/clientset/versioned/typed/kf/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/kube-aggregator/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/kube-aggregator/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/kube-aggregator/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/kube-aggregator/clientset/versioned/typed/apiregistration/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/kube-aggregator/clientset/versioned/typed/apiregistration/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/kube/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/kube/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/kube/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/kube/clientset/versioned/typed/networking/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/kube/clientset/versioned/typed/networking/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/networking/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/networking/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/networking/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/networking/clientset/versioned/typed/networking/v1alpha3
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/networking/clientset/versioned/typed/networking/v1alpha3/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
internal/osbutil
Package osbutil provides utilties for interacting with Open Service Brokers.
Package osbutil provides utilties for interacting with Open Service Brokers.
kf
kf/algorithms
Package algorithms holds generic algorithms that are useful throughout the project.
Package algorithms holds generic algorithms that are useful throughout the project.
kf/apps
Package apps provides a cf compatible way of managing Knative Services as cf apps.
Package apps provides a cf compatible way of managing Knative Services as cf apps.
kf/apps/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/buildpacks/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/builds
Package builds provides access to the Kf build process.
Package builds provides access to the Kf build process.
kf/builds/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/cfutil
Package cfutil is for utilities around parsing and generating CF compatible things like application manifests and VCAP variables.
Package cfutil is for utilities around parsing and generating CF compatible things like application manifests and VCAP variables.
kf/cfutil/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/commands/spaces
Package spaces contains the kf sub-commands for manipulating spaces.
Package spaces contains the kf sub-commands for manipulating spaces.
kf/configmaps
Package configmaps contains the client for working with Kubernetes ConfigMaps.
Package configmaps contains the client for working with Kubernetes ConfigMaps.
kf/configmaps/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/describe
Package describe contains describers similar to Kubectl's describe package.
Package describe contains describers similar to Kubectl's describe package.
kf/doctor/troubleshooter
Package troubleshooter holds logic for debugging individual Kubernetes objects.
Package troubleshooter holds logic for debugging individual Kubernetes objects.
kf/internal/genericcli
Package genericcli includes utilities to build generic CLI commands for operating with Kubernetes style resources.
Package genericcli includes utilities to build generic CLI commands for operating with Kubernetes style resources.
kf/internal/tableclient/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/internal/tools/clientgen/gentest
Package gentest contains tests for the client generator.
Package gentest contains tests for the client generator.
kf/logs/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/marketplace
Package marketplace provides access to the resources provided by service brokers for consumption by developers.
Package marketplace provides access to the resources provided by service brokers for consumption by developers.
kf/marketplace/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/networkpolicies
Package networkpolicies contains the client for working with Kubernetes NetworkPolicies.
Package networkpolicies contains the client for working with Kubernetes NetworkPolicies.
kf/networkpolicies/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/routes
Package routes provides a way of managing a v1alpha1.Route.
Package routes provides a way of managing a v1alpha1.Route.
kf/routes/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/secrets
Package secrets contains the client for working with Kubernetes Secrets.
Package secrets contains the client for working with Kubernetes Secrets.
kf/secrets/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/service-brokers/cluster
Package cluster contains the client for working with cluster scoped service brokers.
Package cluster contains the client for working with cluster scoped service brokers.
kf/service-brokers/cluster/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/service-brokers/namespaced
Package namespaced contains the client for working with namespace scoped service brokers.
Package namespaced contains the client for working with namespace scoped service brokers.
kf/service-brokers/namespaced/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/serviceinstancebindings
Package serviceinstancebindings contains the client for working with Kf ServiceInstanceBindings.
Package serviceinstancebindings contains the client for working with Kf ServiceInstanceBindings.
kf/serviceinstancebindings/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/serviceinstances
Package serviceinstances contains the client for working with Kf ServiceInstances.
Package serviceinstances contains the client for working with Kf ServiceInstances.
kf/serviceinstances/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/sourcepackages
Package sourcepackages provides a way of SourcePackages.
Package sourcepackages provides a way of SourcePackages.
kf/sourcepackages/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/spaces
Package spaces provides a cf compatible way of managing spaces in the cluster.
Package spaces provides a cf compatible way of managing spaces in the cluster.
kf/spaces/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/tasks
Package tasks contains the client for working with Kf Tasks.
Package tasks contains the client for working with Kf Tasks.
kf/tasks/fake
Package fake is a generated GoMock package.
Package fake is a generated GoMock package.
kf/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
kf/testutil/integration
Package integration is a generated GoMock package.
Package integration is a generated GoMock package.
reconciler/app/resources
Package resources holds simple functions for synthesizing child resources from an App.
Package resources holds simple functions for synthesizing child resources from an App.
reconciler/build/resources
Package resources holds simple functions for synthesizing child resources from a Build.
Package resources holds simple functions for synthesizing child resources from a Build.
reconciler/integration
Package integration contains integration tests for the reconciler and its dependencies.
Package integration contains integration tests for the reconciler and its dependencies.
reconciler/reconcilerutil
Package reconcilerutil holds utility functions for Kf reconcilers similar to go's ioutil and httputil packages.
Package reconcilerutil holds utility functions for Kf reconcilers similar to go's ioutil and httputil packages.
reconciler/route
Package route contains the reconciler for three types:
Package route contains the reconciler for three types:
reconciler/route/resources
Package resources holds simple functions for synthesizing child resources from a Route.
Package resources holds simple functions for synthesizing child resources from a Route.
reconciler/space/resources
Package resources holds simple functions for synthesizing child resources from a Space.
Package resources holds simple functions for synthesizing child resources from a Space.
sourceimage
Package sourceimage includes utilities to pack and unpack source code from OCI containers so a normal container registry can be used as a source management system.
Package sourceimage includes utilities to pack and unpack source code from OCI containers so a normal container registry can be used as a source management system.
system/testing
Package testing sets environment variables for server tests.
Package testing sets environment variables for server tests.

Jump to

Keyboard shortcuts

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