add tests for cloud operations examples
This commit is contained in:
parent
8039999d09
commit
f0ba47511c
|
@ -15,21 +15,22 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
role_id = "projects/${module.project.project_id}/roles/${local.role_name}"
|
role_id = "projects/${var.project_id}/roles/${local.role_name}"
|
||||||
role_name = "feeds_cf"
|
role_name = "feeds_cf"
|
||||||
}
|
}
|
||||||
|
|
||||||
module "project" {
|
module "project" {
|
||||||
source = "../../modules/project"
|
source = "../../modules/project"
|
||||||
name = var.project_id
|
name = var.project_id
|
||||||
project_create = false
|
project_create = var.project_create
|
||||||
services = [
|
services = [
|
||||||
"cloudasset.googleapis.com",
|
"cloudasset.googleapis.com",
|
||||||
"compute.googleapis.com",
|
"compute.googleapis.com",
|
||||||
"cloudfunctions.googleapis.com"
|
"cloudfunctions.googleapis.com"
|
||||||
]
|
]
|
||||||
service_config = {
|
service_config = {
|
||||||
disable_on_destroy = false, disable_dependent_services = false
|
disable_on_destroy = false,
|
||||||
|
disable_dependent_services = false
|
||||||
}
|
}
|
||||||
custom_roles = {
|
custom_roles = {
|
||||||
(local.role_name) = [
|
(local.role_name) = [
|
||||||
|
@ -40,6 +41,10 @@ module "project" {
|
||||||
"compute.zoneOperations.list"
|
"compute.zoneOperations.list"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
iam_roles = [local.role_id]
|
||||||
|
iam_members = {
|
||||||
|
(local.role_id) = [module.service-account.iam_email]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
|
@ -70,10 +75,10 @@ module "pubsub" {
|
||||||
}
|
}
|
||||||
|
|
||||||
module "service-account" {
|
module "service-account" {
|
||||||
source = "../../modules/iam-service-accounts"
|
source = "../../modules/iam-service-accounts"
|
||||||
project_id = module.project.project_id
|
project_id = module.project.project_id
|
||||||
names = ["${var.name}-cf"]
|
names = ["${var.name}-cf"]
|
||||||
iam_project_roles = { (module.project.project_id) = [local.role_id] }
|
# iam_project_roles = { (module.project.project_id) = [local.role_id] }
|
||||||
}
|
}
|
||||||
|
|
||||||
module "cf" {
|
module "cf" {
|
||||||
|
|
|
@ -26,6 +26,12 @@ variable "name" {
|
||||||
default = "asset-feed"
|
default = "asset-feed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "project_create" {
|
||||||
|
description = "Create project instead ofusing an existing one."
|
||||||
|
type = bool
|
||||||
|
default = false
|
||||||
|
}
|
||||||
|
|
||||||
variable "project_id" {
|
variable "project_id" {
|
||||||
description = "Project id that references existing project."
|
description = "Project id that references existing project."
|
||||||
type = string
|
type = string
|
||||||
|
|
|
@ -24,14 +24,15 @@ locals {
|
||||||
module "project" {
|
module "project" {
|
||||||
source = "../../modules/project"
|
source = "../../modules/project"
|
||||||
name = var.project_id
|
name = var.project_id
|
||||||
project_create = false
|
project_create = var.project_create
|
||||||
services = [
|
services = [
|
||||||
"compute.googleapis.com",
|
"compute.googleapis.com",
|
||||||
"dns.googleapis.com",
|
"dns.googleapis.com",
|
||||||
"servicedirectory.googleapis.com"
|
"servicedirectory.googleapis.com"
|
||||||
]
|
]
|
||||||
service_config = {
|
service_config = {
|
||||||
disable_on_destroy = false, disable_dependent_services = false
|
disable_on_destroy = false,
|
||||||
|
disable_dependent_services = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,12 @@ variable "name" {
|
||||||
default = "dns-sd-test"
|
default = "dns-sd-test"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "project_create" {
|
||||||
|
description = "Create project instead ofusing an existing one."
|
||||||
|
type = bool
|
||||||
|
default = false
|
||||||
|
}
|
||||||
|
|
||||||
variable "project_id" {
|
variable "project_id" {
|
||||||
description = "Existing project id."
|
description = "Existing project id."
|
||||||
type = string
|
type = string
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Copyright 2020 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.
|
|
@ -0,0 +1,21 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
module "test" {
|
||||||
|
source = "../../../../cloud-operations/asset-inventory-feed-remediation"
|
||||||
|
project_create = var.project_create
|
||||||
|
project_id = var.project_id
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Copyright 2020 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.
|
||||||
|
|
||||||
|
variable "project_create" {
|
||||||
|
type = bool
|
||||||
|
default = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "project_id" {
|
||||||
|
type = string
|
||||||
|
default = "project-1"
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Copyright 2020 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.
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
FIXTURES_DIR = os.path.join(os.path.dirname(__file__), 'fixture')
|
||||||
|
|
||||||
|
|
||||||
|
def test_resources(e2e_plan_runner):
|
||||||
|
"Test that plan works and the numbers of resources is as expected."
|
||||||
|
modules, resources = e2e_plan_runner(FIXTURES_DIR)
|
||||||
|
assert len(modules) == 6
|
||||||
|
assert len(resources) == 16
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Copyright 2020 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.
|
|
@ -0,0 +1,22 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
module "test" {
|
||||||
|
source = "../../../../cloud-operations/dns-fine-grained-iam"
|
||||||
|
name = var.name
|
||||||
|
project_create = var.project_create
|
||||||
|
project_id = var.project_id
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Copyright 2020 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.
|
||||||
|
|
||||||
|
variable "name" {
|
||||||
|
type = string
|
||||||
|
default = "dns-sd-test"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "project_create" {
|
||||||
|
type = bool
|
||||||
|
default = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "project_id" {
|
||||||
|
type = string
|
||||||
|
default = "test"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "region" {
|
||||||
|
type = string
|
||||||
|
default = "europe-west1"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "zone_domain" {
|
||||||
|
type = string
|
||||||
|
default = "svc.example.org."
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Copyright 2020 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.
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
FIXTURES_DIR = os.path.join(os.path.dirname(__file__), 'fixture')
|
||||||
|
|
||||||
|
|
||||||
|
def test_resources(e2e_plan_runner):
|
||||||
|
"Test that plan works and the numbers of resources is as expected."
|
||||||
|
modules, resources = e2e_plan_runner(FIXTURES_DIR)
|
||||||
|
assert len(modules) == 8
|
||||||
|
assert len(resources) == 25
|
Loading…
Reference in New Issue