Skip to content

Commit 1c5f826

Browse files
author
Aaron Lane
authored
Merge branch 'master' into issues/93/cluster_autoscaling
2 parents 04fcb50 + 7def757 commit 1c5f826

File tree

113 files changed

+2728
-416
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+2728
-416
lines changed

.kitchen.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ suites:
4545
systems:
4646
- name: shared_vpc
4747
backend: local
48+
- name: "safer_cluster"
49+
driver:
50+
root_module_directory: test/fixtures/safer_cluster
51+
verifier:
52+
systems:
53+
- name: safer_cluster
54+
backend: local
4855
- name: "simple_regional"
4956
driver:
5057
root_module_directory: test/fixtures/simple_regional

CHANGELOG.md

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,30 @@ Extending the adopted spec, each change should have a link to its corresponding
1414
* Support for setting node_locations on node pools. [#303]
1515
* Fix for specifying `node_count` on node pools when autoscaling is disabled. [#311]
1616
* Added submodule for installing Anthos Config Management. [#268]
17-
* Support for `local_ssd_count` in node pool configuration. [#244]
17+
* Support for `local_ssd_count` in node pool configuration. [#339]
1818
* Wait for cluster to be ready before returning endpoint. [#340]
19+
* `safer-cluster` submodule. [#315]
20+
* `simple_regional_with_networking` example. [#195]
21+
* `release_channel` variable for beta submodules. [#271]
22+
* The `node_locations` attribute to the `node_pools` object for beta submodules. [#290]
23+
* `private_zonal_with_nteworking` example. [#308]
24+
* `regional_private_node_pool_oauth_scopes` example. [#321]
25+
26+
### Changed
27+
28+
* The `node_pool_labels`, `node_pool_tags`, and `node_pool_taints` variables have defaults and can be overridden within the
29+
`node_pools` object. [#3]
30+
* `upstream_nameservers` variable is typed as a list of strings. [#350]
31+
32+
### Removed
33+
34+
* **Breaking**: Removed support for enabling the Kubernetes dashboard, as this is deprecated on GKE. [#337]
35+
* **Beaking**: Removed support for versions of the Google provider and the Google Beta provider older than 2.18. [#261]
36+
37+
### Fixed
38+
39+
* `identity_namespace` output depends on the `google_container_cluster.primary` resource. [#301]
40+
* Idempotency of the beta submodules. [#326]
1941

2042
## [v5.1.1] - 2019-10-25
2143

@@ -213,7 +235,8 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
213235

214236
* Initial release of module.
215237

216-
[Unreleased]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v5.1.1...HEAD
238+
[Unreleased]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v5.2.0...HEAD
239+
[v5.2.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v5.1.1...v5.2.0
217240
[v5.1.1]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v5.1.0...v5.1.1
218241
[v5.1.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v5.0.0...v5.1.0
219242
[v5.0.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v4.1.0...v5.0.0
@@ -230,16 +253,27 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
230253
[v0.3.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v0.2.0...v0.3.0
231254
[v0.2.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v0.1.0...v0.2.0
232255

256+
[#350]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/350
233257
[#340]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/340
234-
[#268]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/268
258+
[#339]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/339
259+
[#337]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/337
260+
[#326]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/326
261+
[#321]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/321
262+
[#315]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/315
235263
[#311]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/311
264+
[#308]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/308
236265
[#303]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/303
266+
[#301]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/301
237267
[#300]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/300
268+
[#290]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/290
238269
[#286]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/286
239270
[#285]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/285
240271
[#284]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/284
241272
[#282]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/282
242273
[#273]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/273
274+
[#271]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/271
275+
[#268]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/268
276+
[#261]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/261
243277
[#258]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/258
244278
[#256]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/256
245279
[#248]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/248
@@ -248,7 +282,6 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
248282
[#238]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/238
249283
[#241]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/241
250284
[#250]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/250
251-
[#244]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/244
252285
[#236]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/236
253286
[#217]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/217
254287
[#234]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/234
@@ -260,6 +293,7 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
260293
[#203]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/203
261294
[#198]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/198
262295
[#197]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/197
296+
[#195]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/195
263297
[#193]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/193
264298
[#188]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/188
265299
[#187]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/187
@@ -307,6 +341,7 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
307341
[#15]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/15
308342
[#10]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/10
309343
[#9]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/9
344+
[#3]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/issues/3
310345

311346
[upgrading-to-v2.0]: docs/upgrading_to_v2.0.md
312347
[upgrading-to-v3.0]: docs/upgrading_to_v3.0.md

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Make will use bash instead of sh
1919
SHELL := /usr/bin/env bash
2020

21-
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 0.4.6
21+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 0
2222
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2323
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2424

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ module "gke" {
3434
ip_range_services = "us-central1-01-gke-01-services"
3535
http_load_balancing = false
3636
horizontal_pod_autoscaling = true
37-
kubernetes_dashboard = true
3837
network_policy = true
3938
4039
node_pools = [
@@ -147,7 +146,6 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
147146
| ip\_range\_pods | The _name_ of the secondary subnet ip range to use for pods | string | n/a | yes |
148147
| ip\_range\_services | The _name_ of the secondary subnet range to use for services | string | n/a | yes |
149148
| issue\_client\_certificate | Issues a client certificate to authenticate to the cluster endpoint. To maximize the security of your cluster, leave this option disabled. Client certificates don't automatically rotate and aren't easily revocable. WARNING: changing this after cluster creation is destructive! | bool | `"false"` | no |
150-
| kubernetes\_dashboard | Enable kubernetes dashboard addon | bool | `"false"` | no |
151149
| kubernetes\_version | The Kubernetes version of the masters. If set to 'latest' it will pull latest available version in the selected region. | string | `"latest"` | no |
152150
| logging\_service | The logging service that the cluster should write logs to. Available options include logging.googleapis.com, logging.googleapis.com/kubernetes (beta), and none | string | `"logging.googleapis.com"` | no |
153151
| maintenance\_start\_time | Time window specified for daily maintenance operations in RFC3339 format | string | `"05:00"` | no |
@@ -174,7 +172,7 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
174172
| skip\_provisioners | Flag to skip all local-exec provisioners. It breaks `stub_domains` and `upstream_nameservers` variables functionality. | bool | `"false"` | no |
175173
| stub\_domains | Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server | map(list(string)) | `<map>` | no |
176174
| subnetwork | The subnetwork to host the cluster in (required) | string | n/a | yes |
177-
| upstream\_nameservers | If specified, the values replace the nameservers taken by default from the node’s /etc/resolv.conf | list | `<list>` | no |
175+
| upstream\_nameservers | If specified, the values replace the nameservers taken by default from the node’s /etc/resolv.conf | list(string) | `<list>` | no |
178176
| zones | The zones to host the cluster in (optional if regional cluster / required if zonal) | list(string) | `<list>` | no |
179177

180178
## Outputs
@@ -185,7 +183,6 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o
185183
| endpoint | Cluster endpoint |
186184
| horizontal\_pod\_autoscaling\_enabled | Whether horizontal pod autoscaling enabled |
187185
| http\_load\_balancing\_enabled | Whether http load balancing enabled |
188-
| kubernetes\_dashboard\_enabled | Whether kubernetes dashboard enabled |
189186
| location | Cluster location (region if regional cluster, zone if zonal cluster) |
190187
| logging\_service | Logging service used |
191188
| master\_authorized\_networks\_config | Networks from which access to master is permitted |

autogen/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ module "gke" {
3939
ip_range_services = "us-central1-01-gke-01-services"
4040
http_load_balancing = false
4141
horizontal_pod_autoscaling = true
42-
kubernetes_dashboard = true
4342
network_policy = true
4443
{% if private_cluster %}
4544
enable_private_endpoint = true

autogen/cluster.tf.tmpl

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,6 @@ resource "google_container_cluster" "primary" {
131131
disabled = ! var.horizontal_pod_autoscaling
132132
}
133133

134-
kubernetes_dashboard {
135-
disabled = ! var.kubernetes_dashboard
136-
}
137-
138134
network_policy_config {
139135
disabled = ! var.network_policy
140136
}
@@ -264,10 +260,10 @@ resource "random_id" "name" {
264260
labels = join(",",
265261
sort(
266262
concat(
267-
keys(var.node_pools_labels["all"]),
268-
values(var.node_pools_labels["all"]),
269-
keys(var.node_pools_labels[var.node_pools[count.index]["name"]]),
270-
values(var.node_pools_labels[var.node_pools[count.index]["name"]])
263+
keys(local.node_pools_labels["all"]),
264+
values(local.node_pools_labels["all"]),
265+
keys(local.node_pools_labels[var.node_pools[count.index]["name"]]),
266+
values(local.node_pools_labels[var.node_pools[count.index]["name"]])
271267
)
272268
)
273269
)
@@ -276,10 +272,10 @@ resource "random_id" "name" {
276272
metadata = join(",",
277273
sort(
278274
concat(
279-
keys(var.node_pools_metadata["all"]),
280-
values(var.node_pools_metadata["all"]),
281-
keys(var.node_pools_metadata[var.node_pools[count.index]["name"]]),
282-
values(var.node_pools_metadata[var.node_pools[count.index]["name"]])
275+
keys(local.node_pools_metadata["all"]),
276+
values(local.node_pools_metadata["all"]),
277+
keys(local.node_pools_metadata[var.node_pools[count.index]["name"]]),
278+
values(local.node_pools_metadata[var.node_pools[count.index]["name"]])
283279
)
284280
)
285281
)
@@ -288,8 +284,8 @@ resource "random_id" "name" {
288284
oauth_scopes = join(",",
289285
sort(
290286
concat(
291-
var.node_pools_oauth_scopes["all"],
292-
var.node_pools_oauth_scopes[var.node_pools[count.index]["name"]]
287+
local.node_pools_oauth_scopes["all"],
288+
local.node_pools_oauth_scopes[var.node_pools[count.index]["name"]]
293289
)
294290
)
295291
)
@@ -298,8 +294,8 @@ resource "random_id" "name" {
298294
tags = join(",",
299295
sort(
300296
concat(
301-
var.node_pools_tags["all"],
302-
var.node_pools_tags[var.node_pools[count.index]["name"]]
297+
local.node_pools_tags["all"],
298+
local.node_pools_tags[var.node_pools[count.index]["name"]]
303299
)
304300
)
305301
)
@@ -326,7 +322,9 @@ resource "google_container_node_pool" "pools" {
326322
// use node_locations if provided, defaults to cluster level node_locations if not specified
327323
node_locations = lookup(var.node_pools[count.index], "node_locations", "") != "" ? split(",", var.node_pools[count.index]["node_locations"]) : null
328324
{% endif %}
329-
cluster = google_container_cluster.primary.name
325+
326+
cluster = google_container_cluster.primary.name
327+
330328
version = lookup(var.node_pools[count.index], "auto_upgrade", false) ? "" : lookup(
331329
var.node_pools[count.index],
332330
"version",
@@ -362,25 +360,25 @@ resource "google_container_node_pool" "pools" {
362360
image_type = lookup(var.node_pools[count.index], "image_type", "COS")
363361
machine_type = lookup(var.node_pools[count.index], "machine_type", "n1-standard-2")
364362
labels = merge(
365-
lookup(lookup(var.node_pools_labels, "default_values", {}), "cluster_name", true) ? { "cluster_name" = var.name } : {},
366-
lookup(lookup(var.node_pools_labels, "default_values", {}), "node_pool", true) ? { "node_pool" = var.node_pools[count.index]["name"] } : {},
367-
var.node_pools_labels["all"],
368-
var.node_pools_labels[var.node_pools[count.index]["name"]],
363+
lookup(lookup(local.node_pools_labels, "default_values", {}), "cluster_name", true) ? { "cluster_name" = var.name } : {},
364+
lookup(lookup(local.node_pools_labels, "default_values", {}), "node_pool", true) ? { "node_pool" = var.node_pools[count.index]["name"] } : {},
365+
local.node_pools_labels["all"],
366+
local.node_pools_labels[var.node_pools[count.index]["name"]],
369367
)
370368
metadata = merge(
371-
lookup(lookup(var.node_pools_metadata, "default_values", {}), "cluster_name", true) ? { "cluster_name" = var.name } : {},
372-
lookup(lookup(var.node_pools_metadata, "default_values", {}), "node_pool", true) ? { "node_pool" = var.node_pools[count.index]["name"] } : {},
373-
var.node_pools_metadata["all"],
374-
var.node_pools_metadata[var.node_pools[count.index]["name"]],
369+
lookup(lookup(local.node_pools_metadata, "default_values", {}), "cluster_name", true) ? { "cluster_name" = var.name } : {},
370+
lookup(lookup(local.node_pools_metadata, "default_values", {}), "node_pool", true) ? { "node_pool" = var.node_pools[count.index]["name"] } : {},
371+
local.node_pools_metadata["all"],
372+
local.node_pools_metadata[var.node_pools[count.index]["name"]],
375373
{
376374
"disable-legacy-endpoints" = var.disable_legacy_metadata_endpoints
377375
},
378376
)
379377
{% if beta_cluster %}
380378
dynamic "taint" {
381379
for_each = concat(
382-
var.node_pools_taints["all"],
383-
var.node_pools_taints[var.node_pools[count.index]["name"]],
380+
local.node_pools_taints["all"],
381+
local.node_pools_taints[var.node_pools[count.index]["name"]],
384382
)
385383
content {
386384
effect = taint.value.effect
@@ -390,10 +388,10 @@ resource "google_container_node_pool" "pools" {
390388
}
391389
{% endif %}
392390
tags = concat(
393-
lookup(var.node_pools_tags, "default_values", [true, true])[0] ? ["gke-${var.name}"] : [],
394-
lookup(var.node_pools_tags, "default_values", [true, true])[1] ? ["gke-${var.name}-${var.node_pools[count.index]["name"]}"] : [],
395-
var.node_pools_tags["all"],
396-
var.node_pools_tags[var.node_pools[count.index]["name"]],
391+
lookup(local.node_pools_tags, "default_values", [true, true])[0] ? ["gke-${var.name}"] : [],
392+
lookup(local.node_pools_tags, "default_values", [true, true])[1] ? ["gke-${var.name}-${var.node_pools[count.index]["name"]}"] : [],
393+
local.node_pools_tags["all"],
394+
local.node_pools_tags[var.node_pools[count.index]["name"]],
397395
)
398396

399397
local_ssd_count = lookup(var.node_pools[count.index], "local_ssd_count", 0)
@@ -408,8 +406,8 @@ resource "google_container_node_pool" "pools" {
408406
preemptible = lookup(var.node_pools[count.index], "preemptible", false)
409407

410408
oauth_scopes = concat(
411-
var.node_pools_oauth_scopes["all"],
412-
var.node_pools_oauth_scopes[var.node_pools[count.index]["name"]],
409+
local.node_pools_oauth_scopes["all"],
410+
local.node_pools_oauth_scopes[var.node_pools[count.index]["name"]],
413411
)
414412

415413
guest_accelerator = [
@@ -443,6 +441,7 @@ resource "google_container_node_pool" "pools" {
443441

444442
lifecycle {
445443
ignore_changes = [initial_node_count]
444+
446445
{% if update_variant %}
447446
create_before_destroy = true
448447
{% endif %}

autogen/main.tf.tmpl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ locals {
116116
cluster_output_network_policy_enabled = google_container_cluster.primary.addons_config.0.network_policy_config.0.disabled
117117
cluster_output_http_load_balancing_enabled = google_container_cluster.primary.addons_config.0.http_load_balancing.0.disabled
118118
cluster_output_horizontal_pod_autoscaling_enabled = google_container_cluster.primary.addons_config.0.horizontal_pod_autoscaling.0.disabled
119-
cluster_output_kubernetes_dashboard_enabled = google_container_cluster.primary.addons_config.0.kubernetes_dashboard.0.disabled
120119

121120
{% if beta_cluster %}
122121
# BETA features
@@ -150,15 +149,15 @@ locals {
150149
cluster_network_policy_enabled = ! local.cluster_output_network_policy_enabled
151150
cluster_http_load_balancing_enabled = ! local.cluster_output_http_load_balancing_enabled
152151
cluster_horizontal_pod_autoscaling_enabled = ! local.cluster_output_horizontal_pod_autoscaling_enabled
153-
cluster_kubernetes_dashboard_enabled = ! local.cluster_output_kubernetes_dashboard_enabled
154152
{% if beta_cluster %}
155153
# BETA features
156154
cluster_istio_enabled = ! local.cluster_output_istio_disabled
157155
cluster_cloudrun_enabled = var.cloudrun
158156
cluster_pod_security_policy_enabled = local.cluster_output_pod_security_policy_enabled
159157
cluster_intranode_visibility_enabled = local.cluster_output_intranode_visbility_enabled
160158
cluster_vertical_pod_autoscaling_enabled = local.cluster_output_vertical_pod_autoscaling_enabled
161-
cluster_workload_identity_config = var.identity_namespace == "" ? [] : [{
159+
160+
cluster_workload_identity_config = var.identity_namespace == "" ? [] : [{
162161
identity_namespace = var.identity_namespace
163162
}]
164163
# /BETA features

autogen/outputs.tf.tmpl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,6 @@ output "horizontal_pod_autoscaling_enabled" {
104104
value = local.cluster_horizontal_pod_autoscaling_enabled
105105
}
106106

107-
output "kubernetes_dashboard_enabled" {
108-
description = "Whether kubernetes dashboard enabled"
109-
value = local.cluster_kubernetes_dashboard_enabled
110-
}
111-
112107
output "node_pools_names" {
113108
description = "List of node pools names"
114109
value = local.cluster_node_pools_names

0 commit comments

Comments
 (0)