From 8daa22085291d1fd092a8b77c380851d7ab009c1 Mon Sep 17 00:00:00 2001 From: Louis Abel Date: Mon, 10 Apr 2023 22:14:10 -0700 Subject: [PATCH] start basis for infrastructure wiki --- README.md | 4 +-- docs/CNAME | 2 +- docs/assets/icon-white.svg | 3 ++ docs/include/resources_bottom.md | 62 ++++++++++++++++++++++++++++++++ docs/index.md | 15 ++++---- docs/sop/.pages | 5 +++ docs/sop/idm_sop_gdpr.md | 44 +++++++++++++++++++++++ docs/sop/idm_sop_mm_ras.md | 33 +++++++++++++++++ docs/sop/index.md | 8 +++++ mkdocs.yml | 12 ++++--- 10 files changed, 173 insertions(+), 15 deletions(-) create mode 100644 docs/assets/icon-white.svg create mode 100644 docs/include/resources_bottom.md create mode 100644 docs/sop/.pages create mode 100644 docs/sop/idm_sop_gdpr.md create mode 100644 docs/sop/idm_sop_mm_ras.md create mode 100644 docs/sop/index.md diff --git a/README.md b/README.md index 0a5ef85..a3ad9e6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# REPLACEME Wiki +# Infrastructure Wiki @TODO - fill in :) ## Continuous Integration / Continuous Deployment -Actions Runner executes workflow to publish to https://REPLACEME.rocky.page on push to main. +Actions Runner executes workflow to publish to https://infra.rocky.page on push to main. diff --git a/docs/CNAME b/docs/CNAME index f3adce1..acda69e 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -REPLACEME.rocky.page +infra.rocky.page diff --git a/docs/assets/icon-white.svg b/docs/assets/icon-white.svg new file mode 100644 index 0000000..689ab46 --- /dev/null +++ b/docs/assets/icon-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/include/resources_bottom.md b/docs/include/resources_bottom.md new file mode 100644 index 0000000..430271e --- /dev/null +++ b/docs/include/resources_bottom.md @@ -0,0 +1,62 @@ + +

Resources

