sparse-intern-71089
08/12/2019, 1:14 PMbest-xylophone-83824
08/12/2019, 1:16 PMconst vpc = new gcp.compute.Network("main", {
autoCreateSubnetworks: false,
});
// our table of networks to create
const networks : {[name : string]: PartialExcept<gcp.compute.SubnetworkArgs, 'ipCidrRange'>} = {
"gke01-london": {
ipCidrRange: "10.0.1.0/26",
privateIpGoogleAccess: true,
}
};
// default values
const defaultSubnetArgs: PartialExcept<gcp.compute.SubnetworkArgs, 'region'|'network'> = {
region: "eu-west2", // london
network: vpc.selfLink,
privateIpGoogleAccess: false,
};
let results : { [name : string]: gcp.compute.Subnetwork } = {};
for (const name in networks) {
results[name] = new gcp.compute.Subnetwork(name, {...defaultSubnetArgs, ...networks[name]}) // compiler can verify that second argument matches desired interface, even if individual values it was assembled from dont
};