You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: autogen/main/README.md
+2-28Lines changed: 2 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,20 +12,8 @@ The resources/services/activations/deletions that this module will create/trigge
12
12
Sub modules are provided from creating private clusters, beta private clusters, and beta public clusters as well. Beta sub modules allow for the use of various GKE beta features. See the modules directory for the various sub modules.
13
13
14
14
{% if private_cluster %}
15
-
## Private Cluster Endpoints
16
-
When creating a [private cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters), nodes are provisioned with private IPs.
17
-
The Kubernetes master endpoint is also [locked down](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints), which affects these module features:
18
-
-`configure_ip_masq`
19
-
-`stub_domains`
20
-
21
-
If you are *not* using these features, then the module will function normally for private clusters and no special configuration is needed.
22
-
If you are using these features with a private cluster, you will need to either:
23
-
1. Run Terraform from a VM on the same VPC as your cluster (allowing it to connect to the private endpoint) and set `deploy_using_private_endpoint` to `true`.
24
-
2. Enable (beta) [route export functionality](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#master-on-prem-routing) to connect from an on-premise network over a VPN or Interconnect.
25
-
3. Include the external IP of your Terraform deployer in the `master_authorized_networks` configuration.
26
-
4. Deploy a [bastion host](https://github.com/terraform-google-modules/terraform-google-bastion-host) or [proxy](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies) in the same VPC as your GKE cluster.
27
-
28
-
If you are going to isolate your GKE private clusters from internet access you could check [guide](https://medium.com/google-cloud/completely-private-gke-clusters-with-no-internet-connectivity-945fffae1ccd) and [repo](https://github.com/andreyk-code/no-inet-gke-cluster)
15
+
## Private Cluster Details
16
+
For details on configuring private clusters with this module, check the [troubleshooting guide](../../docs/private_clusters.md).
29
17
30
18
{% endif %}
31
19
{% if update_variant %}
@@ -258,20 +246,6 @@ In order to operate with the Service Account you must activate the following API
258
246
- Compute Engine API - compute.googleapis.com
259
247
- Kubernetes Engine API - container.googleapis.com
260
248
261
-
## File structure
262
-
The project has the following folders and files:
263
-
264
-
- /: root folder
265
-
- /examples: Examples for using this module and sub module.
266
-
- /helpers: Helper scripts.
267
-
- /scripts: Scripts for specific tasks on module (see Infrastructure section on this file).
268
-
- /test: Folders with files for testing the module (see Testing section on this file).
269
-
- /main.tf: `main` file for the public module, contains all the resources to create.
270
-
- /variables.tf: Variables for the public cluster module.
271
-
- /output.tf: The outputs for the public cluster module.
To create a private GKE cluster, you can use one of the [private submodules](../modules).
4
+
5
+
Note that a private cluster is inherently more restricted and greater care must be taken in configuring networking ingress/egress.
6
+
7
+
## Private Cluster Endpoints
8
+
When creating a [private cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters), nodes are provisioned with private IPs.
9
+
The Kubernetes master endpoint is also [locked down](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints), which affects these module features:
10
+
-`configure_ip_masq`
11
+
-`stub_domains`
12
+
13
+
If you are *not* using these features, then the module will function normally for private clusters and no special configuration is needed.
14
+
15
+
If you are using these features with a private cluster, you will need to either:
16
+
1. Run Terraform from a VM on the same VPC as your cluster (allowing it to connect to the private endpoint) and set `deploy_using_private_endpoint` to `true`.
17
+
2. Enable (beta) [route export functionality](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#master-on-prem-routing) to connect from an on-premise network over a VPN or Interconnect.
18
+
3. Include the external IP of your Terraform deployer in the `master_authorized_networks` configuration.
19
+
4. Deploy a [bastion host](https://github.com/terraform-google-modules/terraform-google-bastion-host) or [proxy](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies) in the same VPC as your GKE cluster.
20
+
21
+
If you are going to isolate your GKE private clusters from internet access you could check [this guide](https://medium.com/google-cloud/completely-private-gke-clusters-with-no-internet-connectivity-945fffae1ccd) and the associated [repo](https://github.com/andreyk-code/no-inet-gke-cluster).
22
+
23
+
## Troubleshooting
24
+
25
+
### Master Authorized Network
26
+
When creating a private cluster with a [private endpoint](https://cloud.google.com/kubernetes-engine/docs/how-to/authorized-networks#benefits_with_private_clusters) (`enable_private_endpoint = true`),
27
+
your cluster will **not** have a publicly addressable endpoint.
28
+
29
+
When using this setting, any CIDR ranges listed in the `master_authorized_networks` configuration *must* come from your private IP space.
30
+
If you include a CIDR block outside your private space, you might see this error:
31
+
32
+
```
33
+
Error: Error waiting for creating GKE cluster: Invalid master authorized networks: network "73.89.231.174/32" is not a reserved network, which is required for private endpoints.
34
+
35
+
on .terraform/modules/gke-cluster-dev.gke/terraform-google-kubernetes-engine-9.2.0/modules/beta-private-cluster/cluster.tf line 22, in resource "google_container_cluster" "primary":
Copy file name to clipboardExpand all lines: modules/beta-private-cluster-update-variant/README.md
+2-28Lines changed: 2 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,20 +10,8 @@ The resources/services/activations/deletions that this module will create/trigge
10
10
11
11
Sub modules are provided from creating private clusters, beta private clusters, and beta public clusters as well. Beta sub modules allow for the use of various GKE beta features. See the modules directory for the various sub modules.
12
12
13
-
## Private Cluster Endpoints
14
-
When creating a [private cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters), nodes are provisioned with private IPs.
15
-
The Kubernetes master endpoint is also [locked down](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints), which affects these module features:
16
-
-`configure_ip_masq`
17
-
-`stub_domains`
18
-
19
-
If you are *not* using these features, then the module will function normally for private clusters and no special configuration is needed.
20
-
If you are using these features with a private cluster, you will need to either:
21
-
1. Run Terraform from a VM on the same VPC as your cluster (allowing it to connect to the private endpoint) and set `deploy_using_private_endpoint` to `true`.
22
-
2. Enable (beta) [route export functionality](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#master-on-prem-routing) to connect from an on-premise network over a VPN or Interconnect.
23
-
3. Include the external IP of your Terraform deployer in the `master_authorized_networks` configuration.
24
-
4. Deploy a [bastion host](https://github.com/terraform-google-modules/terraform-google-bastion-host) or [proxy](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies) in the same VPC as your GKE cluster.
25
-
26
-
If you are going to isolate your GKE private clusters from internet access you could check [guide](https://medium.com/google-cloud/completely-private-gke-clusters-with-no-internet-connectivity-945fffae1ccd) and [repo](https://github.com/andreyk-code/no-inet-gke-cluster)
13
+
## Private Cluster Details
14
+
For details on configuring private clusters with this module, check the [troubleshooting guide](../../docs/private_clusters.md).
27
15
28
16
## Node Pool Update Variant
29
17
@@ -345,20 +333,6 @@ In order to operate with the Service Account you must activate the following API
345
333
- Compute Engine API - compute.googleapis.com
346
334
- Kubernetes Engine API - container.googleapis.com
347
335
348
-
## File structure
349
-
The project has the following folders and files:
350
-
351
-
- /: root folder
352
-
- /examples: Examples for using this module and sub module.
353
-
- /helpers: Helper scripts.
354
-
- /scripts: Scripts for specific tasks on module (see Infrastructure section on this file).
355
-
- /test: Folders with files for testing the module (see Testing section on this file).
356
-
- /main.tf: `main` file for the public module, contains all the resources to create.
357
-
- /variables.tf: Variables for the public cluster module.
358
-
- /output.tf: The outputs for the public cluster module.
Copy file name to clipboardExpand all lines: modules/beta-private-cluster/README.md
+2-28Lines changed: 2 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,20 +10,8 @@ The resources/services/activations/deletions that this module will create/trigge
10
10
11
11
Sub modules are provided from creating private clusters, beta private clusters, and beta public clusters as well. Beta sub modules allow for the use of various GKE beta features. See the modules directory for the various sub modules.
12
12
13
-
## Private Cluster Endpoints
14
-
When creating a [private cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters), nodes are provisioned with private IPs.
15
-
The Kubernetes master endpoint is also [locked down](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints), which affects these module features:
16
-
-`configure_ip_masq`
17
-
-`stub_domains`
18
-
19
-
If you are *not* using these features, then the module will function normally for private clusters and no special configuration is needed.
20
-
If you are using these features with a private cluster, you will need to either:
21
-
1. Run Terraform from a VM on the same VPC as your cluster (allowing it to connect to the private endpoint) and set `deploy_using_private_endpoint` to `true`.
22
-
2. Enable (beta) [route export functionality](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#master-on-prem-routing) to connect from an on-premise network over a VPN or Interconnect.
23
-
3. Include the external IP of your Terraform deployer in the `master_authorized_networks` configuration.
24
-
4. Deploy a [bastion host](https://github.com/terraform-google-modules/terraform-google-bastion-host) or [proxy](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies) in the same VPC as your GKE cluster.
25
-
26
-
If you are going to isolate your GKE private clusters from internet access you could check [guide](https://medium.com/google-cloud/completely-private-gke-clusters-with-no-internet-connectivity-945fffae1ccd) and [repo](https://github.com/andreyk-code/no-inet-gke-cluster)
13
+
## Private Cluster Details
14
+
For details on configuring private clusters with this module, check the [troubleshooting guide](../../docs/private_clusters.md).
27
15
28
16
## Compatibility
29
17
@@ -323,20 +311,6 @@ In order to operate with the Service Account you must activate the following API
323
311
- Compute Engine API - compute.googleapis.com
324
312
- Kubernetes Engine API - container.googleapis.com
325
313
326
-
## File structure
327
-
The project has the following folders and files:
328
-
329
-
- /: root folder
330
-
- /examples: Examples for using this module and sub module.
331
-
- /helpers: Helper scripts.
332
-
- /scripts: Scripts for specific tasks on module (see Infrastructure section on this file).
333
-
- /test: Folders with files for testing the module (see Testing section on this file).
334
-
- /main.tf: `main` file for the public module, contains all the resources to create.
335
-
- /variables.tf: Variables for the public cluster module.
336
-
- /output.tf: The outputs for the public cluster module.
Copy file name to clipboardExpand all lines: modules/beta-public-cluster-update-variant/README.md
+1-14Lines changed: 1 addition & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -146,6 +146,7 @@ Then perform the following commands on the root folder:
146
146
| cluster\_autoscaling | Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)| object |`<map>`| no |
147
147
| cluster\_ipv4\_cidr | The IP address range of the kubernetes pods in this cluster. Default is an automatically assigned CIDR. | string |`"null"`| no |
148
148
| cluster\_resource\_labels | The GCE resource labels (a map of key/value pairs) to be applied to the cluster | map(string) |`<map>`| no |
149
+
| config\_connector | (Beta) Whether ConfigConnector is enabled for this cluster. | bool |`"false"`| no |
149
150
| configure\_ip\_masq | Enables the installation of ip masquerading, which is usually no longer required when using aliasied IP addresses. IP masquerading uses a kubectl call, so when you have a private cluster, you will need access to the API server. | string |`"false"`| no |
150
151
| create\_service\_account | Defines if service account specified to run nodes should be created. | bool |`"true"`| no |
151
152
| database\_encryption | Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: "ENCRYPTED"; "DECRYPTED". key_name is the name of a CloudKMS key. | object |`<list>`| no |
@@ -320,20 +321,6 @@ In order to operate with the Service Account you must activate the following API
320
321
- Compute Engine API - compute.googleapis.com
321
322
- Kubernetes Engine API - container.googleapis.com
322
323
323
-
## File structure
324
-
The project has the following folders and files:
325
-
326
-
- /: root folder
327
-
- /examples: Examples for using this module and sub module.
328
-
- /helpers: Helper scripts.
329
-
- /scripts: Scripts for specific tasks on module (see Infrastructure section on this file).
330
-
- /test: Folders with files for testing the module (see Testing section on this file).
331
-
- /main.tf: `main` file for the public module, contains all the resources to create.
332
-
- /variables.tf: Variables for the public cluster module.
333
-
- /output.tf: The outputs for the public cluster module.
Copy file name to clipboardExpand all lines: modules/beta-public-cluster-update-variant/variables.tf
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -398,6 +398,12 @@ variable "kalm_config" {
398
398
default=false
399
399
}
400
400
401
+
variable"config_connector" {
402
+
type=bool
403
+
description="(Beta) Whether ConfigConnector is enabled for this cluster."
404
+
default=false
405
+
}
406
+
401
407
variable"database_encryption" {
402
408
description="Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \"ENCRYPTED\"; \"DECRYPTED\". key_name is the name of a CloudKMS key."
403
409
type=list(object({ state =string, key_name =string }))
0 commit comments