blob: cd965ef8a1839bafa19b73d41293b03d6746518f [file] [log] [blame]
# *****************************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
# ******************************************************************************
locals {
vpc_id = "${var.service_base_name}-${var.endpoint_id}-vpc"
subnet_name = "${var.service_base_name}-${var.endpoint_id}-subnet"
firewall_ingress_name = "${var.service_base_name}-${var.endpoint_id}-ingress-sg"
firewall_egress_name = "${var.service_base_name}-${var.endpoint_id}-egress-sg"
}
resource "google_compute_network" "endpoint_vpc" {
count = var.vpc_id == "" ? 1 : 0
name = local.vpc_id
auto_create_subnetworks = false
}
data "google_compute_network" "endpoint_vpc_data" {
name = var.vpc_id == "" ? google_compute_network.endpoint_vpc.0.name : var.vpc_id
}
resource "google_compute_subnetwork" "endpoint_subnet" {
count = var.subnet_id == "" ? 1 : 0
name = local.subnet_name
ip_cidr_range = var.subnet_cidr
region = var.region
network = data.google_compute_network.endpoint_vpc_data.id
}
data "google_compute_subnetwork" "endpoint_subnet_data" {
name = var.subnet_id == "" ? google_compute_subnetwork.endpoint_subnet.0.name : var.subnet_id
}
resource "google_compute_firewall" "firewall-ingress" {
name = local.firewall_ingress_name
network = data.google_compute_network.endpoint_vpc_data.name
allow {
protocol = "tcp"
ports = ["22", "8084", "8085", "4822"]
}
target_tags = ["${var.service_base_name}-${var.endpoint_id}-endpoint"]
source_ranges = [var.firewall_ing_cidr_range]
}
resource "google_compute_firewall" "firewall-egress" {
name = local.firewall_egress_name
network = data.google_compute_network.endpoint_vpc_data.name
direction = "EGRESS"
allow {
protocol = "all"
}
target_tags = ["${var.service_base_name}-${var.endpoint_id}-endpoint"]
destination_ranges = [var.firewall_eg_cidr_range]
}