diff --git a/doc/policy/development_stages_support.md b/doc/policy/development_stages_support.md index c9b015e6de54a618dd1402b1d902535fc24198fe..2d4d7b70ea5cd8c93855220d5179a297e1d4c3c0 100644 --- a/doc/policy/development_stages_support.md +++ b/doc/policy/development_stages_support.md @@ -76,3 +76,41 @@ Generally available features: - Are [fully supported](https://about.gitlab.com/support/statement-of-support/) and documented. - Have a complete user experience aligned with GitLab design standards. - Must be available on all GitLab platforms (GitLab.com, GitLab.com Cells, GitLab Self-Managed, GitLab Dedicated, GitLab Dedicated for Government). + +## Feature availability and infrastructure requirements + +A generally available feature is production-ready, supported, and documented on all GitLab platforms. +We aim to make features as easy to adopt as possible. However, some features may require additional infrastructure components, specific deployment models, or configuration to function. + +Prominent examples of features that are generally available but may require additional infrastructure include: + +- [GitLab CI/CD](../ci/_index.md), which requires a [GitLab Runner](https://docs.gitlab.com/runner/) deployment. +- [GitLab Pages](../user/project/pages/_index.md), which requires [specific configuration](../administration/pages/_index.md). +- [Advanced Search](../user/search/advanced_search.md), which requires Elasticsearch or OpenSearch integration. + +These infrastructure requirements vary by GitLab platform: + +- GitLab SaaS platforms (GitLab.com, GitLab Dedicated): Feature the lowest total cost of ownership, because no infrastructure management is required. GitLab provides and manages all infrastructure requirements for generally available features, so they can be adopted without additional customer infrastructure investment. +- GitLab Self-Managed: Features complete control for customers over infrastructure and data. Customers are responsible for providing and managing all infrastructure requirements. Feature availability does not guarantee that features can be adopted without additional infrastructure or configuration. + +For GitLab Self-Managed specifically, adopting features might require: + +- Additional stateful components such as databases, search engines, or message queues. +- Specific deployment models. For example, Kubernetes-only features that are not available in the Linux package. +- Minimum resource requirements beyond standard GitLab recommendations. +- External service dependencies or specialized infrastructure capabilities. + +These definitions are in line with our [GitLab Self-Managed packaging approach](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/selfmanaged_segmentation/): + +- Foundational features and their dependencies are packaged for all supported deployment models. They are available and can be adopted on all GitLab instances without additional infrastructure. This includes GitLab itself and Gitaly. +- Some advanced features might require customers to deploy additional infrastructure components and configurations, or use deployment models that can + support their operational requirements. They can only be adopted by customers who provide these requirements. + +GitLab Self-Managed customers should review feature documentation to understand: + +- Specific infrastructure requirements. +- Supported deployment models. +- Any additional components needed for feature adoption. + +Documentation for features that require additional infrastructure provide clear guidance on deployment options and graceful degradation behavior when dependencies +are unavailable.