-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changing charm base
should be replace?
#635
Comments
Triggering a replacement for a base (or series) change is also problematic as is. With a machine charm the application needs to be redeployed to do this. However it's okay with a Kubernetes charm as an upgrade uses a new OCI Image, which can effectively "upgrade" the base with no problems. We can handle both scenarios with the Even with this change, there are potential problems with a clean run depending on how a plan is written and a bug in the provider. The bug is #521. In that case, run Issues based on how the terraform plan is written:
Maybe others. |
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. We add the model_type computed field on the application schema, and we use it to make a decision in the planmodifier RequiresReplaceIf. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. We add the model_type computed field on the application schema, and we use it to make a decision in the planmodifier RequiresReplaceIf. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. We add the model_type computed field on the application schema, and we use it to make a decision in the planmodifier RequiresReplaceIf. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. We add the model_type computed field on the application schema, and we use it to make a decision in the planmodifier RequiresReplaceIf. re juju#635
…harms This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. We add the model_type computed field on the application schema, and we use it to make a decision in the planmodifier RequiresReplaceIf. re juju#635
#652 ## Description This PR adds support to update the base in application charms by requiring a replace in case of a machine charm, and perform the upgrade in case of a k8s charm. Fixes: re #635 ## Type of change - Add support to update `base` for application charms ## QA Steps ### LXD ```terraform terraform { required_providers { juju = { version = "~> 0.15.0" source = "juju/juju" } } } provider "juju" { controller_addresses = "10.229.36.127:17070" username = "admin" password = <redacted> ca_certificate = file("ca.crt") } resource "juju_model" "this" { name = "test-model" } resource "juju_application" "this" { model = juju_model.this.name name = "test-app" charm { name = "ubuntu" base = "[email protected]" } } ``` `terraform apply` `juju status` and you should see base=22.04 Now update the base ```terraform resource "juju_application" "this" { model = juju_model.this.name name = "test-app" charm { name = "ubuntu" base = "[email protected]" } } ``` `terraform plan` and you should see `~ base = "[email protected]" -> "[email protected]" # forces replacement` `terraform apply` Now we have two scenarios: - happy (maybe just in the tests): the changes go though and you now have your new charm with the updated charm. - sad: terraform tries to recreate the application before it was destroyed and errors out. If you rerun it, you now have your updated charm. `juju status` and you should see base=20.04 ### Microk8s ```terraform terraform { required_providers { juju = { version = "~> 0.15.0" source = "juju/juju" } } } provider "juju" { controller_addresses = "10.152.183.78:17070" username = "admin" password = "<redacted>" ca_certificate = file("ca.crt") } resource "juju_model" "this" { name = "test-model" } resource "juju_application" "this" { model = juju_model.this.name name = "test-app" charm { name = "coredns" base = "[email protected]" channel = "1.25/stable" } } ``` `terraform apply` `juju show-application test-app` -> check base ubuntu 22.04 Update plan ```terraform resource "juju_application" "this" { model = juju_model.this.name name = "test-app" charm { name = "coredns" base = "[email protected]" channel = "1.25/stable" } } ``` `terraform plan` -> check that the plan doesn't require replace. `terraform apply` `juju show-application test-app` -> check base ubuntu 20.04
@hloeung a change by @SimoneDutto has landed - please test it and let us know if it meets your needs. |
It's not released in |
Hello, you can follow this guide. Sections: |
Description
When the charm
base
is changed, it triggers achange
which then applies successfully, but isn't actually changed and causes a loop in our Flux CI/CD system constantly trying to apply this change.Changing a charm's
base
should perhaps trigger a replacement instead?Urgency
Casually reporting
Terraform Juju Provider version
0.15.0
Terraform version
v1.9.8-dev
Juju version
3.5.4
Terraform Configuration(s)
Reproduce / Test
Debug/Panic Output
No response
Notes & References
No response
The text was updated successfully, but these errors were encountered: