Skip to content

Commit

Permalink
CRDs for feature toggles API (#1044)
Browse files Browse the repository at this point in the history
* CRDs for feature toggles API

* regenerate

* regeneate
  • Loading branch information
alexeykazakov authored Jun 20, 2024
1 parent eaadfb5 commit 8bf5cf5
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,55 @@ 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:
default: 100
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

0 comments on commit 8bf5cf5

Please sign in to comment.