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 2021 Roadmap #5514

Merged
merged 1 commit into from
Mar 18, 2021
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
62 changes: 19 additions & 43 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 2020 Roadmap
Last updated: 04/10/2020
# 2021 Roadmap
Last updated: 03/09/2021

**What this roadmap is**

Expand All @@ -13,48 +13,24 @@ A list of promises, or a hard timeline commitment. Some items on this list are s

Feedback! We want to hear from each and every one of you: what are you personally excited about in Skaffold? What are the features that you most want to see? What would make your life easier? This is meant to be a public, living roadmap, where anyone can voice their opinions and we can get a true idea of where the broadest community support lies.

## New Features
# Product Excellence
### Improve Developer Experience for Helm Users
### Identify and Address Performance Bottlenecks

### Helm 3 Support - P0
Helm continues to be the definitive Kubernetes package manager, and Skaffold will always provide a first-class experience for developing applications with Helm. With the release of Helm 3, we’ll make sure that we make the transition from Helm 2 to Helm 3 straightforward for developers, and also ensure that we’re always backwards compatible between the two versions.
# CI/CD
### Create a Clearer Separation of Manifest Management (`render`) and Deployment (`deploy`) Phases

### Project Modules - P0
Currently, image artifacts in a project are handled by Skaffold individually. We'll add support for grouping artifacts into "modules", which will allow for much better dependency management in multi-artifact projects, and give the flexibility needed to more accurately translate existing projects into a Skaffold pipeline. This will allow for
* Using an artifact as a base image for another artifact
* Iterating on only one service, while deploying all other services in a project with a predefined tag
* Debugging individual services without redeploying all other services in a project
# User Experience and Extensibility
### Pre- and Post- Phase Hooks
### Deploy Directly to Docker
### Multi-Architecture Container Builds
### Terminal UX Improvements
### Extensible Skaffold API

### Extensibility Hooks - P1
We plan to provide pre- and post-stage hooks in Skaffold. This will allow users to extend the different stages of the Skaffold pipeline past their normal lifecycle, to provide more flexibility and extensibility in Skaffold workflows.
# Diagnostics and Debugging
### Improve Python Debug Support
### Improve Developer Assistance For Failures to Run/Debug Apps

### Buildpacks - P1
Cloud Native Buildpacks allow for zero-configuration container image builds. We're already working to provide first-class support for buildpacks in Skaffold, as we continue to ensure that Skaffold provides the best source-to-deployment development experience.

### Kubernetes Manifest Generation - P1
Another very important part of the source-to-deploy getting started experience in particular is removing the configuration burden from the user. We'll add simple Kubernetes manifest generation into `skaffold init`, giving users a pathway through Skaffold to directly migrate their existing applications over to Kubernetes.

### Private Registry Support - P2
We recognize that while many projects are set up to push images to privately hosted registries with a variety of configurations, Skaffold does not always provide the best experience with some of these setups. We're dedicated to fixing issues around this, to ensure that whatever your registry set up might be, Skaffold will never get in your way.

### Secret Management - P3
Secrets are essential in real-world applications, but managing secrets is a major point of friction for many Kubernetes developers. Users sometimes have to work around Skaffold to handle secrets, but we want users to work **with** Skaffold instead. We'll provide native support for secret management within Skaffold to ensure that this adds as little time to the development cycle as possible.

### Interactive UI - P3
We want to provide an excellent user interface for interacting with Skaffold, either in the terminal or hosted locally in the browser. This will be especially helpful for debugging complex applications, but can also be useful for interacting with the different phases of a Skaffold pipeline in a visual way.

## Existing Feature Maturity and Improvement

### Actionable Error Messages - P0
Skaffold will always tell you when something goes wrong, but it's not always easy to tell what went wrong. We’d like to see how we can overhaul the error messaging surfaced through Skaffold to make sure that when something doesn't go as expected, users can always have actionable feedback to speed up their development.

### Debug goes GA - P0
Debugging applications during development is an integral part of a typical dev workflow, and we see a lot of value in continuing to invest in the `skaffold debug` experience. We’d love to be able to express confidence in the maturity of the debugging functionality in Skaffold by the end of the year.

### Init goes beta - P0
As part of our commitment to providing an excellent getting started experience for new Skaffold users, we’d like to shift the `skaffold init` command into beta. There are still many moving parts to this functionality that are changing, but as we flesh this out we’ll be growing much more confident in the onboarding experience that this provides.

### Render goes beta - P1
`skaffold render` is the crucial command backing our support for GitOps development workflows. We’ll be working to make sure that this command works natively with all of our supported deployers, and that the feature focuses on ease-of-use as part of our efforts to make Skaffold more compatible with the CI/CD stage of dev workflows.

### GitOps - P2
We want to make sure that Skaffold also works very well in projects configured with GitOps. Skaffold will support Kubernetes manifest rendering and project snapshotting to provide users with the artifacts they need for GitOps-based CI/CD workflows.
# OSS Health and Community Engagement
### Reduce PR Review Latency
### Improve Issue Response Time