Uploaded image for project: 'Ansible Networking & Security (Content)'
  1. Ansible Networking & Security (Content)
  2. ANA-535

Containerising and automating the tools that we use for Bug triage and CI health reports.

XMLWordPrintable

    • Containerising and automating the tools that we use for Bug triage and CI health reports.
    • False
    • Hide

      None

      Show
      None
    • False
    • To Do
    • 0% To Do, 0% In Progress, 100% Done

      Background

      Currently, the ansible-network-triager is manually executed to post an email outlining upstream bugs that need to be triaged. Additionally, a CI script is manually run to verify the success of our nightly scheduled CI runs. Both tools require manual intervention to execute.

      User Stories

      1. Combine Tools into a Single Triager:
        • Merge the CI script into the existing triager tool.
        • Expose proper CLI options to manage input parameters.
        • We should consider renaming the tool to something more generic and not specific to the networking team.
      2. Centralized Configuration:
        • Both tools should rely on a single config.yaml file.
        • This file will contain:
          • Information about repositories on which to generate reports.
          • A section with the list of email recipients.
          • A password field for sending emails. If the password is not present, the tool should prompt for it via CLI args or input.
      3. Publishing on PyPI:
        • The combined tool should be packaged and published on PyPI for easy distribution and use.
      4. GitHub Actions Integration:
        • Implement GitHub Actions for automated scheduling.
        • Configure two schedules:
          1. Bug triage emails should be triggered every Wednesday at 2:30 PM IST.
          2. The CI report tool should run daily at 12:00 PM IST.
        • Ensure proper secret management for email credentials using GitHub Actions' secrets feature.
        • Store email recipients as environment variables to protect their privacy.
      5. Docker Integration:
        • Create a Dockerfile and utilize Docker Compose to host the tool in a containerized environment.
        • This will enable easy consumption of the tool in a containerized setup.
      6. Template-based Configurations:
        • Implement templating capabilities to populate the config.yaml file with necessary information dynamically.

      Supporting documentation

      <include links to technical docs, diagrams, etc>

      https://gist.github.com/KB-perByte/e2e8a83fbbb05b294ebbaea0d10438be Nightly CI tool
      https://github.com/ansible-network/ansible-network-triager Network triager

      Ready-Ready

      https://docs.google.com/document/d/1dBW492UfCR5JxUvcx6efjYP_ibCdiwGONS-sxDb_SPU/edit#

      Complete Ready-Ready checklist

      Definition of Done

      • Tool Integration:
        • The CI script is successfully merged into the ansible-network-triager tool.
        • CLI options are exposed to handle input parameters effectively.
      • Configuration Management:
        • A single config.yaml file is used for both tools, containing repository information, email recipients, and password management.
        • The tool prompts for email password if not found in the configuration file.
      • PyPI Publishing:
        • The combined tool is packaged and published on PyPI, available for easy installation.
      • GitHub Actions:
        • Automated schedules are set up in GitHub Actions:
          • Bug triage emails are sent every Wednesday at 2:30 PM IST.
          • CI report is generated daily at 12:00 PM IST.
        • Email credentials and recipients are managed securely using GitHub Actions secrets and environment variables.
      • Docker Integration:
        • A Dockerfile and Docker Compose setup are created, allowing the tool to run in a containerized environment.
      • Template Support:
        • Templating functionality is added to dynamically populate the config.yaml file. (needed for other teams to adapt to the tool)
      • Secret Management:
        • All sensitive data, such as email credentials, are securely managed and not exposed in public configurations.

              rh-ee-hgirish Girish H M
              sagpaul@redhat.com Sagar Paul
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: