Skip to content
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

BFD-3809: Dataset loaded by Monday 9 AM SLO implementation checks database #2520

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

malessi
Copy link
Contributor

@malessi malessi commented Jan 13, 2025

JIRA Ticket:
BFD-3809

What Does This PR Do?

This PR implements a new Python Docker-based Lambda, ccw-manifests-verifier, that runs every Monday at 9 AM ET and reconciles the state of Incoming/Synthetic/Incoming manifests with manifest status in the database. If any S3 manifests do not exist in the database or are not marked as COMPLETED the Lambda will send an alert to configured SNS Topics. In prod, this will send alerts to Splunk On Call and to the #bfd-alerts Slack channel.

What Should Reviewers Watch For?

If you're reviewing this PR, please check for these things in particular:

What Security Implications Does This PR Have?

Please indicate if this PR does any of the following:

  • Adds any new software dependencies

  • Modifies any security controls

  • Adds new transmission or storage of data

  • Any other changes that could possibly affect security?

  • I have considered the above security implications as it relates to this PR. (If one or more of the above apply, it cannot be merged without the ISSO or team security engineer's (@sb-benohe) approval.)

Validation

Have you fully verified and tested these changes? Is the acceptance criteria met? Please provide reproducible testing instructions, code snippets, or screenshots as applicable.

  • terraform applying in test, verifying that it applies successfully
  • Running the ccw-manifests-verifier Lambda in test with a fake unloaded manifest in S3, verifying that it sends an alert to the #bfd-internal-alerts Slack channel indicating that the manifest is unloaded

@malessi malessi force-pushed the alessio/BFD-3809__pipeline-9am-slo-lambda branch from f73e0e5 to 21251db Compare January 14, 2025 17:13
@malessi malessi force-pushed the alessio/BFD-3809__pipeline-9am-slo-lambda branch from 21251db to c758c72 Compare January 14, 2025 20:40
@malessi malessi marked this pull request as ready for review January 14, 2025 20:40
dondevun
dondevun previously approved these changes Jan 16, 2025
@malessi malessi enabled auto-merge (squash) January 17, 2025 15:05
…ble shadowing; replace usages of 'enabled' with full name
Comment on lines +8 to +9
export BFD_CCW_JOB_ENABLED={{ job_enabled if pipeline_instance_type == 'ccw' else 'false' }} {# derived from terraform control plane #}{{ '\n' }}
export BFD_RDA_JOB_ENABLED={{ job_enabled if pipeline_instance_type == 'rda' else 'false' }} {# derived from terraform control plane #}{{ '\n' }}
Copy link
Contributor Author

@malessi malessi Jan 17, 2025

Choose a reason for hiding this comment

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

This change, and the related changes in ops/terraform/services/pipeline/user-data.sh.tftpl to the jq queries, is necessary as the new SSM parameter /bfd/${env}/pipeline/nonsensitive/ccw/slo/weekend_data_availability/verifier/enabled would otherwise "shadow" the value of /bfd/${env}/pipeline/nonsensitive/ccw/job/enabled as the last in the existing jq queries would result in a duplicate enabled variable in the Ansible's "extra vars".

Changing the jq to instead include the full name of the parameter (replacing / with _) to avoid this results in this variable becoming job_enabled as its full name is job/enabled. I verified that there were no other variables changed that were relevant to the bfd-pipeline Ansible.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

See c8c60fd for relevant commit.

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