fleet-clusterprofile-syncer/syncer.yaml (50 lines of code) (raw):

--- apiVersion: v1 kind: ServiceAccount metadata: name: clusterprofile-syncer automountServiceAccountToken: true --- apiVersion: apps/v1 kind: Deployment metadata: name: clusterprofile-syncer-deployment labels: app: clusterprofile-syncer spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: clusterprofile-syncer template: metadata: labels: app: clusterprofile-syncer annotations: date: ${DATE} spec: terminationGracePeriodSeconds: 0 # gotta go fast! nodeSelector: iam.gke.io/gke-metadata-server-enabled: "true" serviceAccountName: clusterprofile-syncer containers: - name: syncer image: ${SYNCER_DOCKER_IMAGE} command: ["/usr/sbin/membership-to-clusterprofile.sh", "${PROJECT}", "${MEMBERSHIPNAME}", "${PROJECT_NUMBER}"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: clusterprofile-syncer-binding labels: app: clusterprofile-syncer subjects: - kind: ServiceAccount name: clusterprofile-syncer namespace: ${PROJECT} roleRef: kind: ClusterRole name: clusterprofileadmin apiGroup: rbac.authorization.k8s.io