-
Notifications
You must be signed in to change notification settings - Fork 274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(docs): Example Gateway terraform module for GCP #4011
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Performance Test ResultsTCP
UDP
|
This prevents us from backslack escape hell when trying to expose this script in different contexts. Needed as a pre-req to #4011
Terraform Cloud Plan Output
|
refs #4029 |
source_ranges = ["0.0.0.0/0"] | ||
} | ||
|
||
resource "google_compute_instance_from_template" "gateway" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not promote deploying like this, what we really want is a regional instance group manager.
This way of deploying makes zero-downtime upgrades very hard to do (because all instances will be rebooted at the same time). So everything we have in ### Minimal downtime upgrades
doesn't make any sense to do.
Additionally, we must use instance groups because that's the only way to roll out using health checks (so that instance health can be checked before taking down the next one). Once #2465 is closed we should go and update everything to start using them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So everything we have in ### Minimal downtime upgrades doesn't make any sense to do.
If the input vars (token) aren't changed for an instance_template
then terraform won't roll them over, at least based on my testing.
Once #2465 is closed we should go and update everything to start using them.
Does that mean that issue is a blocker for merging this?
This is meant to serve as a basic example for a customer -- I think it's worth having basic examples for users who don't need minimal downtime deploys and would rather have something simple to get up and running with quickly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated this example with a Future improvements
section that includes this and some customer feedback. Also removed the "Minimal downtime upgrades" section since that's not quite where we want to steer customers per your feedback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the input vars (token) aren't changed for an instance_template then terraform won't roll them over, at least based on my testing.
If we release a new version it will roll them over.
Does that mean that issue is a blocker for merging this?
Nope, we still can have zero-downtime deployment using the proper boot timeouts. It's just not as reliable as health checks.
This is meant to serve as a basic example for a customer -- I think it's worth having basic examples for users who don't need minimal downtime deploys and would rather have something simple to get up and running with quickly.
To use a regional instance group we only need to replace instance_from_template
with another kind of resource so complexity-wise is about the same but the example will give a better way to deploy and manage replicated apps. Since it's already merged I can update the example later.
Co-authored-by: Andrew Dryga <andrew@dryga.com> Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Andrew Dryga <andrew@dryga.com> Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Customer verified it to work, merging to receive further input from customer |
Adds a working example of the simplest way to deploy Gateways to GCP that is also mostly cloud platform agnostic.
I avoided using COS and Docker for this because: