terraform/modules/artifact-registry/main.tf (27 lines of code) (raw):
# Copyright 2024 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
#
# https://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.
data "google_project" "environment" {
project_id = var.project_id
}
module "region_analysis" {
source = "../region-analysis"
regions = var.regions
}
# Artifact Registry
resource "google_artifact_registry_repository" "research-images" {
project = var.project_id
location = module.region_analysis.dominant_region
repository_id = var.name
description = "Multi-region artifact registry in ${module.region_analysis.dominant_region}"
format = "DOCKER"
# Keep only the most recent image versions based on cleanup_keep_count
cleanup_policies {
id = "keep-minimum-versions"
action = "KEEP"
most_recent_versions {
keep_count = var.cleanup_keep_count
}
}
lifecycle {
precondition {
condition = module.region_analysis.region_counts[module.region_analysis.dominant_region] > 0
error_message = "Could not determine appropriate multi-region location from provided regions: ${jsonencode(var.regions)}"
}
}
}