项目作者: cloudworkz

项目描述 :
Google Group User --> Kubernetes RBAC
高级语言: Go
项目地址: git://github.com/cloudworkz/kubernetes-rbac-synchroniser.git
创建时间: 2017-11-19T11:43:24Z
项目社区:https://github.com/cloudworkz/kubernetes-rbac-synchroniser

开源协议:Apache License 2.0

下载


kubernetes-rbac-synchroniser

license
Docker Repository on Quay
Docker Pulls
Go Report Card

What It Does

RBAC Synchroniser pulls a Google Group, extracts Google Group Member Emails and updates the Kubernetes RoleBinding in the given namespace.

graph

Requirements

  • The service account’s private key file: -config-file-path flag
  • The email of the user with permissions to access the Admin APIs: -google-admin-email flag

see guide: https://developers.google.com/admin-sdk/directory/v1/guides/delegation

  • The Google Group list per Kubernetes namespace: -namespace-group flag
  • Configure Minimal GKE IAM permissions for each Google Group: gcloud beta iam roles create minimal_gke_role --project my_project --title "Container Engine Minimal" --description "Minimal GKE Role which allows 'gcloud container clusters get-credentials' command" --permissions "container.apiServices.get,container.apiServices.list,container.clusters.get,container.clusters.getCredentials"

see: https://stackoverflow.com/questions/45945074/iam-and-rbac-conflicts-on-google-cloud-container-engine-gke/45945239#45945239

Flags

Flag Description Defalut
-cluster-role-name The cluster role name with permissions. “view”
-config-file-path The Path to the Service Account’s Private Key file.
-google-admin-email The Google Admin Email.
-fake-group-response Fake Google Admin API Response.
-namespace-group The group and namespace. May be used multiple times.
-in-cluster-config Use in cluster kubeconfig. true
-kubeconfig Absolute path to the kubeconfig file.
-listen-address The address to listen on for HTTP requests. “:8080”
-rolebinding-name The role binding name per namespace. “developer”
-update-interval Update interval in seconds. 15m0s
-log-json Log as JSON instead of the default ASCII formatter. false

Prometheus metrics

  • rbac_synchroniser_success: Cumulative number of role update operations.
  • rbac_synchroniser_errors: Cumulative number of errors during role update operations.

Examples

https://github.com/google-cloud-tools/kubernetes-rbac-synchroniser/tree/master/examples