Skip to content

Commit 7cc2792

Browse files
kopachevskymorgante
authored andcommitted
chore: document update variants (#386)
* Fix #317
1 parent 5188b84 commit 7cc2792

File tree

7 files changed

+65
-4
lines changed

7 files changed

+65
-4
lines changed

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ The resources/services/activations/deletions that this module will create/trigge
1010

1111
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.
1212

13-
1413
## Compatibility
1514

1615
This module is meant for use with Terraform 0.12. If you haven't

autogen/main/README.md

+23
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,30 @@ If you are using these features with a private cluster, you will need to either:
2828
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)
2929

3030
{% endif %}
31+
{% if update_variant %}
32+
## Node Pool Update Variant
3133

34+
In [#256] update variants added support for node pools to be created before being destroyed.
35+
36+
Before, if a node pool has to be recreated for any number of reasons,
37+
the node pool is deleted then, created. This can be a problem if it is the only node pool in the GKE
38+
cluster and the new node pool cannot be provisioned. In this scenario, pods could not be scheduled.
39+
[#256] allows a node pool to be created before it is deleted so that any issues with node pool creation
40+
and/or provisioning are discovered before the node pool is removed. This feature is controlled by the
41+
variable `node_pools_create_before_destroy`. In order to avoid node pool name collisions,
42+
a 4 character alphanumeric is added as a suffix to the name.
43+
44+
The benefit is that you always have some node pools active.
45+
We don't actually cordon/drain the traffic beyond what the GKE API itself will do,
46+
but we do make sure the new node pool is created before the old one is destroyed.
47+
48+
The implications of this are that:
49+
50+
- We append a random ID on the node pool names (since you can't have two simultaneously active node pools)
51+
- For a brief period, you'll have 2x as many resources/node pools
52+
- You will indeed need sufficient IP space (and compute capacity) to create both node pools
53+
54+
{% endif %}
3255
## Compatibility
3356

3457
This module is meant for use with Terraform 0.12. If you haven't

modules/beta-private-cluster-update-variant/README.md

+21
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,27 @@ If you are using these features with a private cluster, you will need to either:
2525

2626
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)
2727

28+
## Node Pool Update Variant
29+
30+
In [#256] update variants added support for node pools to be created before being destroyed.
31+
32+
Before, if a node pool has to be recreated for any number of reasons,
33+
the node pool is deleted then, created. This can be a problem if it is the only node pool in the GKE
34+
cluster and the new node pool cannot be provisioned. In this scenario, pods could not be scheduled.
35+
[#256] allows a node pool to be created before it is deleted so that any issues with node pool creation
36+
and/or provisioning are discovered before the node pool is removed. This feature is controlled by the
37+
variable `node_pools_create_before_destroy`. In order to avoid node pool name collisions,
38+
a 4 character alphanumeric is added as a suffix to the name.
39+
40+
The benefit is that you always have some node pools active.
41+
We don't actually cordon/drain the traffic beyond what the GKE API itself will do,
42+
but we do make sure the new node pool is created before the old one is destroyed.
43+
44+
The implications of this are that:
45+
46+
- We append a random ID on the node pool names (since you can't have two simultaneously active node pools)
47+
- For a brief period, you'll have 2x as many resources/node pools
48+
- You will indeed need sufficient IP space (and compute capacity) to create both node pools
2849

2950
## Compatibility
3051

modules/beta-private-cluster/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ If you are using these features with a private cluster, you will need to either:
2525

2626
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)
2727

28-
2928
## Compatibility
3029

3130
This module is meant for use with Terraform 0.12. If you haven't

modules/beta-public-cluster/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ The resources/services/activations/deletions that this module will create/trigge
1010

1111
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.
1212

13-
1413
## Compatibility
1514

1615
This module is meant for use with Terraform 0.12. If you haven't

modules/private-cluster-update-variant/README.md

+21
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,27 @@ If you are using these features with a private cluster, you will need to either:
2525

2626
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)
2727

28+
## Node Pool Update Variant
29+
30+
In [#256] update variants added support for node pools to be created before being destroyed.
31+
32+
Before, if a node pool has to be recreated for any number of reasons,
33+
the node pool is deleted then, created. This can be a problem if it is the only node pool in the GKE
34+
cluster and the new node pool cannot be provisioned. In this scenario, pods could not be scheduled.
35+
[#256] allows a node pool to be created before it is deleted so that any issues with node pool creation
36+
and/or provisioning are discovered before the node pool is removed. This feature is controlled by the
37+
variable `node_pools_create_before_destroy`. In order to avoid node pool name collisions,
38+
a 4 character alphanumeric is added as a suffix to the name.
39+
40+
The benefit is that you always have some node pools active.
41+
We don't actually cordon/drain the traffic beyond what the GKE API itself will do,
42+
but we do make sure the new node pool is created before the old one is destroyed.
43+
44+
The implications of this are that:
45+
46+
- We append a random ID on the node pool names (since you can't have two simultaneously active node pools)
47+
- For a brief period, you'll have 2x as many resources/node pools
48+
- You will indeed need sufficient IP space (and compute capacity) to create both node pools
2849

2950
## Compatibility
3051

modules/private-cluster/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ If you are using these features with a private cluster, you will need to either:
2525

2626
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)
2727

28-
2928
## Compatibility
3029

3130
This module is meant for use with Terraform 0.12. If you haven't

0 commit comments

Comments
 (0)