|
| 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