cloud-foundation-fabric/modules/cloud-config-container/nginx-tls
Taneli Leppä 8072be5619 nginx-tls: only use hostname part for certificate as the FQDN might be too long (>64 chars). 2022-09-30 13:39:14 +02:00
..
files nginx-tls: only use hostname part for certificate as the FQDN might be too long (>64 chars). 2022-09-30 13:39:14 +02:00
README.md Test documentation examples in the examples/ folder 2022-09-06 17:46:09 +02:00
main.tf nginx-tls module 2022-08-24 14:37:53 +02:00
outputs.tf nginx-tls module 2022-08-24 14:37:53 +02:00
variables.tf nginx-tls module 2022-08-24 14:37:53 +02:00
versions.tf Update terraform version 2022-09-28 11:28:05 +02:00

README.md

Containerized Nginx with self-signed TLS on Container Optimized OS

This module manages a cloud-config configuration that starts a containerized Nginx with a self-signed TLS cert on Container Optimized OS. This can be useful if you need quickly a VM or instance group answering HTTPS for prototyping.

The generated cloud config is rendered in the cloud_config output, and is meant to be used in instances or instance templates via the user-data metadata.

This module depends on the cos-generic-metadata module being in the parent folder. If you change its location be sure to adjust the source attribute in main.tf.

Examples

Default configuration

# Nginx with self-signed TLS config
module "cos-nginx-tls" {
  source = "./fabric/modules/cloud-config-container/nginx-tls"
}

# COS VM
module "vm-nginx-tls" {
  source     = "./fabric/modules/compute-vm"
  project_id = local.project_id
  zone       = local.zone
  name       = "cos-nginx-tls"
  network_interfaces = [{
    network    = local.vpc.self_link,
    subnetwork = local.vpc.subnet_self_link,
    nat        = false,
    addresses  = null
  }]

  metadata = {
    user-data = module.cos-nginx-tls.cloud_config
  }

  boot_disk = {
    image = "projects/cos-cloud/global/images/family/cos-stable"
    type  = "pd-ssd"
    size  = 10
  }

  service_account_scopes = ["https://www.googleapis.com/auth/cloud-platform"]
}

Variables

name description type required default
docker_logging Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. bool true
nginx_image Nginx container image to use. string "nginx:1.23.1"

Outputs

name description sensitive
cloud_config Rendered cloud-config file to be passed as user-data instance metadata.