Kubernetes RBAC: Data plane
Union core services (data plane)
| Role Name | Purpose | Kind | API Groups | Scope | Resources | Verbs |
|---|---|---|---|---|---|---|
clustersync-resource |
Synchronizes K8s resources across namespaces: creates per-workspace namespaces, RBAC bindings, service accounts, and resource quotas | ClusterRole | “"(core) rbac.authorization.k8s.io |
Cluster-wide | configmaps namespaces pods resourcequotas roles rolebindings secrets services serviceaccounts clusterrolebindings |
*(all) |
union-executor |
Node Executor: creates/manages task pods, handles FlyteWorkflow and TaskAction CRDs, manages all plugin resource types (Spark, Ray, etc.) | ClusterRole | “"(core) *(all) apiextensions.k8s.io flyte.lyft.com |
Cluster-wide | pods (RO) events *(all plugin objects) customresourcedefinitions flyteworkflows/* taskactions/* |
get list watch create update delete patch |
proxy-system |
Read-only monitoring: streams workflow events, pod logs, and resource utilization data back to control plane via tunnel | ClusterRole | “*” | Cluster-wide | events flyteworkflows pods/log pods rayjobs resourcequotas |
get list watch |
operator-system |
Union Operator: manages FlyteWorkflow lifecycle, cluster-level configuration, health monitoring, node management | ClusterRole | flyte.lyft.com *(all) |
Cluster-wide | flyteworkflows flyteworkflows/finalizers resourcequotas pods configmaps podtemplates secrets namespaces nodes |
get list watch create update delete patch post deletecollection |
flytepropeller-role |
FlytePropeller workflow engine: creates task pods, manages FlyteWorkflow CRDs, handles all plugin resource types, enforces resource limits | ClusterRole | “"(core) *(all) apiextensions.k8s.io flyte.lyft.com |
Cluster-wide | pods (RO) events *(all plugin objects) customresourcedefinitions flyteworkflows/* limitranges |
get list watch create update delete patch |
flytepropeller-webhook-role |
Admission webhook: intercepts pod creation to inject secrets from the secrets backend into task containers | ClusterRole | “*” | Cluster-wide | mutatingwebhookconfigurations secrets pods replicasets/finalizers |
get create update patch |
proxy-system-secret |
Manages proxy service secrets within the union namespace for tunnel authentication and configuration | Role | “*” | union namespace | secrets |
get list create update delete |
operator-system (ns) |
Operator manages its own secrets and deployments within the union namespace | Role | “*” | union namespace | secrets deployments |
get list watch create update |
union-operator-admission |
Webhook admission controller reads/creates TLS secrets for webhook serving certificates | Role | “"(core) | union namespace | secrets |
get create |
Observability and monitoring
| Role Name | Purpose | Kind | API Groups | Scope | Resources | Verbs |
|---|---|---|---|---|---|---|
release-name-fluentbit |
Fluent Bit log collector: reads pod metadata to tag and route container logs to CloudWatch/Cloud Logging | ClusterRole | “"(core) | Cluster-wide | namespaces pods |
get list watch |
opencost |
OpenCost: read-only access to all cluster resources for cost attribution and resource usage tracking | ClusterRole | “"(core) extensions apps batch autoscaling storage.k8s.io |
Cluster-wide | configmaps deployments nodes pods services resourcequotas replicationcontrollers limitranges PVCs PVs namespaces endpoints daemonsets replicasets statefulsets jobs storageclasses |
get list watch |
release-name-kube-state-metrics |
KSM: exports K8s object metrics for Prometheus monitoring dashboards | ClusterRole | “"(core) extensions apps batch autoscaling policy networking.k8s.io certificates.k8s.io discovery.k8s.io storage.k8s.io admissionregistration.k8s.io |
Cluster-wide | certificatesigningrequests configmaps cronjobs daemonsets deployments endpoints HPAs ingresses jobs leases limitranges namespaces networkpolicies nodes PVCs PVs pods replicasets replicationcontrollers resourcequotas secrets services statefulsets storageclasses validatingwebhookconfigurations volumeattachments endpointslices |
list watch |
release-name-grafana-clusterrole |
Grafana: reads configmaps/secrets for dashboard definitions and data source configuration |
ClusterRole | “"(core) | Cluster-wide | configmaps secrets |
get watch list |
union-operator-prometheus |
Prometheus: scrapes metrics from all cluster services and nodes for monitoring | ClusterRole | “"(core) discovery.k8s.io networking.k8s.io |
Cluster-wide | nodes nodes/metrics services endpoints pods endpointslices ingresses; nonResourceURLs: /metrics /metrics/cadvisor |
get list watch |
prometheus-operator |
Prometheus Operator: manages the full Prometheus monitoring stack lifecycle, CRDs, and configurations | ClusterRole | monitoring.coreos.com apps extensions (core) networking.k8s.io policy admissionregistration.k8s.io storage.k8s.io |
Cluster-wide | alertmanagers prometheuses thanosrulers servicemonitors podmonitors prometheusrules probes scrapeconfigs prometheusagents statefulsets daemonsets deployments configmaps secrets pods services endpoints namespaces ingresses PDBs webhookconfigs storageclasses |
*(all) |
release-name-dcgm-exporter |
DCGM Exporter: reads node/pod metadata for GPU metrics labeling (optional, for GPU workloads) | ClusterRole | “"(core) | Cluster-wide | nodes pods |
get list watch |