#199 update procedure for pushing to status.fp.o
Merged 5 months ago by kevin. Opened 5 months ago by ryanlerch.
ryanlerch/infra-docs new-status  into  main

@@ -13,7 +13,7 @@ 

  Fedora Infrastructure.

  

  This page is hosted at AWS.

- The upstream repository is fedora-status on Pagure.io.

+ 

  

  Contact Information

  ===================
@@ -27,8 +27,8 @@ 

  Purpose: 

    Give status information to users about the current

    status of our public services.

- Upstream:  

-   https://pagure.io/fedora-status

+ Repository:

+   https://github.com/fedora-infra/statusfpo

  

  How it works

  ============
@@ -38,69 +38,100 @@ 

  It is based on an S3 bucket with the files, fronted by

  a CloudFront distribution for TLS termination and CNAMEs.

  

- The files are statically generated on update, and then pushed

- out to S3.

+ The website is statically generated using Pelican on your local machine,

+ and then pushed to S3.

  

- Only members of sysadmin-main and people given the AWS credentials

- can update the status website.  Additionally, you also need to have

- commit access to "statusfpo" git repository on GitHub - one way to get

- it is becoming member of "noc" team at "fedora-infra" organization.

+ Adding and changing outages

+ ===========================

  

- Setting up

- ==========

- 1. Check out the repo at::

+ Making Changes

+ --------------

+ Before pushing changes live to S3, use the Pelican's devserver to stage and view

+ changes.

+ 

+ 1. Install the packages you need to run the devserver with::

+ 

+     sudo dnf install pelican python-packaging

+ 

+ 2. Check out the repo at::

        

      git@github.com:fedora-infra/statusfpo.git

  

- 2. Install locally the following packages: python2-jinja2 awscli

+ 3. Run the devserver with::

  

- 3. Grab ansible-private/files/aws-status-credentials and store in ~/.aws/credentials.

+     make devserver

  

- 4. Run::

+ 4. View the generated site at http://0.0.0.0:8000. Note that any changes to the 

+    content and theme will automatically regenerate.

  

-     aws configure set preview.cloudfront true

+ 5. Commit changes (or open a Pull Request) to https://github.com/fedora-infra/statusfpo

+ 

+ 

+ Create a new outage

+ -------------------

+ 1. Add a markdown file to either content/planned/, content/ongoing, or content/resolved/. 

+    The name of the file needs to be unique, so check the resolved outages for an idea on 

+    how to name your file.

  

- Updating the page

- =================

-  

- 1. cd statusfpo

- 2. Run ./manage.py

+ 2. Add your outage notice to the markdown file, for example::

  

- manage.py takes 3+ arguments::

+     Title: Buzzilla Slow

+     Date: 2021-04-28 10:22+0000

+     OutageFinish: 2021-04-28 13:30+0000

+     Ticket: 123456

  

- [status] "[short summary message]" [service] ([service] .....)

+     A swarm of bees have taken up residence in one of 

+     the Buzzilla Server rooms. Consequently, some 

+     requests to Buzzilla may respond slower than

+     usual. An apiarist has been called to capture 

+     and relocate the swarm.

+   

  

- [service] values can be found on http://status.fedoraproject.org/ on the RIGHT

- SIDE of the header of each box. Examples are: 'wiki', 'pkgs', and 'fedmsg'.

+   * Note that OutageFinish is optional, but should really only be ommited if 

+     the projected / or actual outage time is unknown.

+   * When providing dated, keep the timezone offset at +0000 / UTC datetimes

  

- You can use "-" (dash) to imply "All services"

  

- It accepts any number of additional services

+ Moving an outage

+ ----------------

+ To move an outage, say from Planned to Ongoing simply move the markdown file 

+ into a different status directory in content/, and regenerate.

  

- [status] should be::

  

- 'major'     - A major service outage.

- 'minor'     - A minor service outage (e.g. limited/geographical outage)

- 'scheduled' - The current downtime to this service is related to a scheduled outage

- 'good'      - Everything is fine and the service is functioning 100%.

+ Publishing

+ ==========

+ Only members of sysadmin-main and people given the AWS credentials

+ can update the status website.

+ 

+ Initial Configuration for Publishing

+ ------------------------------------

+ 

+ 1. First, install the AWS command line tool with::

+ 

+     sudo dnf install aws-cli

+ 

+ 3. Grab ansible-private/files/aws-status-credentials and store in ~/.aws/credentials.

+ 

+ 4. Run::

+ 

+     aws configure set preview.cloudfront true

+ 

  

- [short summary message] is what appears in the body of the box and should tell

- users what is happening/why the service is down.

+ Publishing changes live

+ -----------------------

+ Once you are satisfied with your changes and how they look on the devserver, 

+ and they have been committed to Git, and push the built changes live with the command::

  

- You can use "-" (dash) to imply "Everything seems to be working." as the

- status.

+     make upload

  

- Examples::

+ Note that this command only updates content changes (i.e. adding / moving outages)

  

- ./manage.py major "We're performing maintenance on the wiki database" wiki

- ./manage.py zodbot minor "Some IRC channels are having issues doing XYZ." zodbot

- ./manage.py good - -   # Set all services to good/default.

- ./manage.py good - wiki # Set wiki status to 'good' with the default message.

- ./manage.py good - wiki zodbot  # Set both wiki and zodbot to good with default message.

+ Publishing theme changes

+ ------------------------

+ If your changes involve changes to the theme, run the following command to 

+ upload everything content and theme changes to the live server::

  

- You can use the --general-info flag to set a "global" message, which appears

- under the main status bar at the top of the page. Use this for big events that

- effect all services, or to announce things like upcoming outages.

+     make upload-theme

  

  Renewing SSL certificate

  ========================

Pull-Request has been merged by kevin

5 months ago
Metadata