Ignore controller user_data changes to allow plugin updates
* Updating the `terraform-provider-ct` plugin is known to produce a `user_data` diff in all pre-existing clusters. Applying the diff to pre-existing cluster destroys controller nodes * Ignore changes to controller `user_data`. Once all managed clusters use a release containing this change, it is possible to update the `terraform-provider-ct` plugin (worker `user_data` will still be modified) * Changing the module `ref` for an existing cluster and re-applying is still NOT supported (although this PR would protect controllers from being destroyed)
This commit is contained in:
parent
8c4200d425
commit
0e71f7e565
|
@ -11,6 +11,8 @@ Notable changes between versions.
|
||||||
* Update Calico from v3.2.3 to [v3.3.0](https://docs.projectcalico.org/v3.3/releases/)
|
* Update Calico from v3.2.3 to [v3.3.0](https://docs.projectcalico.org/v3.3/releases/)
|
||||||
* Disable Kubelet read-only port ([#324](https://github.com/poseidon/typhoon/pull/324))
|
* Disable Kubelet read-only port ([#324](https://github.com/poseidon/typhoon/pull/324))
|
||||||
* Fix CoreDNS AntiAffinity spec to prefer spreading replicas
|
* Fix CoreDNS AntiAffinity spec to prefer spreading replicas
|
||||||
|
* Ignore controller node user-data changes ([#335](https://github.com/poseidon/typhoon/pull/335))
|
||||||
|
* Once all managed clusters use v1.12.2, it is possible to update `terraform-provider-ct`
|
||||||
|
|
||||||
#### AWS
|
#### AWS
|
||||||
|
|
||||||
|
@ -29,7 +31,7 @@ Notable changes between versions.
|
||||||
|
|
||||||
#### Google Cloud
|
#### Google Cloud
|
||||||
|
|
||||||
* Add an IPv6 address and IPv6 forwarding rules for load balancing IPv6 Ingress
|
* Add an IPv6 address and IPv6 forwarding rules for load balancing IPv6 Ingress ([#334](https://github.com/poseidon/typhoon/pull/334))
|
||||||
* Add `ingress_static_ipv6` output variable for use in AAAA DNS records
|
* Add `ingress_static_ipv6` output variable for use in AAAA DNS records
|
||||||
* Allow serving IPv6 applications via Kubernetes Ingress
|
* Allow serving IPv6 applications via Kubernetes Ingress
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,10 @@ resource "aws_instance" "controllers" {
|
||||||
vpc_security_group_ids = ["${aws_security_group.controller.id}"]
|
vpc_security_group_ids = ["${aws_security_group.controller.id}"]
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
ignore_changes = ["ami"]
|
ignore_changes = [
|
||||||
|
"ami",
|
||||||
|
"user_data",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,10 @@ resource "aws_instance" "controllers" {
|
||||||
vpc_security_group_ids = ["${aws_security_group.controller.id}"]
|
vpc_security_group_ids = ["${aws_security_group.controller.id}"]
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
ignore_changes = ["ami"]
|
ignore_changes = [
|
||||||
|
"ami",
|
||||||
|
"user_data",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,7 @@ resource "azurerm_virtual_machine" "controllers" {
|
||||||
lifecycle {
|
lifecycle {
|
||||||
ignore_changes = [
|
ignore_changes = [
|
||||||
"storage_os_disk",
|
"storage_os_disk",
|
||||||
|
"os_profile",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,12 @@ resource "digitalocean_droplet" "controllers" {
|
||||||
tags = [
|
tags = [
|
||||||
"${digitalocean_tag.controllers.id}",
|
"${digitalocean_tag.controllers.id}",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
"user_data",
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Tag to label controllers
|
# Tag to label controllers
|
||||||
|
|
|
@ -43,6 +43,10 @@ resource "digitalocean_droplet" "workers" {
|
||||||
tags = [
|
tags = [
|
||||||
"${digitalocean_tag.workers.id}",
|
"${digitalocean_tag.workers.id}",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
create_before_destroy = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Tag to label workers
|
# Tag to label workers
|
||||||
|
|
|
@ -50,6 +50,12 @@ resource "digitalocean_droplet" "controllers" {
|
||||||
tags = [
|
tags = [
|
||||||
"${digitalocean_tag.controllers.id}",
|
"${digitalocean_tag.controllers.id}",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
"user_data",
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Tag to label controllers
|
# Tag to label controllers
|
||||||
|
|
|
@ -43,6 +43,10 @@ resource "digitalocean_droplet" "workers" {
|
||||||
tags = [
|
tags = [
|
||||||
"${digitalocean_tag.workers.id}",
|
"${digitalocean_tag.workers.id}",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
create_before_destroy = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Tag to label workers
|
# Tag to label workers
|
||||||
|
|
|
@ -57,6 +57,12 @@ resource "google_compute_instance" "controllers" {
|
||||||
|
|
||||||
can_ip_forward = true
|
can_ip_forward = true
|
||||||
tags = ["${var.cluster_name}-controller"]
|
tags = ["${var.cluster_name}-controller"]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
"metadata",
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Controller Ignition configs
|
# Controller Ignition configs
|
||||||
|
|
|
@ -57,6 +57,12 @@ resource "google_compute_instance" "controllers" {
|
||||||
|
|
||||||
can_ip_forward = true
|
can_ip_forward = true
|
||||||
tags = ["${var.cluster_name}-controller"]
|
tags = ["${var.cluster_name}-controller"]
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
"metadata",
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Controller Cloud-Init
|
# Controller Cloud-Init
|
||||||
|
|
Loading…
Reference in New Issue