From b0b9f9607cb31f74c109fadfe5056f02fc16a00e Mon Sep 17 00:00:00 2001 From: Ludovico Magnocavallo Date: Thu, 24 Mar 2022 16:17:24 +0100 Subject: [PATCH] Optionally turn off gcplogs driver in COS examples (#592) * add new variable * trigger checks * actually pass new variable to template * fix templates --- .../cloud-config-container/coredns/README.md | 5 +++-- .../coredns/cloud-config.yaml | 5 ++++- .../cloud-config-container/coredns/main.tf | 5 +++-- .../coredns/variables.tf | 6 +++++ .../cos-generic-metadata/README.md | 13 ++++++----- .../cos-generic-metadata/cloud-config.yaml | 22 +++++++++---------- .../cos-generic-metadata/main.tf | 1 + .../cos-generic-metadata/variables.tf | 6 +++++ .../envoy-traffic-director/README.md | 2 +- .../envoy-traffic-director/main.tf | 2 +- .../envoy-traffic-director/variables.tf | 4 ++-- .../cloud-config-container/mysql/README.md | 11 +++++----- .../mysql/cloud-config.yaml | 2 ++ modules/cloud-config-container/mysql/main.tf | 1 + .../cloud-config-container/mysql/variables.tf | 6 +++++ .../cloud-config-container/nginx/README.md | 9 ++++---- .../nginx/cloud-config.yaml | 5 ++++- modules/cloud-config-container/nginx/main.tf | 1 + .../cloud-config-container/nginx/variables.tf | 6 +++++ .../cloud-config-container/onprem/README.md | 1 + .../cloud-config-container/squid/README.md | 15 +++++++------ .../squid/cloud-config.yaml | 5 ++++- modules/cloud-config-container/squid/main.tf | 5 +++-- .../cloud-config-container/squid/variables.tf | 6 +++++ 24 files changed, 98 insertions(+), 46 deletions(-) diff --git a/modules/cloud-config-container/coredns/README.md b/modules/cloud-config-container/coredns/README.md index 09cc4491..8099aee5 100644 --- a/modules/cloud-config-container/coredns/README.md +++ b/modules/cloud-config-container/coredns/README.md @@ -77,8 +77,9 @@ module "cos-coredns" { | [cloud_config](variables.tf#L17) | Cloud config template path. If null default will be used. | string | | null | | [config_variables](variables.tf#L23) | Additional variables used to render the cloud-config and CoreDNS templates. | map(any) | | {} | | [coredns_config](variables.tf#L29) | CoreDNS configuration path, if null default will be used. | string | | null | -| [file_defaults](variables.tf#L35) | Default owner and permissions for files. | object({…}) | | {…} | -| [files](variables.tf#L47) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | +| [docker_logging](variables.tf#L35) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | +| [file_defaults](variables.tf#L41) | Default owner and permissions for files. | object({…}) | | {…} | +| [files](variables.tf#L53) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | | [test_instance](variables-instance.tf#L17) | Test/development instance attributes, leave null to skip creation. | object({…}) | | null | | [test_instance_defaults](variables-instance.tf#L30) | Test/development instance defaults used for optional configuration. If image is null, COS stable will be used. | object({…}) | | {…} | diff --git a/modules/cloud-config-container/coredns/cloud-config.yaml b/modules/cloud-config-container/coredns/cloud-config.yaml index 0796fc6b..1fe9a004 100644 --- a/modules/cloud-config-container/coredns/cloud-config.yaml +++ b/modules/cloud-config-container/coredns/cloud-config.yaml @@ -58,7 +58,10 @@ write_files: Wants=gcr-online.target docker.socket docker-events-collector.service [Service] ExecStart=/usr/bin/docker run --rm --name=coredns \ - --log-driver=gcplogs --network host \ + %{~ if docker_logging ~} + --log-driver=gcplogs \ + %{~ endif ~} + --network host \ -v /etc/coredns:/etc/coredns \ coredns/coredns -conf /etc/coredns/Corefile ExecStop=/usr/bin/docker stop coredns diff --git a/modules/cloud-config-container/coredns/main.tf b/modules/cloud-config-container/coredns/main.tf index 789168ca..42288296 100644 --- a/modules/cloud-config-container/coredns/main.tf +++ b/modules/cloud-config-container/coredns/main.tf @@ -16,8 +16,9 @@ locals { cloud_config = templatefile(local.template, merge(var.config_variables, { - corefile = templatefile(local.corefile, var.config_variables) - files = local.files + corefile = templatefile(local.corefile, var.config_variables) + docker_logging = var.docker_logging + files = local.files })) corefile = ( var.coredns_config == null ? "${path.module}/Corefile" : var.coredns_config diff --git a/modules/cloud-config-container/coredns/variables.tf b/modules/cloud-config-container/coredns/variables.tf index c323017f..bc9be06e 100644 --- a/modules/cloud-config-container/coredns/variables.tf +++ b/modules/cloud-config-container/coredns/variables.tf @@ -32,6 +32,12 @@ variable "coredns_config" { default = null } +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." + type = bool + default = true +} + variable "file_defaults" { description = "Default owner and permissions for files." type = object({ diff --git a/modules/cloud-config-container/cos-generic-metadata/README.md b/modules/cloud-config-container/cos-generic-metadata/README.md index 5a01b43e..fef18386 100644 --- a/modules/cloud-config-container/cos-generic-metadata/README.md +++ b/modules/cloud-config-container/cos-generic-metadata/README.md @@ -64,7 +64,7 @@ module "cos-envoy" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [container_image](variables.tf#L42) | Container image. | string | ✓ | | -| [authenticate_gcr](variables.tf#L112) | Setup docker to pull images from private GCR. Requires at least one user since the token is stored in the home of the first user defined. | bool | | false | +| [authenticate_gcr](variables.tf#L118) | Setup docker to pull images from private GCR. Requires at least one user since the token is stored in the home of the first user defined. | bool | | false | | [boot_commands](variables.tf#L17) | List of cloud-init `bootcmd`s. | list(string) | | [] | | [cloud_config](variables.tf#L23) | Cloud config template path. If provided, takes precedence over all other arguments. | string | | null | | [config_variables](variables.tf#L29) | Additional variables used to render the template passed via `cloud_config`. | map(any) | | {} | @@ -72,11 +72,12 @@ module "cos-envoy" { | [container_name](variables.tf#L47) | Name of the container to be run. | string | | "container" | | [container_volumes](variables.tf#L53) | List of volumes. | list(object({…})) | | [] | | [docker_args](variables.tf#L62) | Extra arguments to be passed for docker. | string | | null | -| [file_defaults](variables.tf#L68) | Default owner and permissions for files. | object({…}) | | {…} | -| [files](variables.tf#L80) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | -| [gcp_logging](variables.tf#L90) | Should container logs be sent to Google Cloud Logging. | bool | | true | -| [run_commands](variables.tf#L96) | List of cloud-init `runcmd`s. | list(string) | | [] | -| [users](variables.tf#L102) | List of usernames to be created. If provided, first user will be used to run the container. | list(object({…})) | | […] | +| [docker_logging](variables.tf#L68) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | +| [file_defaults](variables.tf#L74) | Default owner and permissions for files. | object({…}) | | {…} | +| [files](variables.tf#L86) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | +| [gcp_logging](variables.tf#L96) | Should container logs be sent to Google Cloud Logging. | bool | | true | +| [run_commands](variables.tf#L102) | List of cloud-init `runcmd`s. | list(string) | | [] | +| [users](variables.tf#L108) | List of usernames to be created. If provided, first user will be used to run the container. | list(object({…})) | | […] | ## Outputs diff --git a/modules/cloud-config-container/cos-generic-metadata/cloud-config.yaml b/modules/cloud-config-container/cos-generic-metadata/cloud-config.yaml index fc75616a..d516a1de 100644 --- a/modules/cloud-config-container/cos-generic-metadata/cloud-config.yaml +++ b/modules/cloud-config-container/cos-generic-metadata/cloud-config.yaml @@ -44,26 +44,26 @@ write_files: After=gcr-online.target docker.socket Wants=gcr-online.target docker.socket docker-events-collector.service [Service] -%{ if authenticate_gcr && length(users) > 0 ~} + %{ if authenticate_gcr && length(users) > 0 ~} Environment="HOME=/home/${users[0].username}" ExecStartPre=/usr/bin/docker-credential-gcr configure-docker -%{ endif ~} + %{ endif ~} ExecStart=/usr/bin/docker run --rm --name=${container_name} \ -%{ if length(users) > 0 ~} + %{ if length(users) > 0 ~} --user=${users[0].uid} \ -%{ endif ~} -%{ if gcp_logging == true ~} + %{ endif ~} + %{~ if docker_logging ~} --log-driver=gcplogs \ -%{ endif ~} -%{ if docker_args != null ~} + %{~ endif ~} + %{~ if docker_args != null ~} ${docker_args} \ -%{ endif ~} -%{ for volume in container_volumes ~} + %{~ endif ~} + %{ for volume in container_volumes ~} -v ${volume.host}:${volume.container} \ -%{ endfor ~} + %{ endfor ~} ${container_image} ${container_args} ExecStop=/usr/bin/docker stop ${container_name} -%{ for path, data in files ~} + %{ for path, data in files ~} - path: ${path} owner: ${lookup(data, "owner", "root")} permissions: ${lookup(data, "permissions", "0644")} diff --git a/modules/cloud-config-container/cos-generic-metadata/main.tf b/modules/cloud-config-container/cos-generic-metadata/main.tf index 5019fa09..835183f3 100644 --- a/modules/cloud-config-container/cos-generic-metadata/main.tf +++ b/modules/cloud-config-container/cos-generic-metadata/main.tf @@ -22,6 +22,7 @@ locals { container_name = var.container_name container_volumes = var.container_volumes docker_args = var.docker_args + docker_logging = var.docker_logging files = local.files gcp_logging = var.gcp_logging run_commands = var.run_commands diff --git a/modules/cloud-config-container/cos-generic-metadata/variables.tf b/modules/cloud-config-container/cos-generic-metadata/variables.tf index e9aa051a..b84842f5 100644 --- a/modules/cloud-config-container/cos-generic-metadata/variables.tf +++ b/modules/cloud-config-container/cos-generic-metadata/variables.tf @@ -65,6 +65,12 @@ variable "docker_args" { default = null } +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." + type = bool + default = true +} + variable "file_defaults" { description = "Default owner and permissions for files." type = object({ diff --git a/modules/cloud-config-container/envoy-traffic-director/README.md b/modules/cloud-config-container/envoy-traffic-director/README.md index 4493e9ba..c18df6e4 100644 --- a/modules/cloud-config-container/envoy-traffic-director/README.md +++ b/modules/cloud-config-container/envoy-traffic-director/README.md @@ -50,8 +50,8 @@ module "vm-cos" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| +| [docker_logging](variables.tf#L23) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | | [envoy_image](variables.tf#L17) | Envoy Proxy container image to use. | string | | "envoyproxy/envoy:v1.14.1" | -| [gcp_logging](variables.tf#L23) | Should container logs be sent to Google Cloud Logging. | bool | | true | ## Outputs diff --git a/modules/cloud-config-container/envoy-traffic-director/main.tf b/modules/cloud-config-container/envoy-traffic-director/main.tf index cdb805c6..bc8bd7c3 100644 --- a/modules/cloud-config-container/envoy-traffic-director/main.tf +++ b/modules/cloud-config-container/envoy-traffic-director/main.tf @@ -44,7 +44,7 @@ module "cos-envoy-td" { } } - gcp_logging = var.gcp_logging + gcp_logging = var.docker_logging run_commands = [ "iptables -t nat -N ENVOY_IN_REDIRECT", diff --git a/modules/cloud-config-container/envoy-traffic-director/variables.tf b/modules/cloud-config-container/envoy-traffic-director/variables.tf index b43b3c5e..8135a48a 100644 --- a/modules/cloud-config-container/envoy-traffic-director/variables.tf +++ b/modules/cloud-config-container/envoy-traffic-director/variables.tf @@ -20,8 +20,8 @@ variable "envoy_image" { default = "envoyproxy/envoy:v1.14.1" } -variable "gcp_logging" { - description = "Should container logs be sent to Google Cloud Logging." +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." type = bool default = true } diff --git a/modules/cloud-config-container/mysql/README.md b/modules/cloud-config-container/mysql/README.md index 4c99d504..3dc4e791 100644 --- a/modules/cloud-config-container/mysql/README.md +++ b/modules/cloud-config-container/mysql/README.md @@ -79,13 +79,14 @@ module "cos-mysql" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| -| [mysql_password](variables.tf#L58) | MySQL root password. If an encrypted password is set, use the kms_config variable to specify KMS configuration. | string | ✓ | | +| [mysql_password](variables.tf#L64) | MySQL root password. If an encrypted password is set, use the kms_config variable to specify KMS configuration. | string | ✓ | | | [cloud_config](variables.tf#L17) | Cloud config template path. If null default will be used. | string | | null | | [config_variables](variables.tf#L23) | Additional variables used to render the cloud-config template. | map(any) | | {} | -| [image](variables.tf#L29) | MySQL container image. | string | | "mysql:5.7" | -| [kms_config](variables.tf#L35) | Optional KMS configuration to decrypt passed-in password. Leave null if a plaintext password is used. | object({…}) | | null | -| [mysql_config](variables.tf#L46) | MySQL configuration file content, if null container default will be used. | string | | null | -| [mysql_data_disk](variables.tf#L52) | MySQL data disk name in /dev/disk/by-id/ including the google- prefix. If null the boot disk will be used for data. | string | | null | +| [docker_logging](variables.tf#L29) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | +| [image](variables.tf#L35) | MySQL container image. | string | | "mysql:5.7" | +| [kms_config](variables.tf#L41) | Optional KMS configuration to decrypt passed-in password. Leave null if a plaintext password is used. | object({…}) | | null | +| [mysql_config](variables.tf#L52) | MySQL configuration file content, if null container default will be used. | string | | null | +| [mysql_data_disk](variables.tf#L58) | MySQL data disk name in /dev/disk/by-id/ including the google- prefix. If null the boot disk will be used for data. | string | | null | | [test_instance](variables-instance.tf#L17) | Test/development instance attributes, leave null to skip creation. | object({…}) | | null | | [test_instance_defaults](variables-instance.tf#L30) | Test/development instance defaults used for optional configuration. If image is null, COS stable will be used. | object({…}) | | {…} | diff --git a/modules/cloud-config-container/mysql/cloud-config.yaml b/modules/cloud-config-container/mysql/cloud-config.yaml index 1c792a74..e3bf831f 100644 --- a/modules/cloud-config-container/mysql/cloud-config.yaml +++ b/modules/cloud-config-container/mysql/cloud-config.yaml @@ -96,7 +96,9 @@ write_files: ExecStartPre=/bin/chown -R 2000 /run/mysql/secrets /run/mysql/data ExecStart=/usr/bin/docker run --rm --name=mysql \ --user 2000:2000 \ + %{~ if docker_logging ~} --log-driver=gcplogs \ + %{~ endif ~} --network host \ -e MYSQL_ROOT_PASSWORD_FILE=/etc/secrets/mysql-passwd.txt \ -v /run/mysql/secrets:/etc/secrets \ diff --git a/modules/cloud-config-container/mysql/main.tf b/modules/cloud-config-container/mysql/main.tf index 4e44c469..1dc3908d 100644 --- a/modules/cloud-config-container/mysql/main.tf +++ b/modules/cloud-config-container/mysql/main.tf @@ -16,6 +16,7 @@ locals { cloud_config = templatefile(local.template, merge(var.config_variables, { + docker_logging = var.docker_logging image = var.image kms_config = var.kms_config mysql_config = var.mysql_config diff --git a/modules/cloud-config-container/mysql/variables.tf b/modules/cloud-config-container/mysql/variables.tf index 52bb3dbb..d15ecfdd 100644 --- a/modules/cloud-config-container/mysql/variables.tf +++ b/modules/cloud-config-container/mysql/variables.tf @@ -26,6 +26,12 @@ variable "config_variables" { default = {} } +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." + type = bool + default = true +} + variable "image" { description = "MySQL container image." type = string diff --git a/modules/cloud-config-container/nginx/README.md b/modules/cloud-config-container/nginx/README.md index c993eb72..317f6b56 100644 --- a/modules/cloud-config-container/nginx/README.md +++ b/modules/cloud-config-container/nginx/README.md @@ -59,10 +59,11 @@ module "cos-nginx" { |---|---|:---:|:---:|:---:| | [cloud_config](variables.tf#L17) | Cloud config template path. If null default will be used. | string | | null | | [config_variables](variables.tf#L23) | Additional variables used to render the cloud-config and Nginx templates. | map(any) | | {} | -| [file_defaults](variables.tf#L41) | Default owner and permissions for files. | object({…}) | | {…} | -| [files](variables.tf#L53) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | -| [image](variables.tf#L29) | Nginx container image. | string | | "nginxdemos/hello:plain-text" | -| [nginx_config](variables.tf#L35) | Nginx configuration path, if null container default will be used. | string | | null | +| [docker_logging](variables.tf#L29) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | +| [file_defaults](variables.tf#L47) | Default owner and permissions for files. | object({…}) | | {…} | +| [files](variables.tf#L59) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | +| [image](variables.tf#L35) | Nginx container image. | string | | "nginxdemos/hello:plain-text" | +| [nginx_config](variables.tf#L41) | Nginx configuration path, if null container default will be used. | string | | null | | [test_instance](variables-instance.tf#L17) | Test/development instance attributes, leave null to skip creation. | object({…}) | | null | | [test_instance_defaults](variables-instance.tf#L30) | Test/development instance defaults used for optional configuration. If image is null, COS stable will be used. | object({…}) | | {…} | diff --git a/modules/cloud-config-container/nginx/cloud-config.yaml b/modules/cloud-config-container/nginx/cloud-config.yaml index d061e037..f7be84df 100644 --- a/modules/cloud-config-container/nginx/cloud-config.yaml +++ b/modules/cloud-config-container/nginx/cloud-config.yaml @@ -53,7 +53,10 @@ write_files: Wants=gcr-online.target docker.socket docker-events-collector.service [Service] ExecStart=/usr/bin/docker run --rm --name=nginx \ - --log-driver=gcplogs --network host \ + %{~ if docker_logging ~} + --log-driver=gcplogs \ + %{~ endif ~} + --network host \ %{~ if etc_mount ~} -v /etc/nginx/conf.d:/etc/nginx/conf.d \ %{~ endif ~} diff --git a/modules/cloud-config-container/nginx/main.tf b/modules/cloud-config-container/nginx/main.tf index a2fce41b..688545d7 100644 --- a/modules/cloud-config-container/nginx/main.tf +++ b/modules/cloud-config-container/nginx/main.tf @@ -16,6 +16,7 @@ locals { cloud_config = templatefile(local.template, merge(var.config_variables, { + docker_logging = var.docker_logging etc_mount = ( var.nginx_config != null || length([ for name in keys(var.files) : diff --git a/modules/cloud-config-container/nginx/variables.tf b/modules/cloud-config-container/nginx/variables.tf index dec89cc2..c0ad3f6e 100644 --- a/modules/cloud-config-container/nginx/variables.tf +++ b/modules/cloud-config-container/nginx/variables.tf @@ -26,6 +26,12 @@ variable "config_variables" { default = {} } +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." + type = bool + default = true +} + variable "image" { description = "Nginx container image." type = string diff --git a/modules/cloud-config-container/onprem/README.md b/modules/cloud-config-container/onprem/README.md index 222d25b0..5033dcc9 100644 --- a/modules/cloud-config-container/onprem/README.md +++ b/modules/cloud-config-container/onprem/README.md @@ -81,3 +81,4 @@ module "on-prem" { | [test_instance](outputs-instance.tf#L17) | Optional test instance name and address. | | + diff --git a/modules/cloud-config-container/squid/README.md b/modules/cloud-config-container/squid/README.md index 912c5262..7f2f45db 100644 --- a/modules/cloud-config-container/squid/README.md +++ b/modules/cloud-config-container/squid/README.md @@ -61,15 +61,16 @@ module "cos-squid" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| -| [allow](variables.tf#L57) | List of domains Squid will allow connections to. | list(string) | | [] | -| [clients](variables.tf#L69) | List of CIDR ranges from which Squid will allow connections. | list(string) | | [] | +| [allow](variables.tf#L63) | List of domains Squid will allow connections to. | list(string) | | [] | +| [clients](variables.tf#L75) | List of CIDR ranges from which Squid will allow connections. | list(string) | | [] | | [cloud_config](variables.tf#L17) | Cloud config template path. If null default will be used. | string | | null | | [config_variables](variables.tf#L23) | Additional variables used to render the cloud-config and Squid templates. | map(any) | | {} | -| [default_action](variables.tf#L75) | Default action for domains not matching neither the allow or deny lists. | string | | "deny" | -| [deny](variables.tf#L63) | List of domains Squid will deny connections to. | list(string) | | [] | -| [file_defaults](variables.tf#L35) | Default owner and permissions for files. | object({…}) | | {…} | -| [files](variables.tf#L47) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | -| [squid_config](variables.tf#L29) | Squid configuration path, if null default will be used. | string | | null | +| [default_action](variables.tf#L81) | Default action for domains not matching neither the allow or deny lists. | string | | "deny" | +| [deny](variables.tf#L69) | List of domains Squid will deny connections to. | list(string) | | [] | +| [docker_logging](variables.tf#L29) | Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. | bool | | true | +| [file_defaults](variables.tf#L41) | Default owner and permissions for files. | object({…}) | | {…} | +| [files](variables.tf#L53) | Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null. | map(object({…})) | | {} | +| [squid_config](variables.tf#L35) | Squid configuration path, if null default will be used. | string | | null | | [test_instance](variables-instance.tf#L17) | Test/development instance attributes, leave null to skip creation. | object({…}) | | null | | [test_instance_defaults](variables-instance.tf#L30) | Test/development instance defaults used for optional configuration. If image is null, COS stable will be used. | object({…}) | | {…} | diff --git a/modules/cloud-config-container/squid/cloud-config.yaml b/modules/cloud-config-container/squid/cloud-config.yaml index b0c4b7fe..8fef77b3 100644 --- a/modules/cloud-config-container/squid/cloud-config.yaml +++ b/modules/cloud-config-container/squid/cloud-config.yaml @@ -71,7 +71,10 @@ write_files: Environment="HOME=/home/squid" ExecStartPre=/usr/bin/docker-credential-gcr configure-docker ExecStart=/usr/bin/docker run --rm --name=squid \ - --log-driver=gcplogs --network host \ + %{~ if docker_logging ~} + --log-driver=gcplogs \ + %{~ endif ~} + --network host \ -v /etc/squid:/etc/squid \ gcr.io/pso-cft-fabric/squid:0.10 ExecStop=/usr/bin/docker stop squid diff --git a/modules/cloud-config-container/squid/main.tf b/modules/cloud-config-container/squid/main.tf index ad895c17..81538c60 100644 --- a/modules/cloud-config-container/squid/main.tf +++ b/modules/cloud-config-container/squid/main.tf @@ -16,8 +16,9 @@ locals { cloud_config = templatefile(local.template, merge(local.config_variables, { - squid_config = templatefile(local.squid_config, local.config_variables) - files = local.files + docker_logging = var.docker_logging + squid_config = templatefile(local.squid_config, local.config_variables) + files = local.files })) squid_config = ( var.squid_config == null ? "${path.module}/squid.conf" : var.squid_config diff --git a/modules/cloud-config-container/squid/variables.tf b/modules/cloud-config-container/squid/variables.tf index 5180c6d3..6e65e779 100644 --- a/modules/cloud-config-container/squid/variables.tf +++ b/modules/cloud-config-container/squid/variables.tf @@ -26,6 +26,12 @@ variable "config_variables" { default = {} } +variable "docker_logging" { + description = "Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead." + type = bool + default = true +} + variable "squid_config" { description = "Squid configuration path, if null default will be used." type = string