Skip to content

Commit b3d1aca

Browse files
Update CoC, add link to CNCF Sandbox, update README (#4201)
Signed-off-by: Gergely Csatari <[email protected]>
1 parent 8afdccc commit b3d1aca

File tree

3 files changed

+64
-137
lines changed

3 files changed

+64
-137
lines changed

CODE_OF_CONDUCT.md

Lines changed: 0 additions & 93 deletions
This file was deleted.

README.md

Lines changed: 62 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33

44
# kpt: Automate Kubernetes Configuration Editing
55

6-
kpt is a package-centric toolchain that enables a WYSIWYG configuration
7-
authoring, automation, and delivery experience, which simplifies managing
8-
Kubernetes platforms and KRM-driven infrastructure (e.g.,
9-
[Config Connector](https://github.com/GoogleCloudPlatform/k8s-config-connector),
10-
[Crossplane](https://crossplane.io)) at scale by manipulating
11-
declarative [Configuration as Data](docs/design-docs/06-config-as-data.md).
6+
kpt is a package-centric toolchain that enables a WYSIWYG configuration authoring, automation, and delivery experience,
7+
which simplifies managing Kubernetes platforms and KRM-driven infrastructure (e.g.,
8+
[Config Connector](https://github.com/GoogleCloudPlatform/k8s-config-connector), [Crossplane](https://crossplane.io)) at
9+
scale by manipulating declarative [Configuration as Data](docs/design-docs/06-config-as-data.md).
1210

1311
*Configuration as Data* is an approach to management of configuration which:
1412

@@ -21,69 +19,69 @@ declarative [Configuration as Data](docs/design-docs/06-config-as-data.md).
2119
upon the configuration data; clients manipulating configuration data don’t
2220
need to directly interact with storage (git, container images).
2321

24-
See [the FAQ](https://kpt.dev/faq/) for more details about how kpt is different
25-
from alternatives.
22+
See [the FAQ](https://kpt.dev/faq/) for more details about how kpt is different from alternatives.
2623

2724
## Why kpt?
2825

29-
kpt enables WYSIWYG editing and interoperable automation applied to declarative
30-
configuration data, similar to how the live state can be modified with imperative
31-
tools.
26+
kpt enables WYSIWYG editing and interoperable automation applied to declarative configuration data, similar to how the
27+
live state can be modified with imperative tools.
3228

3329
See [the rationale](https://kpt.dev/guides/rationale) for more background.
3430

35-
The best place to get started and learn about specific features of kpt is
36-
to visit the [kpt website](https://kpt.dev/).
31+
The best place to get started and learn about specific features of kpt is to visit the [kpt website](https://kpt.dev/).
3732

3833
## Install kpt
3934

40-
kpt installation instructions can be found on
41-
[kpt.dev/installation](https://kpt.dev/installation/)
35+
kpt installation instructions can be found on [kpt.dev/installation](https://kpt.dev/installation/)
4236

4337
## kpt components
4438

4539
The kpt toolchain includes the following components:
4640

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

51-
- **Function SDKs**: Any general-purpose or domain-specific language can be used to create functions to transform and/or validate
52-
the YAML KRM input/output format, but we provide SDKs to simplify the function authoring process, in
53-
[Go](https://kpt.dev/book/05-developing-functions/02-developing-in-Go),
45+
- [**Function SDKs**](https://github.com/kptdev/krm-functions-sdk): Any general-purpose or domain-specific language can
46+
be used to create functions to transform and/or validate the YAML KRM input/output format, but we provide SDKs to
47+
simplify the function authoring process, in [Go](https://kpt.dev/book/05-developing-functions/02-developing-in-Go),
5448
[Typescript](https://kpt.dev/book/05-developing-functions/03-developing-in-Typescript), and
5549
[Starlark](https://kpt.dev/book/05-developing-functions/04-developing-in-Starlark), a Python-like embedded language.
5650

57-
- **Function catalog**: A [catalog](https://catalog.kpt.dev/) of off-the-shelf, tested functions. kpt makes configuration
58-
easy to create and transform, via reusable functions. Because they are expected to be used for in-place transformation,
59-
the functions need to be idempotent.
51+
- [**Function catalog**](https://github.com/kptdev/krm-functions-catalog): A [catalog](https://catalog.kpt.dev/) of
52+
off-the-shelf, tested functions. kpt makes configuration easy to create and transform, via reusable functions. Because
53+
they are expected to be used for in-place transformation, the functions need to be idempotent.
54+
55+
- [**Backstage UI plugin**](https://github.com/kptdev/kpt-backstage-plugins): We've created a proof-of-concept UI in the
56+
form of a [Backstage UI plugin](https://github.com/kptdev/kpt-backstage-plugins) to demonstrate the WYSIWYG
57+
experience that's possible on top of the package orchestrator. More scenarios can be supported by implementing
58+
form-based editors for additional Kubernetes resource types.
59+
60+
- [**Package orchestrator (Porch)**](https://docs.nephio.org/docs/porch/):
61+
The [package orchestrator](https://github.com/kptdev/kpt/blob/main/docs/design-docs/07-package-orchestration.md)
62+
enables the magic behind the unique WYSIWYG experience. It provides a control plane for creating, modifying, updating,
63+
and deleting packages, and evaluating functions on package data. This enables operations on packaged resources similar
64+
to operations directly on the live state through the Kubernetes API. Porch is deceloped in the
65+
[Nephio](https://docs.nephio.org/) community.
66+
67+
- **Config Sync**: While the package orchestrator can be used with any GitOps tool,
68+
[Config Sync](https://github.com/GoogleContainerTools/kpt-config-sync) provides a reference GitOps implementation to
69+
complete the WYSIWYG management experience and enable end-to-end development of new features, such as
70+
[OCI-based packages](https://github.com/GoogleContainerTools/kpt/issues/2300). Config Sync is also helping to drive
71+
improvements in upstream Kubernetes. For instance, Config Sync is built on top of
72+
[git-sync](https://github.com/kubernetes/git-sync) and leverages [Kustomize](https://kustomize.io) to automatically
73+
render manifests on the fly when needed. It uses the same apply logic as the kpt CLI.
74+
[Config Sync](https://github.com/GoogleContainerTools/kpt-config-sync) is not maintained by the kpt community as we
75+
are looking for integrations to other GitOps tools.
6076

61-
- **Package orchestrator**:
62-
The [package orchestrator](https://github.com/GoogleContainerTools/kpt/blob/main/docs/design-docs/07-package-orchestration.md)
63-
enables the magic behind the unique WYSIWYG experience. It provides a control plane for creating,
64-
modifying, updating, and deleting packages, and evaluating functions on package data. This enables operations on packaged resources
65-
similar to operations directly on the live state through the Kubernetes API.
66-
67-
- **Config Sync**: While the package orchestrator
68-
can be used with any GitOps tool, [Config Sync](https://github.com/GoogleContainerTools/kpt-config-sync) provides a reference GitOps implementation to complete the WYSIWYG management
69-
experience and enable end-to-end development of new features, such as
70-
[OCI-based packages](https://github.com/GoogleContainerTools/kpt/issues/2300). Config Sync is also helping to drive improvements
71-
in upstream Kubernetes. For instance, Config Sync is built on top of [git-sync](https://github.com/kubernetes/git-sync) and
72-
leverages [Kustomize](https://kustomize.io) to automatically render manifests on the fly when needed. It uses the same apply
73-
logic as the kpt CLI.
74-
75-
- **Backstage UI plugin**: We've created a proof-of-concept UI in the form of a [Backstage UI plugin](https://github.com/GoogleContainerTools/kpt-backstage-plugins) to demonstrate the WYSIWYG experience that's possible on top of the
76-
package orchestrator. More scenarios can be supported by implementing form-based editors for additional Kubernetes resource types.
7777

7878
## Roadmap
7979

80-
You can read about the big upcoming features in the
81-
[roadmap doc](/docs/ROADMAP.md).
80+
You can read about the big upcoming features in the [roadmap doc](/docs/ROADMAP.md).
8281

8382
## Contributing
8483

85-
If you are interested in contributing please start with
86-
[contribution guidelines](CONTRIBUTING.md).
84+
If you are interested in contributing please start with [contribution guidelines](CONTRIBUTING.md).
8785

8886
## License
8987

@@ -95,4 +93,24 @@ We would love to keep in touch:
9593

9694
1. Join our [Slack channel](https://kubernetes.slack.com/channels/kpt). You'll
9795
need to join [Kubernetes on Slack](https://slack.k8s.io/) first.
98-
1. Join our [email list](https://groups.google.com/forum/?oldui=1#!forum/kpt-users)
96+
1. Join our [Discussions](https://github.com/kptdev/kpt/discussions)
97+
98+
## License
99+
100+
Code is under the [Apache License 2.0](LICENSE), documentation is [CC BY 4.0](LICENSE-documentation).
101+
102+
## Governance
103+
104+
The governance of the kpt project and KRM Functiona Catalog are described in the
105+
[governance repo](https://github.com/kptdev/governance).
106+
107+
## Code of Conduct
108+
109+
The kpt project and the KRM Functions Catalog are following the
110+
[CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
111+
More information and links about the CNCF Code of Conduct are [here](code-of-conduct.md).
112+
113+
## CNCF
114+
115+
The kpt project including the KRM Functions Catalog is a [CNCF Sandbox](https://www.cncf.io/sandbox-projects/) project.
116+

code-of-conduct.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
The kpt project follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
2+
More information and links about the CNCF Code of Conduct are [here](https://www.cncf.io/conduct/).

0 commit comments

Comments
 (0)