Giter VIP home page Giter VIP logo

tw-mediawiki's Introduction

This repo contains the code for running the mediawiki application on Linux (Ubuntu) based Docker Image on Azure Kubernetes Service.

  1. Setup Azure Infra (AKS) with code in infra folder by running terraform command or by running terraform deploy github action worflow
  2. After a Kubernetes Cluster is setup (AKS or local), run the "helm/setup.sh" to setup the kubernetes components
  3. To change environment from blue to green or vice versa, use the "change prod environment" github action workflow.
  4. To deploy new docker image use "manual deploy code" github action workflow.

GitHub Actions Secrets

ADD AZURE CREDENTIALS IN GITHUB SECRETS

  1. AZURE_CLIENT_ID -> Application (client) ID
  2. AZURE_TENANT_ID -> Directory (tenant) ID
  3. AZURE_SUBSCRIPTION_ID -> Subscription ID

To push new Image to Docker Hub

  1. DOCKER_PASS -> Docker Hub Password

Also accordingly change docker push command in ".github/workflows/change-prod-env.yaml"

Files

  1. /infra -> contains terraform files for Azure Cloud Infrastructure

  2. /helm -> contains Helm charts for kubernetes object

  3. /blue -> contains the deployment file(s) for Blue environment.

  4. /green -> contains the deployment file(s) for Green environment.

  5. setup.sh files contains initial commands to setup the kubernetes objects on the kubernetes cluster.

  6. /src -> contains Dockerfile and required shell script for fetching source and installing dependencies


GitHub Actions Workflows

  1. The Kubernetes Service (Load Balancer) can be switched between Blue and Green Deployments to acheive Blue-Green Deployment Strategy using the "Change Prod Environment" GitHub Actions Workflow.

  2. The "Manual Code Deploy" GitHub Actions Workflow can be used to build and deploy new Docker Image (with Image Tag) to Docker Hub and deploy the same to the Kubernetes deployment (blue or green) of choosing

  3. The "Run Helm Setup" GitHub Actions Workflow can be used to install helm chart on AKS.

  4. The "Terraform" Workflow can be used to deploy terraform code to AKS

tw-mediawiki's People

Contributors

chiragb9 avatar

Watchers

 avatar

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.