Skip to content

[DEV-14834] Disable HTTP/1.1 by default#534

Closed
NathanOkolita wants to merge 40 commits intomainfrom
dev-14834
Closed

[DEV-14834] Disable HTTP/1.1 by default#534
NathanOkolita wants to merge 40 commits intomainfrom
dev-14834

Conversation

@NathanOkolita
Copy link
Contributor

@NathanOkolita NathanOkolita commented Feb 17, 2026

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:

  • Argo application values were set only at creation time.
  • Files such as ipa_application.yaml, ipa_smoketest.yaml, insights_application.yaml, and insights_smoketest.yaml were not updated afterward.
  • As a result, only changes committed directly to GitHub were applied.
  • Changes made in tf_cod were not propagated to existing clusters.

Now:

  • User-defined HELM_VALUES in those files are preserved.
  • Values generated by tf_cod (injected as HELM_TF_COD_VALUES) are updated in GitHub.
  • Argo then applies those updated values to the cluster.

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 (default true) to disable HTTP/1.1 ingress by turning off the NGINX controller httpPort and injecting an NGINX server-snippets rule that rejects non-HTTP/2 requests (status 426) in both AWS and Azure stacks.

Changes Argo application YAML generation (modules/common/application-deployment) to fetch the existing *_application.yaml from GitHub (via new external provider + fetch_github_file.py) and reuse the existing HELM_VALUES when present, while still updating HELM_TF_COD_VALUES; root modules now pass var.git_pat through as github_token to intake/insights/smoketests/additional apps.

Written by Cursor Bugbot for commit 24be63d. This will update automatically on new commits. Configure here.

…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.
…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. 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.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Copy link
Contributor

@ltellesfl ltellesfl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@NathanOkolita NathanOkolita deleted the dev-14834 branch February 19, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants