kafka-connect-bigtable-sink/doc/performance/terraform/service_account.tf (26 lines of code) (raw):
resource "google_service_account" "kubernetes_kafka_connect" {
account_id = "${local.name}-k8s-kafka-connect"
display_name = "${local.name}-k8s-kafka-connect-SA"
}
resource "google_project_iam_member" "kubernetes_kafka_connect_permissions" {
for_each = toset([
"roles/managedkafka.admin",
])
project = local.project
role = each.key
member = "serviceAccount:${google_service_account.kubernetes_kafka_connect.email}"
}
resource "google_service_account_key" "kubernetes_kafka_connect_key" {
service_account_id = google_service_account.kubernetes_kafka_connect.name
}
# https://cloud.google.com/kubernetes-engine/docs/troubleshooting/dashboards#write_permissions
resource "google_project_iam_member" "gke_monitoring" {
for_each = toset(["roles/monitoring.metricWriter", "roles/monitoring.editor", "roles/logging.logWriter", "roles/stackdriver.resourceMetadata.writer"])
project = local.project
role = each.value
member = "serviceAccount:${google_service_account.kubernetes.email}"
}
resource "google_project_iam_member" "kafka_connect_registry" {
project = local.project
role = "roles/artifactregistry.reader"
member = "serviceAccount:${google_service_account.kubernetes.email}"
}