-
Notifications
You must be signed in to change notification settings - Fork 61
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
Incompatible schemas, and Client.Timeout while contacting schema registry corrupt tfstate file during apply #337
Comments
@andwarnbros thanks for reporting the issue! Could you also provide the TF config for a minimal reproducible example for both scenarios? |
Hello we are using kind of a custom config. Schema Example: Configs: %{ for schema_name, schema_data in schemas ~} %{~ endfor } %{~ endfor } resource "schemaregistry_schema" "topic_key_schemas" { subject = "${each.key}-key" locals { schemas_to_register = { schemas = { varfile = get_env("TG_VAR_FILE", "") generate "record-schemas" { |
Hello,
We noticed 2 confluent provider issues that cause our state file schema to be updated, but not the cloud schema registry. This result in an out of sync tf state file, that can on longer successfully apply changes to the confluent.
Case 1. Any incompatible schema change will result in a failed confluent cloud schema update, but a successful tf state file update.
Case 2. There was some kind of network issues that caused a (Client.Timeout exceeded while awaiting headers) error while trying to contact our cloud schema registry. This resulted in a failed schema update, but a successful tf state file update.
We found that manually rolling back the schema to the last version (working version) fixes the problem in both cases. But this is time consuming, and prolongs our downtime.
From the two cases above it seem like the tf state file is being updated before the successful application of our schema change. While the application fails our apply stops but the tf state file is not rolled back.
Expected Behavior:
The tf state file should be updated only after the a successful update in confluent cloud.
confluent = {
source = "confluentinc/confluent"
version = "1.54.0"
}
The text was updated successfully, but these errors were encountered: