Appendix C. Role-Based Access Control (RBAC)
When the Operator SDK generates an Operator project (regardless of whether it is a Helm, Ansible, or Go-based Operator), it creates a number of manifest files for deploying the Operator. Many of these files grant permissions to the deployed Operator to perform the various tasks it does throughout its lifetime.
The Operator SDK generates three files related to Operator permissions:
- deploy/service_account.yaml
-
Instead of authenticating as a user, Kubernetes provides a programmatic authentication method in the form of service accounts. A service account functions as the identity for the Operator pod when making requests against the Kubernetes API. This file simply defines the service account itself, and you do not need to manually edit it. More information on service accounts is available in the Kubernetes documentation.
- deploy/role.yaml
-
This file creates and configures a role for the service account. The role dictates what permissions the service account has when interacting with the cluster APIs. The Operator SDK generates this file with extremely wide permissions that, for security reasons, you will want to edit before deploying your Operator in production. In the next section we explain more about refining the default permissions in this file.
- deploy/role_binding.yaml
-
This file creates a role binding, which maps the service account to the role. You do not need to make any changes to the generated file.
Fine-Tuning the Role ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access