Feature Lifecycle
This document describes the lifecycle of features in OSM, their versioning phases, and information about their availability, stability, upgradeability, support, and deprecation policy.
Feature versioning
A feature in OSM is versioned based on its maturity. The following table describes the versioning states for a feature, along with information about each state in the feature’s versioning lifecycle.
Alpha | Beta | Stable | |
---|---|---|---|
Definition | Feature is experimental and under active development. APIs may change and require a migration effort during version upgrades. | Feature is ready for use but needs to be vetted in production environments. APIs may change and require a migration effort during version upgrades. | Feature is ready for use in production environments. APIs are expected to be supported in several subsequent releases. |
Stability | Using the feature may expose bugs. Disabled by default. | Well tested and usable in production. | Well tested and stable for production use. |
Support | May not be backward compatible. Behavior is subject to change and feature may be deprecated at any time. | May not be backward compatible. Behavior is subject to change and feature is expected to be supported in subsequent versions. | Behavior is not expected to change and is considered usable for several subsequent releases. |
Deprecation Policy | None. Can be deprecated at any time. | Feature will be supported for at least 2 minor releases, and will only be deprecated with advanced notice. | Feature will be supported for several subsequent releases, and will only be deprecated with advanced notice and an upgrade path to alternative options. |
Documentation | Documentation may or may not be present. | Documentation present on docs.openservicemesh.io with information on how to use it. | Documentation present on docs.openservicemesh.io with thorough guide and sample demos. |
Feature state
The following sections list the features supported in OSM and their versioning state.
Core
Feature | State |
---|---|
OSM CLI | Stable |
Control plane install using OSM CLI and Helm | Stable |
Control plane uninstall using OSM CLI and Helm | Stable |
Automatic sidecar injection | Stable |
Configuration validating webhook | Stable |
Control plane upgrade using OSM CLI and Helm | Beta |
Multicluster | Alpha |
Traffic management
Feature | State |
---|---|
Traffic access control using SMI | Stable |
Traffic shifting using SMI | Stable |
HTTP routing using SMI | Stable |
TCP routing using SMI | Stable |
Permissive traffic policy | Stable |
Protocols: HTTP1.1, HTTP2, TCP, gRPC | Stable |
Egress policies | Stable |
Ingress policies | Stable |
Ingress gateway (Contour) | Beta |
Circuit breaking | Alpha |
Security and certificate management
Feature | State |
---|---|
Automatic mutual TLS | Stable |
Authorization using SMI access control | Stable |
Certificate provider - Tresor (native implementation) | Stable |
Mutual TLS for Ingress | Stable |
Certificate provider - cert-manager | Beta |
Certificate provider - Hashicorp Vault | Beta |
Observability
Feature | State |
---|---|
Prometheus integration | Stable |
Grafana integration | Stable |
Control plane metrics | Stable |
Envoy traffic metrics | Stable |
Distributed tracing with Jaegar | Beta |
Integrations
Feature | State |
---|---|
Progressive delivery with Flagger | Alpha |
Dapr integration | Alpha |
Helm chart values deprecation
Values in the Helm chart may be deprecated in preparation to be removed in a future release. A value that is deprecated will be prefixed with the DEPRECATED
keyword alongside its comment in the values file and in the title of the corresponding property in the JSON schema for the Helm values.
For example, the value foo
is considered to be deprecated due to the DEPRECATED
keyword in its description in the values file:
# -- DEPRECATED
# foo configuration
foo: bar
The helm show values
command can be used to view the Helm chart’s values.
A value marked as DEPRECATED
in a release will only be removed in the next minor release at the earliest. This means, a value deprecated in release vX.Y.Z
will only be removed on or after release vX.Y+1.Z
. Deprecated values will be documented in the release notes.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.