Giter Club home page Giter Club logo

cloud-platform-maintenance-pages's Introduction

Maintenance and Decommission Pages

Releases repo standards badge

A simple sinatra app. to serve a different, static HTML page depending on the requested hostname.

The idea is to point domains at this webserver whenever we want to put them into maintenance mode or decommission them.

Creating a new maintenance/decommission page

  • Use make run to start a local instance of the pages app webserver on port 4567 of your computer.

  • Checkout this repository and create a new branch for your domain

  • Edit views/localhost.erb until the page you see at http://localhost:4567 looks like the page you want.

Use the other example views/*.erb files as a guide.

Please do not make any changes to views/layout.erb unless you are very confident you're not going to break other teams' pages.

  • Rename views/localhost.erb to views/[your domain].erb

For instance, to create a maintenance or decommission page for https://decisions.tribunals.gov.uk/ you need to create the file views/decisions.tribunals.gov.uk.erb.

  • Git add, and commit your new file

Don't commit any changes to views/localhost.erb by mistake - just your newly-created views/[your domain].erb file

  • Open a PR and wait for someone to review

Once your changes have been merged, a pipeline will automatically deploy the new changes:

The below DNS changes will have to be performed to go into maintenance/decomission - the above changes only setup the HTML being served.

DNS change

This process has relevant ticket types in operations-engineering GitHub/ZenHub that can be created using the New Issue button. It is highly recommended to create a ticket and follow any new changes through the ticket as it has checklists to follow progress.

If your service is already hosted on the Cloud Platform, the DNS change will be handled automatically, all you need to do is remove the ingress from your current namespace (this must happen first) and add it here as described in the 2nd step below.

NOTE: It is very important that the variable.tf change is merged before performing the Route53 change, if both changes are done at the same time you will need to contact the Cloud Platform to restart cert-manager.

  • Add your host to the list of domains in the variable.tf in the maintenance pages namespace. Doing so will create a new Route53 zone in the Cloud Platform account.
  • Add a rule to the ingress, following that example :
        - host: example.gov.uk  #The only change
        http:
        paths:
        - path: /
            backend:
            serviceName: maintenance-pages-service
            servicePort: 4567
    
  • Add an entry in the certificate file so that a certificate for your domain will be generated

At this point wherever the DNS is managed must change the DNS record for your domain to be a NS record pointing at the Cloud Platform zone nameservers, please contact the Cloud Platform for these.

If you are not sure where the DNS is managed, please contact the Operations Engineering team for help (#ask-operations-engineering)

cloud-platform-maintenance-pages's People

Contributors

antonybishop avatar ben-al avatar carlosmoj avatar dependabot[bot] avatar digitalronin avatar github-actions[bot] avatar jasonbirchall avatar mazonetwoone avatar nickwalt01 avatar pheonnexx avatar rohanssalunkhe avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloud-platform-maintenance-pages's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.