blob: 136fbab1c4649d1a0f1fd693964d754380337eae [file] [log] [blame]
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This file is a Google Cloud Platform Deployment Manager Configuration file.
# It is used to deploy base set of components needed by every lab deployed by
# the CEL toolchain.
#
# Documentation and reference links:
#
# Deployment Manager : https://cloud.google.com/deployment-manager/docs/
# Supported Resource Types : https://cloud.google.com/deployment-manager/docs/configuration/supported-resource-types
# This entire file will be evaluated as a Go text template with the pipeline
# set to a cel.Configuration object.
#
# CEL toolchain is not responble for creating the hosting GCP project. The user
# has to create the project. The toolchain assumes that the operator is an
# owner of the project. Many of the steps below will fail if the operator does
# not possess sufficient permissions over the target project.
#
# NOTE: In case you missed it the first time, this file will be evaluated as a
# Golang text/template. It is not a Jinja file.
resources:
# Service account used by all CEL VMs.
- name: internal-vm-service-account
type: iam.v1.serviceAccount
properties:
name: "{{ .ServiceAccountName }}"
accountId: "{{ .ServiceAccountId }}"
displayName: CEL Instance Service Account
outputs:
- name: serviceAccountEmail
value: $(ref.internal-vm-service-account.email)
# TODO(asanka): Move the Cloud KMS management here once the Deployment
# Manager supports CloudKMS objects. We can easily create a service account
# directly, but this file is here to act as a template for moving more
# resources types into a deployment manifest as the DM capabilities evolve.