+ +=== "Account Services" + + **URL**: [https://accounts.rockylinux.org](https://accounts.rockylinux.org) + + **Purpose**: Account Services maintains the accounts for almost all components of the Rocky ecosystem + + **Technology**: Noggin used by Fedora Infrastructure + + **Contact**: `~Infrastructure` in Mattermost and `#rockylinux-infra` in Libera IRC + +=== "Git (RESF Git Service)" + + **URL**: [https://git.resf.org](https://git.resf.org) + + **Purpose**: General projects, code, and so on for the Rocky Enterprise Software Foundation. + + **Technology**: [Gitea](https://gitea.io/en-us/) + + **Contact**: `~Infrastructure`, `~Development` in Mattermost and `#rockylinux-infra`, `#rockylinux-devel` in Libera IRC + +=== "Git (Rocky Linux GitHub)" + + **URL**: [https://github.com/rocky-linux](https://github.com/rocky-linux) + + **Purpose**: General purpose code, assets, and so on for Rocky Linux. Some content is mirrored to the RESF Git Service. + + **Technology**: [GitHub](https://github.com) + + **Contact**: `~Infrastructure`, `~Development` in Mattermost and `#rockylinux-infra`, `#rockylinux-devel` in Libera IRC + + +=== "Git (Rocky Linux GitLab)" + + **URL**: [https://git.rockylinux.org](https://git.rockylinux.org) + + **Purpose**: Packages and light code for the Rocky Linux distribution + + **Technology**: [GitLab](https://gitlab.com) + + **Contact**: `~Infrastructure`, `~Development` in Mattermost and `#rockylinux-infra`, `#rockylinux-devel` in Libera IRC + +=== "Mail Lists" + + **URL**: [https://lists.resf.org](https://lists.resf.org) + + **Purpose**: Users can subscribe and interact with various mail lists for the Rocky ecosystem + + **Technology**: Mailman 3 + Hyper Kitty + + **Contact**: `~Infrastructure` in Mattermost and `#rockylinux-infra` in Libera IRC + +=== "Contacts" + + | Name | Email | Mattermost Name | IRC Name | + |---------------------------------|-------------------------|-------------------|--------------------| + | Neil Hanlon | neil@resf.org | @neil | neil | + | Taylor Goodwill | tg@resf.org | @tgo | tg | + | Louis Abel | label@rockylinux.org | @nazunalika | Sokel/label/Sombra | + diff --git a/docs/index.md b/docs/index.md index c025f75..cbffacc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -# REPLACEME Wiki +# Infrastructure Wiki ## Links @@ -8,9 +8,10 @@ ## Members -## Project layout - - mkdocs.yml # The configuration file. - docs/ - index.md # The documentation homepage. - ... # Other markdown pages, images and other files. +| Role | Name | Email | Mattermost Name | IRC Name | +|-------------------------------------------|---------------------------------|-------------------------|-------------------|------------------------| +| Infrastructure Lead | Neil Hanlon | neil@resf.org | @neil | neil | +| Infrastructure Lead | Taylor Goodwill | tg@resf.org | @tgo | tg | +| Infrastructure, IdM & Release Engineering | Louis Abel | label@rockylinux.org | @nazunalika | Sokel/label/Sombra | +| Infrastructure | Randolph | | @meltro | N/A | +| Infrastructure | Patrick Roberts | | @preachermanx | N/A | diff --git a/docs/sop/.pages b/docs/sop/.pages new file mode 100644 index 0000000..b68753e --- /dev/null +++ b/docs/sop/.pages @@ -0,0 +1,5 @@ +--- +nav: + - ... | index.md + - 'SOP: Personal Data Request - Deletion': 'idm_sop_gdpr.md' + - 'SOP: Mattermost and RAS Group Sync': 'idm_sop_mm_ras.md' diff --git a/docs/sop/idm_sop_gdpr.md b/docs/sop/idm_sop_gdpr.md new file mode 100644 index 0000000..8ae36c5 --- /dev/null +++ b/docs/sop/idm_sop_gdpr.md @@ -0,0 +1,44 @@ +--- +title: 'SOP: Personal Data Request - Deletion' +--- + +This SOP covers how the Rocky Enterprise Software Foundation (RESF) and Rocky Linux Infrastructure Team handles GDRP (General Data Protection Regulation) data delete requests. It contains information about how System Administrators will use Ansible and other tooling to respond to delete requests. + +## Contact Information +| | | +| - | - | +| **Owner** | Infrastructure Team & Identity Management Team | +| **Email Contact** | infrastructure@rockylinux.org | +| **Email Contact** | identitymanagement@rockylinux.org | +| **Mattermost Contacts** | `@label` | +| **Mattermost Channels** | `~Infrastructure` | + +## Responding to a Deletion Request + +This section covers how a system administrator will use our `adhoc-ipauser-disable-pdr.yml` playbook to respond to a delete request. + +If a request has been received via email, perform the following steps: + +0. If request was received by email: Open a ticket at the [bug tracker](https://bugs.rockylinux.org) under the `Account Services` product (Click the drop down in the top right corner, click "Account Services", select "Report Issue") + + * Set category to `Account Requests - Personal Data Request` + * Assign to yourself if possible + * Summary should be set: `PDR - Email Delete Request for ` + * Description should be set to the snippet `PDR Request - Remove Personal Information` or copied directly from the email if the template was followed. + * Use the ID for the ansible playbook + +1. On the ansible host, run the necessary ansible playbook: `ansible-playbook -i inventories/production/hosts.ini playbooks/adhoc-ipauser-disable-pdr.yml --extra-vars='ipa_user= ticket_id=BT'` +2. Leave a comment on the issue that the disable request was performed. +3. Email the affected user: + +``` +Hello. We have reviewed your account request and have performed the requested +changes. The ticket has been closed and set to private. + +Please note that some public content such as mailing lists cannot be deleted +since some information is meant to serve the RESF legitimate business +interests, the public interest, and the interest of the open source community. + +Thank you, please let us know if you have any further questions. +``` +4. Set ticket to `RESOLVED` diff --git a/docs/sop/idm_sop_mm_ras.md b/docs/sop/idm_sop_mm_ras.md new file mode 100644 index 0000000..1ec7669 --- /dev/null +++ b/docs/sop/idm_sop_mm_ras.md @@ -0,0 +1,33 @@ +--- +title: 'SOP: Mattermost and RAS Group Sync' +--- + +This SOP covers how the Rocky Enterprise Software Foundation (RESF) and Rocky Linux Infrastructure handles group syncing between the Rocky Account Services and Mattermost Channels. It contains information about how System Administrators will create groups, the templates, and how to setup syncing within Mattermost. + +Note: This assumes the user is logging in with their RAS credentials to Mattermost. + +## Contact Information +| | | +| - | - | +| **Owner** | Infrastructure Team & Identity Management Team | +| **Email Contact** | infrastructure@rockylinux.org | +| **Email Contact** | identitymanagement@rockylinux.org | +| **Mattermost Contacts** | `@label` | +| **Mattermost Contacts** | `@neil` | +| **Mattermost Channels** | `~Infrastructure` | + +## Creating the necessary group + +This section covers how a system administrator will create a group Rocky Account Services using ansible. The playbook utilized will be `adhoc-ipagroup.yml`. + +1. First, determine where and how the group will be utilized. The starting template will be `mm_X_name`. `mm` is for mattermost, `X` will be for the designated part of Mattermost (e.g., resf, rl, and so on), and `name` will be the name of the group in question. +2. On the ansible host, run the necessary ansible playbook: `ansible-playbook -i inventories/production/hosts.ini ansible-ipa-management/adhoc-ipagroup.yml --extra-vars='ipa_group= ipa_description="" ipa_nonposix=false ipa_fas=true ipa_group_manager_user='` + + * Ensure that the description is set in a way that it explains what it is for + * It is unlikely the group will need to have a GID assigned. Assigning the group as nonposix should be sufficient. + * Setting the group with `ipa_fas=true` ensures that the group will appear in Rocky Account Services and can be managed there. + * Setting `ipa_group_manager_user` will set a user in RAS that can manage the group without requesting for an administrator to do so. + +## Syncing in Mattermost + +Within mattermost's administration console, apply the group to the channel as necessary. diff --git a/docs/sop/index.md b/docs/sop/index.md new file mode 100644 index 0000000..77681df --- /dev/null +++ b/docs/sop/index.md @@ -0,0 +1,8 @@ +--- +title: SOP (Standard Operationg Procedures) +--- + +This section goes over the various SOP's for the Infrastructure Team. Please use the menu items +to find the various pages of interest. + +{% include "resources_bottom.md" %} diff --git a/mkdocs.yml b/mkdocs.yml index 832aaf5..b37345a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,13 +1,13 @@ --- # Project information -site_name: REPLACEME Wiki -site_url: https://REPLACEME.rocky.page +site_name: Infrastructure Wiki +site_url: https://infra.rocky.page site_description: >- - REPLACEME + Infrastructure Wiki and Documentation # Repository -repo_url: https://git.resf.org/REPLACEME/wiki -repo_name: REPLACEME/wiki +repo_url: https://git.resf.org/infrastructure/wiki +repo_name: infrastructure/wiki edit_uri: _edit/main/docs/ # Copyright @@ -58,6 +58,8 @@ plugins: - git-revision-date-localized: type: date - search + - macros: + include_dir: docs/include # Extensions markdown_extensions: