Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update roadmap #3100

Merged
merged 1 commit into from
May 6, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 12 additions & 55 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,26 @@
# kpt roadmap for 2021
# kpt roadmap

Last updated: November 5th, 2021
Last updated: May 6th, 2022

Please follow the [installation](https://kpt.dev/installation/) guide for installing the latest version of kpt.

## Latest releases
We are planning to build a new roadmap pending user feedback on the new package orchestration capabilities.

### Targeting resources in `kpt fn` commands
## Latest releases

Users want to invoke a kpt function (imperatively and declaratively) on a subset of
resources in the package by selecting them on the basis of GVKNN(Group, Version, Kind, Name, Namespace), package-path,
file path etc. For example, set work-load identity annotation on all Kubernetes
Service Account resources in this package. Here is the documentation for list of
available selectors for [render] and [eval]. Available in [v1.0.0-beta.7]+ versions of kpt.
More selectors will be added incrementally.
Coming soon...

## Detailed release notes
Please refer to the [release notes] page for more information about the latest features.

## Upcoming features

### Improve Function Authoring Experience

We need a rich ecosystem of third party functions. Users should be able to write
functions with custom logic very quickly using the tools they are familiar with.
So we are investing on making function authoring experience very easy. This is an
ongoing effort.
- [Starlark enhancements](https://catalog.kpt.dev/starlark/v0.3/?id=developing-starlark-script)
have been released.
- For Golang SDK([issue](https://github.com/GoogleContainerTools/kpt/issues/2568)), **Estimated release date:** End of November 2021.

### Best practices for kpt with idiomatic package examples

We need to publish best practices to use kpt inorder to create and use kpt packages.
This will help users to understand the right way of using kpt. These best practice
guidelines should be backed by idiomatic kpt package examples. These packages should
be designed reflecting the best practices, easily discoverable and simple to understand.
This is an ongoing effort. [Tracking issue](https://github.com/GoogleContainerTools/kpt/issues/2541)
- Best practices guide, **Estimated release date:** End of November 2021.
- Idiomatic package examples, **Estimated release date:** End of December 2021.

### Merging pipeline section during `kpt pkg update`

Currently, `kpt pkg update` doesn't merge pipeline section in the Kptfile as expected.
The fact that pipeline section is non-associative list with defined ordering makes it
very difficult to merge with upstream counterpart. This is forcing users to use setters
and discouraging them from declaring other functions in the pipeline as they will be
deleted during `kpt pkg update`. Merging pipeline correctly will reduce
huge amount of friction in declaring new functions which in turn helps to avoid
excessive parameterization. [Tracking issue](https://github.com/GoogleContainerTools/kpt/issues/2529).
**Estimated release date:** End of December 2021.
A few areas of work are ongoing. (This is not exhaustive.)

### Package orchestration

See the [package orchestration roadmap](https://github.com/GoogleContainerTools/kpt/blob/main/porch/docs/porch-roadmap.md)
for more details.

### Explore various options for function runtime

Expand All @@ -59,15 +30,6 @@ be exploring different function runtimes in order to address those issues. This
just an exploratory step and actual implementation if any, will be taken up after December 2021.
[Tracking issue](https://github.com/GoogleContainerTools/kpt/issues/2567).

### Integrate kpt with Cloud Code

One of the major areas of investment is to integrate [Cloud Code](https://cloud.google.com/code) with kpt to provide
package authoring assistance. Users can author Kptfile and functionConfig files with
features like auto-complete and error detection. This significantly improves the
discoverability of Kptfile schema, catalog functions and their functionConfigs.
- Cloud code integration with Kptfile schema has been [released](https://github.com/GoogleCloudPlatform/cloud-code-intellij/blob/main/CHANGELOG.md) and available from 21.10.1+ versions of Cloud Code.
- Function catalog integration, **Estimated release date:** End of December 2021.

### Additional storage beyond Git

Currently, `kpt pkg` workflows only support Git repositories. There is some increasing
Expand All @@ -79,15 +41,10 @@ be spending time understanding the use-cases and need for this project. [Trackin
1. [email protected]

[new issue]: https://github.com/GoogleContainerTools/kpt/issues/new/choose
[declarative function execution]: https://kpt.dev/book/04-using-functions/01-declarative-function-execution
[apply-setters documentation]: https://catalog.kpt.dev/apply-setters/v0.1/
[The Kpt Book]: https://kpt.dev/book/
[apply chapter]: https://kpt.dev/book/06-apply/
[cli-utils]: https://github.com/kubernetes-sigs/cli-utils
[function catalog]: https://catalog.kpt.dev/
[kpt milestones]: https://github.com/GoogleContainerTools/kpt/milestones
[migration guide]: https://kpt.dev/installation/migration
[render]: https://kpt.dev/book/04-using-functions/01-declarative-function-execution?id=specifying-selectors
[eval]: https://kpt.dev/book/04-using-functions/02-imperative-function-execution?id=specifying-selectors
[v1.0.0-beta.7]: https://github.com/GoogleContainerTools/kpt/releases/tag/v1.0.0-beta.7
[release notes]: https://github.com/GoogleContainerTools/kpt/releases
[release notes]: https://github.com/GoogleContainerTools/kpt/releases