Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion mmv1/products/developerconnect/InsightsConfig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ examples:
org_id: "ORG_ID"
billing_account: "BILLING_ACCT"
skip_vcr: true
- name: 'developer_connect_insights_config_projects'
external_providers: ["time"]
primary_resource_id: 'insights_config_projects'
test_env_vars:
org_id: "ORG_ID"
billing_account: "BILLING_ACCT"
skip_vcr: true
autogen_async: true
async:
operation:
Expand Down Expand Up @@ -67,7 +74,23 @@ properties:
The name of the App Hub Application.
Format:
projects/{project}/locations/{location}/applications/{application}
required: true
conflicts:
- targetProjects
- name: targetProjects
type: NestedObject
api_name: projects
description: The projects to track with the InsightsConfig.
conflicts:
- appHubApplication
immutable: true
properties:
- name: projectIds
type: Array
description: The project IDs. Format {project}.
diff_suppress_func: 'tpgresource.ProjectNumberDiffSuppress'
item_type:
type: String
immutable: true
- name: name
type: String
description: |-
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ resource "google_apphub_application" "my_apphub_application" {

resource "google_developer_connect_insights_config" "insights_config" {
location = "us-central1"
insights_config_id = "tf-test-ic%{random_suffix}"
insights_config_id = "tf-test-ic-apphub-%{random_suffix}"
project = google_project.project.project_id
annotations = {}
labels = {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
resource "google_project" "project" {
project_id = "dci-tf-%{random_suffix}"
name = "Service Project"
org_id = "{{index $.TestEnvVars "org_id"}}"
billing_account = "{{index $.TestEnvVars "billing_account"}}"
deletion_policy = "DELETE"
}

# Grant Permissions
resource "google_project_iam_member" "apphub_permissions" {
project = google_project.project.project_id
role = "roles/apphub.admin"
member = "serviceAccount:hashicorp-test-runner@ci-test-project-188019.iam.gserviceaccount.com"
}

resource "google_project_iam_member" "insights_agent" {
project = google_project.project.project_id
role = "roles/developerconnect.insightsAgent"
member = "serviceAccount:66214305248-compute@developer.gserviceaccount.com"
}

# Enable APIs
resource "google_project_service" "apphub_api_service" {
project = google_project.project.project_id
service = "apphub.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "containeranalysis_api" {
project = google_project.project.project_id
service = "containeranalysis.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "containerscanning_api" {
project = google_project.project.project_id
service = "containerscanning.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "container_api" {
project = google_project.project.project_id
service = "container.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "artifactregistry_api" {
project = google_project.project.project_id
service = "artifactregistry.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "cloudbuild_api" {
project = google_project.project.project_id
service = "cloudbuild.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "cloudasset_api" {
project = google_project.project.project_id
service = "cloudasset.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "compute_api" {
project = google_project.project.project_id
service = "compute.googleapis.com"
disable_dependent_services=true
depends_on = [google_project.project]
}

resource "google_project_service" "devconnect_api" {
project = google_project.project.project_id
service = "developerconnect.googleapis.com"
depends_on = [google_project.project]
}

# Wait delay after enabling APIs and granting permissions
resource "time_sleep" "wait_for_propagation" {
depends_on = [
google_project_iam_member.apphub_permissions,
google_project_iam_member.insights_agent,
google_project_service.apphub_api_service,
google_project_service.containeranalysis_api,
google_project_service.containerscanning_api,
google_project_service.container_api,
google_project_service.artifactregistry_api,
google_project_service.artifactregistry_api,
google_project_service.cloudbuild_api,
google_project_service.cloudasset_api,
google_project_service.compute_api,
google_project_service.devconnect_api,
]
create_duration = "120s"
}

resource "google_developer_connect_insights_config" "insights_config_projects" {
location = "us-central1"
insights_config_id = "tf-test-ic-projects-%{random_suffix}"
project = google_project.project.project_id
annotations = {}
labels = {}
target_projects {
project_ids = ["projects/${google_project.project.project_id}"]
}
artifact_configs {
google_artifact_analysis {
project_id = google_project.project.project_id
}
google_artifact_registry {
artifact_registry_package = "my-package"
project_id = google_project.project.project_id
}
uri = "us-docker.pkg.dev/my-project/my-repo/my-image"
}
depends_on = [time_sleep.wait_for_propagation]
}
Original file line number Diff line number Diff line change
Expand Up @@ -315,9 +315,10 @@ func testAccDeveloperConnectInsightsConfig_update(context map[string]interface{}
project = google_project.project.project_id
depends_on = [time_sleep.wait_for_propagation]
}

resource "google_developer_connect_insights_config" "insights_config" {
location = "us-central1"
insights_config_id = "tf-test-ic%{random_suffix}"
insights_config_id = "tf-test-ic-%{random_suffix}"
project = google_project.project.project_id
annotations = {}
labels = {}
Expand Down
Loading