Skip to content

Commit

Permalink
Add list of toolchain components to README (#3108)
Browse files Browse the repository at this point in the history
* Add list of toolchain components to README
  • Loading branch information
bgrant0607 committed May 7, 2022
1 parent bc22abb commit db672f7
Showing 1 changed file with 36 additions and 1 deletion.
37 changes: 36 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,46 @@ See [the rationale](https://kpt.dev/guides/rationale) for more background.
The best place to get started and learn about specific features of kpt is
to visit the [kpt website](https://kpt.dev/).

### Install kpt
## Install kpt

kpt installation instructions can be found on
[kpt.dev/installation](https://kpt.dev/installation/)

## kpt components

The kpt toolchain includes the following components:

- **kpt CLI**: The [kpt CLI](https://kpt.dev/reference/cli/) supports package and function operations, and also
deployment, via either direct apply or GitOps. By keeping an inventory of deployed resources, kpt enables resource pruning,
aggregated status and observability, and an improved preview experience.

- **Function SDKs**: Any general-purpose or domain-specific language can be used to create functions to transform and/or validate
the YAML KRM input/output format, but we provide SDKs to simplify the function authoring process, in
[Go](https://kpt.dev/book/05-developing-functions/02-developing-in-Go),
[Typescript](https://kpt.dev/book/05-developing-functions/03-developing-in-Typescript), and
[Starlark](https://catalog.kpt.dev/starlark/v0.2/), a Python-like embedded language.

- **Function catalog**: A [catalog](https://catalog.kpt.dev/) of off-the-shelf, tested functions. kpt makes configuration
easy to create and transform, via reusable functions. Because they are expected to be used for in-place transformation,
the functions need to be idempotent.

- **Package orchestrator**:
The [package orchestrator](https://github.com/GoogleContainerTools/kpt/blob/main/docs/design-docs/07-package-orchestration.md)
enables the magic behind the unique WYSIWYG experience. It provides a control plane for creating,
modifying, updating, and deleting packages, and evaluating functions on package data. This enables operations on packaged resources
similar to operations directly on the live state through the Kubernetes API.

- **Config Sync**: While the package orchestrator
can be used with any GitOps tool, Config Sync provides a reference GitOps implementation to complete the WYSIWYG management
experience and enable end-to-end development of new features, such as
[OCI-based packages](https://github.com/GoogleContainerTools/kpt/issues/2300). Config Sync is also helping to drive improvements
in upstream Kubernetes. For instance, Config Sync is built on top of [git-sync](https://github.com/kubernetes/git-sync) and
leverages [Kustomize](https://kustomize.io) to automatically render manifests on the fly when needed. It uses the same apply
logic as the kpt CLI.

- **Backstage UI plugin**: We've created a proof-of-concept UI to demonstrate the WYSIWYG experience that's possible on top of the
package orchestrator. More scenarios can be supported by implementing form-based editors for additional Kubernetes resource types.

## Roadmap

You can read about the big upcoming features in the
Expand Down

0 comments on commit db672f7

Please sign in to comment.