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

Feature flags for all features #1896

Open
seanhamlin opened this issue May 20, 2020 · 2 comments
Open

Feature flags for all features #1896

seanhamlin opened this issue May 20, 2020 · 2 comments
Assignees
Labels
1-api-auth API & Authentication subsystem

Comments

@seanhamlin
Copy link
Contributor

At present when there is a new feature for Lagoon, there is often no easy way to enable it progressively, and the system to turn it off the feature can be clunky (if it exist already).

The UI task system does a blacklist feature which is the only prior art that I am aware of.

Why feature flags

Feature flags will allow amazee.io to be able to merge features into the master branch, and have them disabled by default (much like how Chrome has feature flags).

This will allow people that run their own Lagoons to control the rate at which they enable these features, and also if they even want to enable them in the first place.

What is needed

A system to record a feature flag, and potentially an API to toggle it. Potentially a UI to visualise the flags for admins as well.

How this could have helped us already

  • Being able to turn off the drush uli task in the UI
  • Being able to disable blue/green until there is a working process in place to deal with this long term
@seanhamlin seanhamlin added 1-api-auth API & Authentication subsystem 10-admin-user-interfaces labels May 20, 2020
@tobybellwood
Copy link
Member

There's multiple levels to this:

  • Control the exposure of tasks via the UI (primitive) 👈 CURRENT
  • Configure the UI to not display tasks that aren't authorised for that user (may be slow?).
  • Control the availability of features & tasks for a user via the API (would require more API logic)
  • Rewrite a task system (comprehensive) that allows for Lagoon-provided tasks to be augmented with platform-scoped, or project-defined tasks, each with their own permissions defined (and again the UI only presents tasks that are authorised)

@Schnitzel
Copy link
Contributor

I'm not convinced about this, adding feature flags to Lagoon will make the development of Lagoon slower, in an environment where we're already behind schedule for many features.

Also "all features" is a bit a very complex definition. I don't think we ever want to disable the possibility to deploy. Also every feature flag requires a test that the flag itself disables the feature, plus that a combination of features do not cause any issues.

So if @seanhamlin you can define a bit more what a "feature" is for you? That would help understanding what exactly we're talking about. Also a couple more questions:

  • Is this just enabling in the UI or also in the API itself?
  • Are we talking retroactively adding feature flags to things that are currently enabled? Or only about new features we're adding starting now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1-api-auth API & Authentication subsystem
Projects
None yet
Development

No branches or pull requests

3 participants