Skip to content

Commit

Permalink
Adds placeholder sites for new production MIGs (#327)
Browse files Browse the repository at this point in the history
I'm trying this as a new strategy for deploying virtual sites. The old way was
to create the resources in GCP using terraform-support, then note the static
IPs created by GCP, then create the siteinfo records. The problem with this is
that once the GCP resources are created, they join the cluster and start
running workloads. Some of these workloads faile (namely uuid-annotator)
because the site doesn't yet exist in siteinfo. This causes production alerts
that cannot be managed with GMX, since GMX will not put anything into
maintenance that doesn't exist in siteinfo.

The idea here is to create the site here in siteinfo, with an RFC1918 IPv4
address and no IPv6 address, and then push this through to production. Once
this is in production, then an operator should place the sites into GMX
maintenance mode, then run the terraform-support deployment to actually create
the resources.

This is still not perfect because deploying siteinfo triggers a build in
prometheus-support, which updates monitoring targets. Monitoring will then
start probing machines that don't exist, with non-public IP addresses. This
may not, but has the potential to cause alerts to fire. Additionally, GMX only
reloads siteinfo data about every 5h, with an actual window of anywhere from 1
to 24h. This means that even though the machines are in siteinfo, GMX may still
refuse to add them to maintenance unless it has already refreshed its copy of
siteinfo. It may be necessary to manually restart GMX in production in these
cases to ensure it has the latest version of siteinfo data so that the new
sites can be put into maintenance.
  • Loading branch information
nkinkade authored Mar 25, 2024
1 parent e4e5389 commit 1fee03d
Show file tree
Hide file tree
Showing 12 changed files with 468 additions and 0 deletions.
39 changes: 39 additions & 0 deletions sites/bom06.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'bom06',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'AS',
country_code: 'IN',
metro: 'bom',
city: 'Mumbai',
state: '',
latitude: 19.0886,
longitude: 72.8681,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/cgk02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'cgk02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS139190',
},
location+: {
continent_code: 'AS',
country_code: 'ID',
metro: 'cgk',
city: 'Jakarta',
state: '',
latitude: -6.1256,
longitude: 106.6558,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/chs02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'chs02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'NA',
country_code: 'US',
metro: 'chs',
city: 'Charleston',
state: 'SC',
latitude: 32.8986,
longitude: -80.0406,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/dfw12.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'dfw12',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'NA',
country_code: 'US',
metro: 'dfw',
city: 'Dallas',
state: 'TX',
latitude: 32.8969,
longitude: -97.0381,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/doh02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'doh02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'AS',
country_code: 'QA',
metro: 'doh',
city: 'Doha',
state: '',
latitude: 25.2731,
longitude: 51.6081,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/gru06.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'gru06',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'SA',
country_code: 'BR',
metro: 'gru',
city: 'Sao Paulo',
state: '',
latitude: -23.4305,
longitude: -46.473,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/hel02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'hel02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'EU',
country_code: 'FI',
metro: 'hel',
city: 'Helsinki',
state: '',
latitude: 60.3172,
longitude: 24.9633,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/icn02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'icn02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'AS',
country_code: 'KR',
metro: 'icn',
city: 'Seoul',
state: '',
latitude: 37.4633,
longitude: 126.44,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/lax10.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'lax10',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'NA',
country_code: 'US',
metro: 'lax',
city: 'Los Angeles',
state: 'CA',
latitude: 33.9425,
longitude: -118.4072,
},
lifecycle+: {
created: '2024-03-25',
},
}

39 changes: 39 additions & 0 deletions sites/waw02.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
local sitesDefault = import 'sites/_default_virtual.jsonnet';

sitesDefault {
name: 'waw02',
annotations+: {
provider: 'gcp',
},
machines+: {
mlab1+: {
network+: {
ipv4+: {
address: '192.168.0.1/32',
},
ipv6+: {
address: nil,
},
},
project: 'mlab-oti',
},
},
transit+: {
provider: 'Google LLC',
uplink: '1g',
asn: 'AS396982',
},
location+: {
continent_code: 'EU',
country_code: 'PL',
metro: 'waw',
city: 'Warsaw',
state: '',
latitude: 52.1658,
longitude: 20.9672,
},
lifecycle+: {
created: '2024-03-25',
},
}

Loading

0 comments on commit 1fee03d

Please sign in to comment.