modules/secure-ci/metadata.yaml (183 lines of code) (raw):

# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: blueprints.cloud.google.com/v1alpha1 kind: BlueprintMetadata metadata: name: terraform-google-secure-cicd annotations: config.kubernetes.io/local-config: "true" spec: info: title: Secure CI Module source: repo: https://github.com/GoogleCloudPlatform/terraform-google-secure-cicd.git sourceType: git dir: secure-ci version: 1.1.1 actuationTool: flavor: Terraform version: '>= 0.13.0' description: {} content: examples: - name: app_cicd location: examples/app_cicd - name: cloudbuild_private_pool location: examples/cloudbuild_private_pool - name: private_cluster_cicd location: examples/private_cluster_cicd - name: standalone_single_project location: examples/standalone_single_project interfaces: variables: - name: additional_substitutions description: Parameters to be substituted in the build specification. All keys should begin with an underscore. varType: map(string) defaultValue: {} - name: app_build_trigger_yaml description: Name of application cloudbuild yaml file varType: string required: true - name: app_source_repo description: Name of repo that contains app source code along with cloudbuild yaml varType: string defaultValue: app-source - name: attestor_names_prefix description: A list of Binary Authorization attestors to create. The first attestor specified in this list will be used as the build-attestor during the CI phase. varType: list(string) required: true - name: build_image_config_yaml description: Name of image builder yaml file varType: string required: true - name: cache_bucket_name description: Name of cloudbuild artifact and cache GCS bucket varType: string defaultValue: "" - name: cloudbuild_cd_repo description: Name of repo that stores the Cloud Build CD phase configs - for post-deployment checks varType: string defaultValue: cloudbuild-cd-config - name: cloudbuild_private_pool description: Cloud Build private pool self-link varType: string defaultValue: "" - name: cloudbuild_service_account_roles description: IAM roles given to the Cloud Build service account to enable security scanning operations varType: list(string) defaultValue: - roles/artifactregistry.admin - roles/binaryauthorization.attestorsVerifier - roles/cloudbuild.builds.builder - roles/clouddeploy.developer - roles/clouddeploy.releaser - roles/cloudkms.cryptoOperator - roles/containeranalysis.notes.attacher - roles/containeranalysis.notes.occurrences.viewer - roles/source.writer - roles/storage.admin - roles/cloudbuild.workerPoolUser - roles/ondemandscanning.admin - roles/logging.logWriter - name: clouddeploy_pipeline_name description: Cloud Deploy pipeline name varType: string defaultValue: deploy-pipeline - name: gar_repo_name_suffix description: Docker artifact regitery repo to store app build images varType: string defaultValue: app-image-repo - name: labels description: A set of key/value label pairs to assign to the resources deployed by this blueprint. varType: map(string) defaultValue: {} - name: primary_location description: Region used for key-ring varType: string required: true - name: project_id description: Project ID for CICD Pipeline Project varType: string required: true - name: runner_build_folder description: Path to the source folder for the cloud builds submit command. Leave blank if `skip_provisioners = true` varType: string defaultValue: "" - name: skip_provisioners description: Skip modules that use provisioners/local-exec varType: bool defaultValue: false - name: trigger_branch_name description: A regular expression to match one or more branches for the build trigger. varType: string required: true - name: use_tf_google_credentials_env_var description: Optional GOOGLE_CREDENTIALS environment variable to be activated. varType: bool defaultValue: false outputs: - name: app_artifact_repo description: GAR Repo created to store runner images - name: binauth_attestor_ids description: IDs of Attestors - name: binauth_attestor_names description: Names of Attestors - name: binauth_attestor_project_id description: Project ID where attestors get created - name: build_sa_email description: Cloud Build Service Account email address - name: build_trigger_name description: The name of the cloud build trigger for the app source repo. - name: cache_bucket_name description: The name of the storage bucket for cloud build. - name: source_repo_names description: Name of the created CSR repos - name: source_repo_urls description: URLS of the created CSR repos requirements: roles: - level: Project roles: - roles/artifactregistry.admin - roles/binaryauthorization.attestorsAdmin - roles/cloudbuild.builds.builder - roles/cloudbuild.workerPoolOwner - roles/clouddeploy.admin - roles/cloudkms.admin - roles/cloudkms.publicKeyViewer - roles/containeranalysis.notes.editor - roles/compute.networkAdmin - roles/gkehub.editor - roles/iam.serviceAccountAdmin - roles/iam.serviceAccountUser - roles/pubsub.editor - roles/serviceusage.serviceUsageAdmin - roles/source.admin - roles/storage.admin - roles/resourcemanager.projectIamAdmin - roles/viewer - level: Project roles: - roles/compute.networkAdmin - roles/container.admin - roles/binaryauthorization.policyEditor - roles/resourcemanager.projectIamAdmin - roles/iam.serviceAccountAdmin - roles/serviceusage.serviceUsageViewer - roles/iam.serviceAccountUser services: - cloudresourcemanager.googleapis.com - cloudbilling.googleapis.com - clouddeploy.googleapis.com - storage-api.googleapis.com - serviceusage.googleapis.com - cloudbuild.googleapis.com - containerregistry.googleapis.com - iamcredentials.googleapis.com - secretmanager.googleapis.com - sourcerepo.googleapis.com - artifactregistry.googleapis.com - containeranalysis.googleapis.com - cloudkms.googleapis.com - binaryauthorization.googleapis.com - containerscanning.googleapis.com - servicenetworking.googleapis.com - pubsub.googleapis.com