Feature Flag a.k.a. Feature Toggle is a technique in software development that attempts to provide an alternative to maintaining multiple source-code branches (known as feature branches), such that a feature can be tested even before it is completed and ready for release.
In PrimeHub, we use environment variables to toggle Alpha, Beta features.
To introduce users with new experimental features and to collect feedback from users early. We can define features as Alpha or Beta features according to PrimeHub versions. The Alpha features and Beta are enabled by
.env respectively or enabled individually. Features are defined in in bin/phenv.
- Disabled by default.
- Buggy possibly, this feature may result in bugs/unstable systems.
- The feature may be dropped or changed without notice.
- The feature may not be compatible with later release onward.
- Enabled by default unless extra config required.
- The feature is tested and verified.
- The detail of the feature might be changed in the subsequent beta or stable releases so that the migrating actions may be required.
- A GA feature is well tested.
- Enabled by default for general availability.
Features flags for Alpha, Beta, GA features
PRIMEHUB_FEATURE_USER_PORTAL: Enable User Portal to have a unified domain with a landing page.
PRIMEHUB_FEATURE_ENABLE_ADMISSION: Enable Admission relative features. Admission Webhook is a mechanism provided by kubernetes to validate and mutate resources when they are created. Been removed.
PRIMEHUB_FEATURE_DATASET_UPLOAD: Enable Dataset Upload so that user can upload data to pv type dataset through a server.
PRIMEHUB_FEATURE_CUSTOM_IMAGE: Enable Image Builder so that admin can build images with custom packages.
PRIMEHUB_FEATURE_ENABLE_KERNEL_GATEWAY: Enable experimental jupyter kernel gateway, it runs notebook and kernel in the different container.
PRIMEHUB_FEATURE_JOB_SUBMISSION: Enable Job Submission so that user can submit jobs.