Skip to content

Commit

Permalink
fix: fixes lint issues and generates metadata (#59)
Browse files Browse the repository at this point in the history
Co-authored-by: Awais Malik <[email protected]>
  • Loading branch information
g-awmalik and g-awmalik authored Jan 4, 2023
1 parent f75bb66 commit 6d55969
Show file tree
Hide file tree
Showing 8 changed files with 145 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# Make will use bash instead of sh
SHELL := /usr/bin/env bash

DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.0
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.10
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
REGISTRY_URL := gcr.io/cloud-foundation-cicd

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Full functional examples are located in the [examples](./examples/) directory.
| disable\_health\_check | Disables the health check on the target pool. | `bool` | `false` | no |
| firewall\_project | Name of the project to create the firewall rule in. Useful for shared VPC. Default is var.project. | `string` | `""` | no |
| health\_check | Health check to determine whether instances are responsive and able to do work | <pre>object({<br> check_interval_sec = number<br> healthy_threshold = number<br> timeout_sec = number<br> unhealthy_threshold = number<br> port = number<br> request_path = string<br> host = string<br> })</pre> | <pre>{<br> "check_interval_sec": null,<br> "healthy_threshold": null,<br> "host": null,<br> "port": null,<br> "request_path": null,<br> "timeout_sec": null,<br> "unhealthy_threshold": null<br>}</pre> | no |
| ip\_address | IP address of the external load balancer, if empty one will be assigned. | `any` | `null` | no |
| ip\_address | IP address of the external load balancer, if empty one will be assigned. | `string` | `null` | no |
| ip\_protocol | The IP protocol for the frontend forwarding rule and firewall rule. TCP, UDP, ESP, AH, SCTP or ICMP. | `string` | `"TCP"` | no |
| labels | The labels to attach to resources created by this module. | `map(string)` | `{}` | no |
| name | Name for the forwarding rule and prefix for supporting resources. | `string` | n/a | yes |
Expand Down
2 changes: 1 addition & 1 deletion build/int.cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ tags:
- 'integration'
substitutions:
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.0'
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.10'
5 changes: 4 additions & 1 deletion build/lint.cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@
# limitations under the License.

steps:
- name: 'gcr.io/cloud-foundation-cicd/cft/developer-tools:0.13'
- name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
id: 'lint'
args: ['/usr/local/bin/test_lint.sh']
tags:
- 'ci'
- 'lint'
substitutions:
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.10'
1 change: 1 addition & 0 deletions kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ suites:
- name: basic
driver:
root_module_directory: test/fixtures/basic/
verify_version: false
verifier:
color: false
systems:
Expand Down
2 changes: 1 addition & 1 deletion main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ resource "google_compute_target_pool" "default" {
region = var.region
session_affinity = var.session_affinity

health_checks = var.disable_health_check ? [] : [google_compute_http_health_check.default.0.self_link]
health_checks = var.disable_health_check ? [] : [google_compute_http_health_check.default[0].self_link]
}

resource "google_compute_http_health_check" "default" {
Expand Down
134 changes: 134 additions & 0 deletions metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Copyright 2022 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-lb
annotations:
config.kubernetes.io/local-config: "true"
spec:
title: Regional TCP Load Balancer Terraform Module
source:
repo: https://github.com/terraform-google-modules/terraform-google-lb
sourceType: git
version: 4.0.0
actuationTool:
type: Terraform
version: '>= 0.13'
examples:
- name: basic
location: examples/basic
variables:
- name: allowed_ips
description: The IP address ranges which can access the load balancer.
type: list(string)
default:
- 0.0.0.0/0
required: false
- name: disable_health_check
description: Disables the health check on the target pool.
type: bool
default: false
required: false
- name: firewall_project
description: Name of the project to create the firewall rule in. Useful for shared VPC. Default is var.project.
type: string
default: ""
required: false
- name: health_check
description: Health check to determine whether instances are responsive and able to do work
type: |-
object({
check_interval_sec = number
healthy_threshold = number
timeout_sec = number
unhealthy_threshold = number
port = number
request_path = string
host = string
})
default:
check_interval_sec: null
healthy_threshold: null
host: null
port: null
request_path: null
timeout_sec: null
unhealthy_threshold: null
required: false
- name: ip_address
description: IP address of the external load balancer, if empty one will be assigned.
type: string
required: false
- name: ip_protocol
description: The IP protocol for the frontend forwarding rule and firewall rule. TCP, UDP, ESP, AH, SCTP or ICMP.
type: string
default: TCP
required: false
- name: labels
description: The labels to attach to resources created by this module.
type: map(string)
default: {}
required: false
- name: name
description: Name for the forwarding rule and prefix for supporting resources.
type: string
required: true
- name: network
description: Name of the network to create resources in.
type: string
default: default
required: false
- name: project
description: The project to deploy to, if not set the default provider project is used.
type: string
default: ""
required: false
- name: region
description: Region used for GCP resources.
type: string
required: true
- name: service_port
description: TCP port your service is listening on.
type: number
required: true
- name: session_affinity
description: How to distribute load. Options are `NONE`, `CLIENT_IP` and `CLIENT_IP_PROTO`
type: string
default: NONE
required: false
- name: target_service_accounts
description: List of target service accounts to allow traffic using firewall rule.
type: list(string)
required: false
- name: target_tags
description: List of target tags to allow traffic using firewall rule.
type: list(string)
required: false
outputs:
- name: external_ip
description: The external ip address of the forwarding rule.
- name: target_pool
description: The `self_link` to the target pool resource created.
roles:
- level: Project
roles:
- roles/compute.admin
- roles/owner
services:
- replicapool.googleapis.com
- resourceviews.googleapis.com
- serviceusage.googleapis.com
- iam.googleapis.com
2 changes: 2 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,13 @@ variable "health_check" {

variable "ip_address" {
description = "IP address of the external load balancer, if empty one will be assigned."
type = string
default = null
}

variable "ip_protocol" {
description = "The IP protocol for the frontend forwarding rule and firewall rule. TCP, UDP, ESP, AH, SCTP or ICMP."
type = string
default = "TCP"
}

Expand Down

0 comments on commit 6d55969

Please sign in to comment.