Documentation: Add a matrix style supported features
Problem
At present it is hard to quickly understand what features are supported by runway and therefore what features are available for consumption by users.
Proposal
We should create a table or reference that is easy to understand at a glance and allows users to self serve. This should be present in both the top level Runway group as well as in the handbook page.
As there is not yet a complex matrix of supported features and versions, an MVP of a simple table that is duplicated in the handbook and the runway group landing page.
This is a common pattern that we can see at:
- https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplify-support.html
- https://www.pulumi.com/docs/concepts/vs/terraform/#differences
The table should contain:
- All currently supported features
- Popular, but unsupported features (e.g. Database - with explanation of workaround)
- Planned Features
## Supported Features
Feature Support Containers ✅ Observability ✅ SQL Database ❌ Object Storage ❌ NoSQL/Document DB ❌ Secrets Management Planned
Cache/MemoryStore Planned
Open Questions
What level of abstraction should a supported feature have (e.g. containers Vs Cloud Run)?How should we handle manual workarounds (i.e. Database support is Manual Vs Automatic)?
Exit Criteria
-
Decision on what "level of abstraction" a supported feature should be -
Up to Date Supported list of features in a table like above -
Feedback issue/feature request link included -
Table with supported features avaialable on Runway Group Landing Page - https://gitlab.com/gitlab-com/gl-infra/platform/runway -
Table with supported features avaialable on Runway Handbook Page - https://about.gitlab.com/handbook/engineering/infrastructure/platforms/tools/runway/
Closed Questions
1. What level of abstraction should a supported feature have (e.g. Containers Vs Cloud Run)?
After the discussion in thread , we have decided that the level that we describe the feature should not make reference to specific implementations in GCP or any cloud provider (e.g. Cloud Run). Instead we should use terms like Container, Database, Secrets Management to describe supported features.