Skip to content

Commit 941784b

Browse files
committed
docs: add kusion server roadmap
1 parent 9032d50 commit 941784b

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

docs/design/kusion_server/roadmap.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Kusion Server Roadmap
2+
3+
## Current gaps between upstream and internal version
4+
5+
The following can be contributed back to upstream in August with the exception of `KCL Configuration Management`.
6+
7+
### KCL Configuration Management
8+
- Initialize and modify `.k` files with new branches
9+
- Update configuration items
10+
- Manage configuration versions
11+
12+
### AuthN, AuthZ
13+
- Support authentication based on JWT token
14+
- Support auth whitelist
15+
- Support RBAC if an IAM system is present
16+
- Support ability to generate a token if an IAM system is present
17+
18+
### Version management
19+
- Stack status management
20+
- Persistent last `generated`/`previewed`/`applied` spec version
21+
- Support explicit spec ID or content when `previewing`/`applying`
22+
23+
### Resources management
24+
- Centrally write resource metadata and attributes after apply
25+
- Basic ability to look them up based on different criteria:
26+
- Project/Stack/Workspace
27+
- Example `"All resources for project X, stack Y in workspace Z"`
28+
- ResourcePlane/ResourceType
29+
- Example: `"All AWS S3 buckets for project X"`
30+
- Any field in resource attributes
31+
- Example: `"All MySQL databases in production with version 5.7 in region us-west-1"`
32+
33+
### Secrets management
34+
- Manage application secrets with third-party vendors
35+
- API to manage secrets associated with a `stack` (usually application secrets)
36+
- Automatically replace them to actual values during preview/apply without showing them
37+
- Workspace credential management with third-party vendors
38+
- API to manage `KubeConfig`/`AccessKey`/`Secretkey` associated with a `workspace`
39+
- Automatically replace them to actual values during preview/apply without showing them
40+
41+
### Quality-of-life improvements
42+
- Support applying through a federated cluster via a gateway runtime
43+
- The ability to list `projects`/`stacks`/`workspaces` with custom filters, for example:
44+
- list all `projects` under org x
45+
- list all `stacks` under org x and project y
46+
- find `workspace` with the name x
47+
- Better search experience
48+
- Project name and path validation
49+
- The ability to point to a `project` by name instead of ID
50+
- The ability to automatically create relevant orgs when creating projects
51+
- if exists, use it; otherwise create a new one
52+
- The ability to set up a default backend during startup
53+
- Automatically lock the `stack` when other operations are in progress
54+
- Gating mechanism for proceeding into the next stage in lifecycle (generate -> preview -> apply)
55+
- Automatically generate swag docs
56+
57+
## Next up...
58+
59+
These are what's considered interesting in the next few months for Kusion server to work on...
60+
61+
### AuthN and AuthZ
62+
- This will likely be integration with open-source IAM solutions
63+
- More ways to AuthN and AuthZ than JWT
64+
- Support organizational roles and role assignments
65+
66+
### Resource Graphs
67+
- Grant customized permissions on resources created by Kusion server
68+
- The ability to render a topological view of resources on said dimensions
69+
70+
### GitOps
71+
- Manage automated GitOps triggers
72+
- Support master-worker architecture
73+
74+
### Variables and Variable Sets
75+
- Support platform configurations that can set on any scopes: global, org, project, workspace, etc
76+
- Define priorities when multiple variables with the same key are present and may result in a scope conflict
77+
- Support more third-party secret management solutions for storing sensitive variables
78+
79+
### Audit trails and workflows
80+
- Create audit trails with subject, object and operation
81+
- Persist workflow executions, e.g. all the generate, preview, apply operations
82+
- The ability to insert custom stages in these workflow, e.g. approvals
83+
84+
### Policies
85+
- Render-time (generate) policies and Execution-time (preview/apply) policy
86+
- Both built-in and customizable

0 commit comments

Comments
 (0)