diff --git a/website/docs/availability.md b/website/docs/availability.md index a394e86aca..dcca92f00e 100644 --- a/website/docs/availability.md +++ b/website/docs/availability.md @@ -16,7 +16,11 @@ This is an example of a feature that is only available to Enterprise customers w - [Open Source](https://www.getunleash.io/pricing) - Available on [GitHub](https://github.com/Unleash/unleash) under an Apache 2.0 license. - Pro - Currently not offered. -- [Enterprise](https://www.getunleash.io/pricing) - Available as Pay-as-you-go or as an annual contract. +- [Enterprise](https://www.getunleash.io/pricing) - Available as Pay-as-you-go or as an annual contract, as cloud-hosted or self-hosted. + +## Beta features + +Some new Unleash features are tagged as `BETA` in the documentation. This means that the feature may be subject to change or discontinuation. Unleash may decide to enable such features for a select number of customers only. If you're interested in trying out a beta feature, please reach out to Customer Success at customersuccess@getunleash.io. ## Versioning diff --git a/website/docs/reference/rbac.md b/website/docs/reference/rbac.md index c31f65dc9a..a0e88cda1d 100644 --- a/website/docs/reference/rbac.md +++ b/website/docs/reference/rbac.md @@ -109,6 +109,14 @@ You can assign the following root permissions: |-----------------|--------------------------------| | Create projects | Create [projects](./projects). | +#### Release template permissions + +| Permission Name | Description | +|-----------------|---------------------------| +| Create release plan template | Create [release template](./release-templates). | +| Update release plan template | Update [release template](./release-templates). | +| Delete release plan template | Delete [release template](./release-templates). | + #### Role permissions | Permission Name | Description | diff --git a/website/docs/reference/release-templates.mdx b/website/docs/reference/release-templates.mdx new file mode 100644 index 0000000000..70eaa74cf3 --- /dev/null +++ b/website/docs/reference/release-templates.mdx @@ -0,0 +1,104 @@ +--- +title: Release templates +--- + +:::note Availability + +**Plan**: [Enterprise](https://www.getunleash.io/pricing) cloud-hosted | **Version**: `6.8+` in [BETA](/availability#beta-features). + +::: + +
+ Share your feedback + + We're currently gathering feedback for release templates and release plans. + + To provide feedback using the Admin UI, go to **Configure > Release templates**, and click **Share your feedback**. + + Future iterations of the feature may include: + - An overview of ongoing releases and currently running milestones + - Automated transitions between different milestones +
+ + +## Overview + +[Release templates](#release-template) help you standardize your approach to rolling out new features. By predefining a set of release milestones, you can ensure consistency across all your feature rollouts. + +Instead of manually configuring the same [activation strategies](/reference/activation-strategies) across different feature flags, you can define release templates once, and apply them to any feature flag to initiate a rollout. + +[Milestones](#milestone) rely on activation strategies to give you full flexibility when it comes to customizing your release templates. Each milestone executes sequentially, ensuring a structured release process. + +For example, you might define 3 milestones for a release: +- **Milestone 1**: Enable the feature for internal teams to test functionality and resolve initial issues. +- **Milestone 2**: Expand the rollout to 20% of beta users to gather feedback and monitor performance. +- **Milestone 3**: Release the feature to all users after confirming stability and addressing earlier feedback. + +#### Release template + +A predefined sequence of [milestones](#milestone) that structures a feature release. + +#### Milestone +Sequential stages within a [release template](#release-template). Each milestone must contain at least one [activation strategy](/reference/activation-strategies), which determines when a feature flag is enabled. +You can combine multiple activation strategies in a single milestone. Unleash evaluates each strategy independently, enabling the flag if any strategy resolves to true. + +#### Release plan + +An instance of a [release template](#release-template) applied to a specific feature flag in a specific environment. You can combine a release plan with additional activation strategies. + +## Create a release template + +> Note: For this action, you must be an Admin or have a custom root rote with [release templates permissions](/reference/rbac#release-template-permissions). + +To create a release template, do the following: + +1. In the Admin UI, go to **Configure > Release templates**, and click **New template**. +2. Enter the template name and an optional description. +3. For the first milestone, click **Add strategy**. +4. Choose a strategy type and configure your [rollout percentage](/reference/activation-strategies#rollout-percentage), [targeting](/reference/activation-strategies#targeting), and [variants](/reference/strategy-variants). +5. Click **Add strategy**. +6. Optional: Add, rename or reorder milestones as needed. +7. Click **Create template**. + +## Configure a gradual rollout with release templates + +Milestones are designed to be flexible and do not inherit the configurations of previous milestones. To build a gradual rollout where each milestone expands on the previous one, you must manually configure the progression of the constraints. + +For example, suppose you want to structure your rollout as follows: +- **Milestone 1**: Enable the feature for 50% of users on the *Basic* plan. +- **Milestone 2**: Keep the same 50% of *Basic* users from Milestone 1 and add 25% of *Premium* users. + +To achieve this, you need to configure Milestone 2 with both constraints: +- A 50% *Basic* users constraint. +- A 25% *Premium* users constraint. + +The configuration would look something like this: + +![Example of progressive milestones](/img/progressive-milestones.png) + +## Apply a release template to a feature flag + +To apply a release template to a feature flag, do the following: + +1. In the Admin UI, open a feature flag and select your target environment. +2. Click **More strategies** (triple-dot icon) and select one of the available release templates. +3. Click **Add release plan**. + +If the environment is enabled, the first milestone starts automatically. + +## Perform a release using a release plan + +Release plans apply per feature and environment. To add a release plan, [apply a release template](#apply-a-release-template-to-a-feature-flag). + +### Start the release +If the environment is enabled, the first milestone begins automatically upon adding the release plan. Otherwise, enable the environment to start the first milestone. + +### Pause the release +Pause the release at any time by disabling the environment for the feature flag. + +### Progress to the next milestone +To progress to the next milestone, click **Start** on the milestone you want to run. + +### Revert to a previous milestone + +To return to a previous stage of the rollout, click **Restart** on the milestone you want to revert to. diff --git a/website/sidebars.ts b/website/sidebars.ts index 8c9771f694..f4f5931ed9 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -379,6 +379,7 @@ const sidebars: SidebarsConfig = { 'reference/segments', 'reference/unleash-context', 'reference/stickiness', + 'reference/release-templates', ], }, { diff --git a/website/static/img/progressive-milestones.png b/website/static/img/progressive-milestones.png new file mode 100644 index 0000000000..a47be8df74 Binary files /dev/null and b/website/static/img/progressive-milestones.png differ