Skip to content
/ wp-ops Public

DevOps infrastructure for the WordPress-at-EFPL project

License

Notifications You must be signed in to change notification settings

epfl-si/wp-ops

Repository files navigation

WordPress @ EPFL: DevOps Boogaloo

Build Status

In this repository you will find:

  • The Dockerfiles and build dependencies for all custom-made Docker images

  • Some Ansible code to manage state on-disk and inside the Kubernetes data store

Prerequisites and Tools

OpenShift

  1. Install the OpenShift command-line tools
  2. Browse https://pub-os-exopge.epfl.ch/ and log in using your GASPAR credentials
  3. From the “you” menu in the top right, select Copy Login Command
  4. Paste into a terminal window
  5. Check your access, e.g.
    oc get pods -n wwp-test

Ansible

Install Ansible and familiarize yourself with how it works.

Keybase and eyaml

These are required to (re)deploy QA and production secrets.

💡 You can get a lot of mileage out of Ansible and OpenShift even if you do not have access to the Keybase teams. In that case, feel free to skip this section.

  1. Install eyaml with
    gem install hiera-eyaml
  2. Install Keybase and create an account for yourself
  3. Obtain membership in the relevant Keybase teams

Operations

To be documented

Contributor list

Big up to all the following people, without whom this project will not be

@LuluTchab avatar @ebreton avatar @GregLeBarbar avatar @domq avatar @jdelasoie avatar @ponsfrilus avatar @MarceloMuriel avatar @alinekeller avatar @lvenries avatar @lboatto avatar @cburki avatar @zuzu59 avatar @dabelenda avatar @jaepetto avatar @williambelle avatar @multiscan avatar @JGodin-C2C avatar @obieler avatar

File Layout

This module comprises the following subdirectories:

  • ansible: All the support for Ansible and Ansible Tower. Theoretically, ansible/wpsible can bring up the entire serving infrastructure from a backup into an empty OpenShift namespace that the operator has oc login access to — Including all required Kubernetes objects. A subset of the Ansible tasks is managed by Ansible Tower, providing a dashboard and crontab-like functionality to the operator. See ansible/README.md for further details on the layout inside this directory.
  • docker: Dockerfiles used to build the production images (also used by wp-dev to build the images on your workstation)
  • Makefile and k8s-backup: manage the archiving of select mutable pieces of the Kubernetes configuration into a Keybase-encrypted git