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

Add initial documentation for reactive mode #397

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft

Conversation

cbartz
Copy link
Collaborator

@cbartz cbartz commented Oct 24, 2024

Applicable spec: ISD-116

Overview

Add a howto and some reference documentation.

Rationale

We have an initial deployment in production and need some documentation.

Checklist

  • The charm style guide was applied.
  • The contributing guide was applied.
  • The changes are compliant with ISD054 - Managing Charm Complexity
  • The documentation is generated using src-docs.
  • The documentation for charmhub is updated.
  • The PR is tagged with appropriate label (urgent, trivial, complex).
  • The changelog is updated with changes that affects the users of the charm.
  • The changes do not introduce any regression in code or tests related to LXD runner mode.

@cbartz cbartz added the documentation Improvements or additions to documentation label Oct 24, 2024
Copy link
Contributor

Test coverage for 30eb911

Name                         Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------
src/charm.py                   630    166    140     27    70%   247-249, 315-334, 352-354, 355->359, 385-389, 463-465, 474, 481-483, 504-509, 526-532, 553, 565-571, 586-587, 606-607, 616, 621, 651-652, 654->663, 658->663, 668-674, 708, 712-717, 768-773, 782->785, 808-820, 824-825, 853-880, 893-898, 917-927, 942-944, 991-992, 994-995, 997-998, 1077->1079, 1144-1145, 1183-1185, 1193-1199, 1277-1310, 1324-1329, 1344-1387, 1395-1396, 1418
src/charm_state.py             450     17     82      3    95%   274-286, 505-509, 631-632, 687-688, 1123->1126, 1130-1131, 1178
src/errors.py                   25      0      0      0   100%
src/event_timer.py              52      6      0      0    88%   105-106, 143-144, 160-161
src/firewall.py                 51     18     10      0    67%   42-43, 66-69, 111-185
src/github_client.py            23      2      4      0    93%   71-72
src/logrotate.py                43      0      2      0   100%
src/lxd_type.py                 35      0      0      0   100%
src/runner_manager_type.py      39      0      0      0   100%
src/runner_type.py              38      0      0      0   100%
src/shared_fs.py                98     17     10      1    83%   60-61, 132-133, 162-163, 171-172, 178-179, 210, 213-214, 226-227, 270-271
src/utilities.py                32      4      6      2    79%   66-69, 111
------------------------------------------------------------------------
TOTAL                         1516    230    254     33    83%

Static code analysis report

Run started:2024-10-24 13:05:16.779961

Test results:
  No issues identified.

Code scanned:
  Total lines of code: 5045
  Total lines skipped (#nosec): 2
  Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 6

Run metrics:
  Total issues (by severity):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
  Total issues (by confidence):
  	Undefined: 0
  	Low: 0
  	Medium: 0
  	High: 0
Files skipped (0):


Note, that the specific revisions/channels in the steps are only marked here to have the howto reproducible, you should adapt these to your needs.

We assume that you have a machine model (named "machine-model") for the runners and MongoDB, and a k8s model (named "k8s-model") for the webhook router.
Copy link
Contributor

Choose a reason for hiding this comment

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

This assumption should probably be moved to the "Requirements" section


### GitHub Runner flavors

For this howto, we decided to have deployed three runner flavors: `large`, `large-arm`, `small` . We need
Copy link
Contributor

Choose a reason for hiding this comment

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

Nitpick: howto --> how-to guide


## Requirements

You need to deploy a webhook router, which listens for incoming jobs from GitHub, transforms them into
Copy link
Contributor

Choose a reason for hiding this comment

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

For my understanding, does this how-to guide have the user deploy the webhook router?

## Steps
We are going to showcase the steps required to set up a reactive spawning environment with three runner flavors (large, large-arm, small) and a MongoDB database as a message queue.

Note, that the specific revisions/channels in the steps are only marked here to have the howto reproducible, you should adapt these to your needs.
Copy link
Contributor

Choose a reason for hiding this comment

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

Nitpick: "to have the howto reproducible" --> "for reproducibility"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation Libraries: Out of sync
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants