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

CRDs for feature toggles API #1044

Merged
merged 4 commits into from
Jun 20, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,54 @@ spec:
description: DurationBeforeChangeTierRequestDeletion specifies
the duration before a ChangeTierRequest resource is deleted
type: string
featureToggles:
description: FeatureToggles specifies the list of feature
toggles/flags
items:
description: 'FeatureToggle defines a feature toggle/flag.
Each feature is supposed to have a unique name. Features
are represented by kube object manifests in space and
user templates. Such manifests must have an annotation
which refers to the corresponding feature name. For example
a manifest for a RoleBinding object in a space tier template
with the following annotation: "toolchain.dev.openshift.com/feature:
os-lightspeed" would refer to a feature with "os-lightspeed"
name. When that template is applied for a new space then
that RoleBinding object would be applied conditionally,
according to its weight.'
properties:
name:
description: A unique name of the feature
type: string
weight:
description: 'Rollout weight of the feature. An integer
between 0-100. If not set then 100 is used by default.
0 means the corresponding feature should not be enabled
at all, which means that corresponding template objects
should not be applied at all. 100 means the feature
should be always enabled (the template is always applied).
The features are weighted independently of each other.
For example if there are two features: - feature1,
weight=5 - feature2, weight=90 And tiers (one or many)
contain the following object manifests: - RoleBinding
with "toolchain.dev.openshift.com/feature: feature1"
annotation - ConfigMap with "toolchain.dev.openshift.com/feature:
feature2" annotation Then the RoleBinding will be
created for the corresponding tiers with probability
of 0.05 (around 5 out of every 100 spaces would have
it) And the ConfigMap will be created with probability
of 0.9 (around 90 out of every 100 spaces would have
it)'
maximum: 100
minimum: 0
type: integer
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
templateUpdateRequestMaxPoolSize:
description: TemplateUpdateRequestMaxPoolSize specifies the
maximum number of concurrent TemplateUpdateRequests when
Expand Down
Loading