This repository was archived by the owner on May 14, 2025. It is now read-only.
This repository was archived by the owner on May 14, 2025. It is now read-only.
load generic controllers based on their labels #124
Open
Description
ProblemStatement: As a DevOps admin I run my controllers as a single binary that makes use of GenericController(s) loaded from metac config file. I want metac to load generic controllers with specific labels & ignore loading of other generic controllers.
PossibleSolution:
Use of predefined label keys such as
metac.openebs.io/feature-gate
- label will be set by DevOps admin
- label value can either be
alpha
,beta
orrelease
- If this label is not set then corresponding controller defaults to release feature-gate
tag.metac.openebs.io/<tag-name>
- label will be set by DevOps admin
- tag-name will be provided by DevOps admin
- label value can either be
enabled
ordisabled
kind: GenericController
metadata:
name: my-controller
labels:
# if following label is missing then the GenericController
# will be considered as release grade
metac.openebs.io/feature-gate: alpha # beta & release are other valid values
---
kind: GenericController
metadata:
name: my-controller
labels:
metac.openebs.io/feature-gate: beta
tag.metac.openebs.io/my-tag-2: enabled
---
kind: GenericController
metadata:
name: my-controller
labels:
metac.openebs.io/feature-gate: beta
tag.metac.openebs.io/my-tag-1: enabled
containers:
- name: my-metac
image: localhost:5000/my-metac:latest
command: ["/my-metac"]
args:
- --allowed-feature-gate=beta # controllers with either beta or release gate will be loaded
- --allowed-tags=my-tag-1, my-tag-1 # controllers with these tags will be loaded
- --logtostderr
- --run-as-local
- --workers-count=1 # number of workers per controller
- --discovery-interval=40s
- --cache-flush-interval=240s # re-sync interval
- -v=5