[DEV-14834] Disable HTTP/1.1 by default#534
Conversation
…http on NLB. Note: ALB will not allow HTTP/2 connections only.
… they exist and use them for the argo_appllcation. This should allow for the ability to update the argo application through terraform if needed and also continue to modify it through github.
…ve debug statement.
…d debugging to see where we are failing
…d debugging to see where we are failing. try 2
…d debugging to see where we are failing. try 3
…d debugging to see where we are failing. try 4
…d debugging to see where we are failing. try 5
…d debugging to see where we are failing. try 6
…d debugging to see where we are failing. try 7
…d debugging to see where we are failing. try 8
…d debugging to see where we are failing. try 9
…d debugging to see where we are failing. try 10
…d debugging to see where we are failing. try 11
…d debugging to see where we are failing. try 12
…d debugging to see where we are failing. try 13
…d debugging to see where we are failing. try 14
…d debugging to see where we are failing. try 15
…d debugging to see where we are failing. try 16
…d debugging to see where we are failing. try 17
…d debugging to see where we are failing. try 18
…d debugging to see where we are failing. try 19
…d debugging to see where we are failing. try 20
…d debugging to see where we are failing. try 21
…Ensure all argo applications have git token passed in to allow for using existing values.
…Ensure all argo applications have git token passed in to allow for using existing values.
…ove setting from ingress.
…ove setting from ingress. Adjust entry syntax.
…ove setting from ingress. Adjust entry syntax - try 2
…ove setting from ingress. Add support in Azure clusters
…for argo, but allowing terraform changes to be applied.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| # ] | ||
| # } | ||
|
|
||
| # Unique delimiter so "EOT" (or similar) inside HELM_VALUES doesn't end the heredoc and truncate |
There was a problem hiding this comment.
Heredoc delimiter not unique despite comment claiming otherwise
Low Severity
The comment on line 64 states "Unique delimiter so 'EOT' (or similar) inside HELM_VALUES doesn't end the heredoc and truncate," but the code immediately below still uses <<EOT as the delimiter. EOT is the most commonly used heredoc delimiter in Terraform. The comment explicitly identifies the risk but the mitigation was never actually implemented — a more distinctive delimiter like <<ARGOCD_APPLICATION_CONTENT would match the documented intent and guard against premature heredoc termination if HELM_VALUES content ever contains a bare EOT line.


Summary
This PR introduces a new variable,
enforce_http_2_only, which controls whether HTTP/1.1 traffic is allowed. By default, HTTP/1.1 requests are denied with a 429 status code. The flag provides flexibility to temporarily allow HTTP/1.1 traffic when necessary.Argo Application Behavior Changes
To ensure this setting (and future Terraform-driven changes) apply to existing clusters, we updated how Argo applications are managed.
Previously:
ipa_application.yaml,ipa_smoketest.yaml,insights_application.yaml, andinsights_smoketest.yamlwere not updated afterward.tf_codwere not propagated to existing clusters.Now:
HELM_VALUESin those files are preserved.tf_cod(injected asHELM_TF_COD_VALUES) are updated in GitHub.This ensures Terraform-driven configuration changes are consistently propagated while preserving any user-defined overrides.
Note
High Risk
Defaulting ingress to HTTP/2-only can break clients/load balancers that still use HTTP/1.1. The new GitHub read/merge path for Argo app files changes how config updates propagate and could overwrite or mis-parse existing YAML if the fetch/decode logic fails.
Overview
Introduces
enforce_http_2_only(defaulttrue) to disable HTTP/1.1 ingress by turning off the NGINX controllerhttpPortand injecting an NGINXserver-snippetsrule that rejects non-HTTP/2 requests (status426) in both AWS and Azure stacks.Changes Argo application YAML generation (
modules/common/application-deployment) to fetch the existing*_application.yamlfrom GitHub (via newexternalprovider +fetch_github_file.py) and reuse the existingHELM_VALUESwhen present, while still updatingHELM_TF_COD_VALUES; root modules now passvar.git_patthrough asgithub_tokento intake/insights/smoketests/additional apps.Written by Cursor Bugbot for commit 24be63d. This will update automatically on new commits. Configure here.