Skip to content

feat(edxapp): provision the Contact us launcher waffle flag for mitxonline - #6696

Merged
zamanafzal merged 1 commit into
mainfrom
zafzal/13992-contact-us-waffle-flag
Oct 30, 2026
Merged

zamanafzal merged 1 commit into
mainfrom
zafzal/13992-contact-us-waffle-flag

Conversation

@zamanafzal

@zamanafzal zamanafzal commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

What are the relevant tickets?

Refs mitodl/hq#14033, under mitodl/hq#13712.

Description (What does it do?)

Adds ol_openedx_chat.contact_us_enabled to edxapp:waffle_flags so the flag row
exists before the launcher ships. With no row the endpoint answers false and the
client is fail-closed, so shipping the footer first would remove the launcher instead
of gating it.

  • CI, QA: --create --everyone
  • Production: --create --deactivate

Production is off on purpose. --create alone leaves waffle's everyone column null,
which reads as "nobody decided" rather than "off"; --deactivate writes False and
leaves the row there for whoever turns it on. CI gets --everyone for parity with QA,
but has no contact_us_support_api_url, so nothing mounts there.

Inert until mitodl/open-edx-plugins#931 merges and publishes — the endpoint that
reads this flag does not exist in ol-openedx-chat 0.6.1.

How can this be tested?

pulumi preview was not run; these stacks point at real AWS and Vault backends.

  1. All three files parse with the new entry last:

    python3 -c "import yaml,sys; [print(f.split('.')[-2],'->',yaml.safe_load(open(f))['config']['edxapp:waffle_flags'][-1]) for f in sys.argv[1:]]" \
      src/ol_infrastructure/applications/edxapp/Pulumi.mitxonline.{CI,QA,Production}.yaml
    
  2. The flag name matches what the plugin reads: tests/test_compat.py in
    Add a course waffle flag and endpoint for the Contact us launcher open-edx-plugins#931 asserts
    get_contact_us_enabled_flag().name == "ol_openedx_chat.contact_us_enabled".

  3. After the openedx image deploy that follows this, on QA:

    curl https://courses.rc.learn.mit.edu/ol-openedx-chat/api/contact-us-enabled/
    # {"enabled":true}
    

The flag's behavior was verified against a local Tutor stack in
mitodl/open-edx-plugins#931. No screenshot here — this is config only; the launcher
itself is mitodl/lehrer#363.

Additional Context

Merge this before the openedx image deploy, not after. A waffle-flags-only Pulumi
run rewrites the waffle-flags-yaml ConfigMap and stops: the ConfigMap is absent from
lms_config_hash (k8s_resources.py:883-888) so no Deployment rolls, and the pre-deploy
Job that reads it carries no config hash (k8s.py:2198-2204) so Pulumi doesn't replace
it. mitodl/lehrer#363's image bump re-runs the Job, which reads whatever the ConfigMap
says at that moment. Same story for turning Production on later — that one-line PR sits
inert until something else rolls edxapp, so flip it in Django admin for immediate effect
and let the Pulumi value hold.

Order: mitodl/open-edx-plugins#931 published → this → mitodl/lehrer#363's pins and image
→ the Footer.jsx change through the MFE pipeline.

Only visible on mitxonline QA, the one environment with contact_us_support_api_url set
(src/ol_concourse/pipelines/open_edx/mfe/values.py:174).

@zamanafzal
zamanafzal marked this pull request as ready for review October 29, 2026 08:26
Copilot AI balanced review requested due to automatic review settings October 29, 2026 08:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Flag-only ConfigMap changes do not reliably rerun the pre-deploy Job, so the intended footer flag state may not be applied across environments.

1 open issue
What changed in this PR

Adds the Contact us launcher waffle flag to mitxonline’s edxapp stack configuration, preparing for the gated footer rollout while keeping Production activation separate.

Changes:

  • Configures ol_openedx_chat.contact_us_enabled with --create --everyone in CI and QA.
  • Configures Production with --create --deactivate to explicitly request an off state.
File Description
src/​ol_infrastructure/​applications/​edxapp/​Pulumi.mitxonline.QA.yaml Adds the enabled flag configuration for QA.
src/​ol_infrastructure/​applications/​edxapp/​Pulumi.mitxonline.Production.yaml Adds the explicitly disabled flag configuration for Production.
src/​ol_infrastructure/​applications/​edxapp/​Pulumi.mitxonline.CI.yaml Adds the enabled flag configuration for CI.

Review effort: Balanced

@zamanafzal zamanafzal changed the title Provision the Contact us launcher waffle flag for mitxonline feat(edxapp): provision the Contact us launcher waffle flag for mitxonline Oct 29, 2026
@zamanafzal
zamanafzal merged commit 4598a2d into main Oct 30, 2026
13 checks passed
@zamanafzal
zamanafzal deleted the zafzal/13992-contact-us-waffle-flag branch October 30, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants