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

Improve ergonomics of experimental feature acknowledgement #53

Closed
wmorgan opened this issue Jan 31, 2016 · 2 comments
Closed

Improve ergonomics of experimental feature acknowledgement #53

wmorgan opened this issue Jan 31, 2016 · 2 comments

Comments

@wmorgan
Copy link
Member

wmorgan commented Jan 31, 2016

In order to use the Consul namer, you have to refer to it as io.l5d.experimental.consul in the namer config block, but io.l5d.consul in the dtab. (This may also be the case for other experimental namers.)

This is somewhat confusing, especially since non-experimental namers are matched in these two sections. At a minimum, this discrepancy should be documented.

@olix0r olix0r changed the title experimental namers have different names in dtabs vs in namer config blocks Improve ergonomics of experimental feature acknowledgement Jan 31, 2016
@olix0r
Copy link
Member

olix0r commented Jan 31, 2016

We want a way to introduce new and unproven features for evaluation. We'd like to require some form of acknowledgement from the user to enable these features so that it's easy to distinguish these modules. Furthermore, this should be accomplished in a way so that users are not required to alter their configurations when the features are no longer considered experimental.

Currently, modules such as the consul namer have experimental in their names, such as io.l5d.experimental.consul and a default prefix like io.l5d.consul. The module name includes experimental as a form of acknowledgement, but the prefix was intended to be stable so that it would not have to change once the module is no longer experimental. This is confusing, and isn't as future-proof as we'd like

This should be fixed as follows:

  • module names are no longer placed in an 'experimental' namespace. io.l5d.experimental.consul becomes io.l5d.consul
  • modules support an optionally-specified experimental field. A module may fail to initialize if this field is not specified.

While we're here, we should consider experimental features within a module. We have a few options in how to structure this:

kind: io.l5d.consul
experimental: true
kind: io.l5d.consul
experimentalSomeFeature: true

Or, we could allow experimental to be either boolean or a feature map

kind: io.l5d.consul
experimental: true
kind: io.l5d.consul
experimental:
  someFeature: true

@olix0r olix0r added this to the 0.0.10 milestone Jan 31, 2016
@olix0r olix0r added the ready label Jan 31, 2016
@olix0r olix0r self-assigned this Feb 2, 2016
@wmorgan wmorgan modified the milestones: 0.0.11, 0.0.10 Feb 8, 2016
@wmorgan wmorgan removed the ready label Feb 8, 2016
@gtcampbell gtcampbell removed this from the 0.0.12 milestone Feb 22, 2016
@adleong
Copy link
Member

adleong commented Sep 12, 2016

@adleong adleong closed this as completed Sep 12, 2016
Tim-Brooks pushed a commit to Tim-Brooks/linkerd that referenced this issue Dec 20, 2018
* Introduce objects to manage kubectl and shell

* Make dashboard command use new shell & kubectl objects

* Make compatible with version numbers like v1.9.0-beta.1

* Add version check for kubectl

* Refactor error to use proper method from fmt pa ckage

* Make channel and error handling more idiomatic and safe

* Make version require 1.8.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants