cloud-foundation-fabric/modules/cloud-config-container/nginx-tls/README.md

2.2 KiB

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.

Example

module "cos-nginx-tls" {
  source = "./fabric/modules/cloud-config-container/nginx-tls"
}

module "vm-nginx-tls" {
  source     = "./fabric/modules/compute-vm"
  project_id = "my-project"
  zone       = "europe-west8-b"
  name       = "cos-nginx-tls"
  network_interfaces = [{
    network    = "default"
    subnetwork = "gce"
  }]
  metadata = {
    user-data              = module.cos-nginx-tls.cloud_config
    google-logging-enabled = true
  }
  boot_disk = {
    initialize_params = {
      image = "projects/cos-cloud/global/images/family/cos-stable"
      type  = "pd-ssd"
      size  = 10
    }
  }
  tags = ["http-server", "https-server", "ssh"]
}
# tftest modules=1 resources=1

Variables

name description type required default
files Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. map(object({…})) {}
hello Behave like the nginx hello image by returning plain text informative responses. bool true
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.