cloud-foundation-fabric/modules/cloud-config-container
Simone Ruffilli fb90500adc
FAST: add 02-networking-peering stage. (#561)
* Networking with peering - initial commit

* README and tests

* Linter fixes

* Linter fixes

* Linter fixes

* Update README.md

* split out vpn/peering in separate files so the rest is identical

* fix dns for vpn and peering

* update tfdoc to support multiple outputs/variables files

* add peering variables

* update tfdoc for modules

* make it easier to spot errored docs

* fix doc

* yapf

* fix permadiff in firewall module source ranges

* FAST: Networking: DNS Fixes

* FAST: ability to toggle on-prem vpn creation

* FAST: fix outputs

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2022-02-28 12:27:27 +01:00
..
coredns FAST: add 02-networking-peering stage. (#561) 2022-02-28 12:27:27 +01:00
cos-generic-metadata Add periods at the end of each description field where missing (#478) 2022-01-31 10:45:34 +01:00
envoy-traffic-director Add periods at the end of each description field where missing (#478) 2022-01-31 10:45:34 +01:00
mysql FAST: add 02-networking-peering stage. (#561) 2022-02-28 12:27:27 +01:00
nginx FAST: add 02-networking-peering stage. (#561) 2022-02-28 12:27:27 +01:00
onprem FAST: add 02-networking-peering stage. (#561) 2022-02-28 12:27:27 +01:00
squid FAST: add 02-networking-peering stage. (#561) 2022-02-28 12:27:27 +01:00
.gitignore Refactor the onprem module (#55) 2020-04-06 16:27:13 +02:00
README.md document gcplogs logging driver in top-level README 2022-02-19 08:54:35 +01:00
instance.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00
outputs-instance.tf Add periods at the end of each description field where missing (#478) 2022-01-31 10:45:34 +01:00
variables-instance.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00

README.md

Instance Configuration via cloud-config

This set of modules creates specialized cloud-config configurations, which are designed for use with Container Optimized OS (the onprem module is the only exception) but can also be used as a basis for other image types or cloud providers.

These modules are designed for several use cases:

  • to quickly prototype specialized services (eg MySQL access or HTTP serving) for prototyping infrastructure
  • to emulate production services for perfomance testing
  • to easily add glue components for services like DNS (eg to work around inbound/outbound forwarding limitations)
  • to implement cloud-native production deployments that leverage cloud-init for configuration management, without the need of a separate tool

Available modules

Using the modules

All modules are designed to be as lightweight as possible, so that specialized modules like compute-vm can be leveraged to manage instances or instance templates, and to allow simple forking to create custom derivatives.

Modules use Docker's Google Cloud Logging driver by default, so projects need to have the logging API enabled. If that's not desirable simply remove --log-driver=gcplogs from the relevant systemd unit in cloud-config.yaml.

To use the modules with instances or instance templates, simply set use their cloud_config output for the user-data metadata. When updating the metadata after a variable change remember to manually restart the instances that use a module's output, or the changes won't effect the running system.

For convenience when developing or prototyping infrastructure, an optional test instance is included in all modules. If it's not needed, the linked *instance.tf files can be removed from the modules without harm.

TODO

  • convert all xxx_config variables to use file content instead of path