Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add feature flag system to support gradual rollouts #151

Merged
merged 2 commits into from
Jul 11, 2024

Conversation

a-hilaly
Copy link
Member

@a-hilaly a-hilaly commented Jul 11, 2024

Introduce a lightweight feature flag implementation to enable safer and
more controlled feature releases. This system will allow us to:

  • Reduce risk by gradually rolling out new features to subsets of users
  • Quickly disable problematc features without requiring a new release
  • Manage feature lifecycles more effectively across different environments

The implementation uses a simple map-based approach for for efficiently
introducing and graduating new features in ACK.

Usage example:

func someLogic() {
    ...
    if cfg.FeatureGates.IsEnabled("FeatureName") {

    } else {

    }
}

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Introduce a lightweight feature flag implementation to enable safer and
more controlled feature releases. This system will allow us to:

- Reduce risk by gradually rolling out new features to subsets of users
- Quickly disable problematc features without requiring a new release
- Manage feature lifecycles more effectively across different environments

The implementation uses a simple map-based approach for for efficiently
introducing and graduating new features in ACK.
@ack-prow ack-prow bot requested a review from jlbutler July 11, 2024 08:49
@ack-prow ack-prow bot added the approved label Jul 11, 2024
@a-hilaly
Copy link
Member Author

/cc @acornett21

Copy link

ack-prow bot commented Jul 11, 2024

@a-hilaly: GitHub didn't allow me to request PR reviews from the following users: acornett21.

Note that only aws-controllers-k8s members and repo collaborators can review this PR, and authors cannot review their own PRs.

In response to this:

/cc @acornett21

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

pkg/config/config.go Outdated Show resolved Hide resolved
Co-authored-by: Chetan Patwal <cPu1@users.noreply.github.com>
@TiberiuGC
Copy link
Member

/lgtm

Copy link

ack-prow bot commented Jul 11, 2024

@TiberiuGC: changing LGTM is restricted to collaborators

In response to this:

/lgtm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@ack-bot
Copy link
Collaborator

ack-bot commented Jul 11, 2024

/lgtm

@ack-prow ack-prow bot added the lgtm Indicates that a PR is ready to be merged. label Jul 11, 2024
Copy link

ack-prow bot commented Jul 11, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: a-hilaly, ack-bot, cPu1, TiberiuGC

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ack-prow ack-prow bot merged commit 1fe89e5 into aws-controllers-k8s:main Jul 11, 2024
5 checks passed
@a-hilaly
Copy link
Member Author

cc @zicongmei

ack-prow bot pushed a commit to aws-controllers-k8s/code-generator that referenced this pull request Jul 24, 2024
Issue #, if available: N/A, but related to aws-controllers-k8s/runtime#151

Description of changes: Adds optional support for feature gates in Helm templates.  A top-level key of `featureGates` has been added to the default values file template, and the optional command-line argument has been appended to the deployment template.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants