All Projects → bitpoke → wordpress-operator

bitpoke / wordpress-operator

Licence: Apache-2.0 license
Bitpoke Kubernetes operator for WordPress

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects
Smarty
1635 projects

Projects that are alternatives of or similar to wordpress-operator

cdap-operator
CDAP Kubernetes Operator
Stars: ✭ 17 (-89.31%)
Mutual labels:  kubernetes-operator, kubernetes-controller
kubereplay
Seamless integration of goReplay and Kubernetes
Stars: ✭ 30 (-81.13%)
Mutual labels:  kubernetes-operator, kubernetes-controller
K8gb
A cloud native Kubernetes Global Balancer
Stars: ✭ 113 (-28.93%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Kudo
Kubernetes Universal Declarative Operator (KUDO)
Stars: ✭ 849 (+433.96%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Rbacsync
Automatically sync groups into Kubernetes RBAC
Stars: ✭ 197 (+23.9%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Sens8
Kubernetes controller for Sensu checks
Stars: ✭ 42 (-73.58%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Captain
A Helm 3 Controller
Stars: ✭ 129 (-18.87%)
Mutual labels:  kubernetes-operator, kubernetes-controller
port-map-operator
LoadBalancer Service type implementation for home Kubernetes clusters via Port Control Protocol.
Stars: ✭ 25 (-84.28%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Bonny
The Elixir based Kubernetes Development Framework
Stars: ✭ 190 (+19.5%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Operators
Collection of Kubernetes Operators built with KUDO.
Stars: ✭ 175 (+10.06%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Mysql Operator
Bulletproof MySQL on Kubernetes using Percona Server
Stars: ✭ 527 (+231.45%)
Mutual labels:  kubernetes-operator, kubernetes-controller
kotary
Managing Kubernetes Quota with confidence
Stars: ✭ 85 (-46.54%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Airflow Operator
Kubernetes custom controller and CRDs to managing Airflow
Stars: ✭ 278 (+74.84%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Spark On K8s Operator
Kubernetes operator for managing the lifecycle of Apache Spark applications on Kubernetes.
Stars: ✭ 1,780 (+1019.5%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Operator Kit
A library for creating a Kubernetes Operator
Stars: ✭ 275 (+72.96%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Wordpress Operator
WordPress operator for Kubernetes
Stars: ✭ 127 (-20.13%)
Mutual labels:  kubernetes-operator, kubernetes-controller
konsumerator
Kafka Consumer Operator. Kubernetes operator to manage consumers of unbalanced kafka topics with per-partition vertical autoscaling based on Prometheus metrics
Stars: ✭ 20 (-87.42%)
Mutual labels:  kubernetes-operator, kubebuilder
aws-iam-operator
AWS IAM Operator for Kubernetes
Stars: ✭ 23 (-85.53%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Cronjobber
Cronjobber is a cronjob controller for Kubernetes with support for time zones
Stars: ✭ 169 (+6.29%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Strimzi Kafka Operator
Apache Kafka running on Kubernetes
Stars: ✭ 2,833 (+1681.76%)
Mutual labels:  kubernetes-operator, kubernetes-controller

wordpress-operator Build Status

Bitpoke WordPress operator enables managing multiple WordPress installments at scale.

Goals and status

The main goals of the operator are:

  1. Easily deploy scalable WordPress sites on top of kubernetes
  2. Allow best practices for en masse upgrades (canary, slow rollout, etc.)
  3. Friendly to devops (monitoring, availability, scalability and backup stories solved)

The project is actively developed and maintained and has reached stable beta state. Check here the project releases.

The minimum supported Kubernetes version is 1.19.

Components

  1. WordPress operator - this project
  2. WordPress runtime - container image supporting the project goals (https://github.com/bitpoke/stack-runtimes/tree/master/wordpress)

Deploy

Install CRDs

This step is optional. By default helm will install CRDs.

Install kustomize. New to kustomize? Check https://kustomize.io/ Install kubectl. For more details, see: https://kubernetes.io/docs/tasks/tools/install-kubectl/

To install CRDs use the following command:

kubectl apply -f https://raw.githubusercontent.com/bitpoke/wordpress-operator/master/config/crd/bases/wordpress.presslabs.org_wordpresses.yaml

Install controller

Install helm. New to helm? Check https://github.com/helm/helm#install

To deploy this controller, use the provided helm chart, by running:

helm repo add bitpoke https://helm-charts.bitpoke.io
helm install wordpress-operator bitpoke/wordpress-operator

Deploying a WordPress Site

apiVersion: wordpress.presslabs.org/v1alpha1
kind: Wordpress
metadata:
  name: mysite
spec:
  replicas: 3
  domains:
    - example.com
  # image: docker.io/bitpoke/wordpress-runtime
  # tag: latest
  code: # where to find the code
    # contentSubpath: wp-content/
    # by default, code get's an empty dir. Can be one of the following:
    git:
      repository: https://github.com/example.com
      # reference: master
      # env:
      #   - name: SSH_RSA_PRIVATE_KEY
      #     valueFrom:
      #       secretKeyRef:
      #         name: mysite
      #         key: id_rsa

    # persistentVolumeClaim: {}
    # hostPath: {}
    # emptyDir: {} (default)

  media: # where to find the media files
    # by default, code get's an empty dir. Can be one of the following:
    gcs: # store files using Google Cloud Storage
      bucket: calins-wordpress-runtime-playground
      prefix: mysite/
      env:
        - name: GOOGLE_CREDENTIALS
          valueFrom:
            secretKeyRef:
              name: mysite
              key: google_application_credentials.json
        - name: GOOGLE_PROJECT_ID
          value: development
    # persistentVolumeClaim: {}
    # hostPath: {}
    # emptyDir: {}
  bootstrap: # wordpress install config
    env:
      - name: WORDPRESS_BOOTSTRAP_USER
        valueFrom:
          secretKeyRef:
            name: mysite
            key: USER
      - name: WORDPRESS_BOOTSTRAP_PASSWORD
        valueFrom:
          secretKeyRef:
            name: mysite
            key: PASSWORD
      - name: WORDPRESS_BOOTSTRAP_EMAIL
        valueFrom:
          secretKeyRef:
            name: mysite
            key: EMAIL
      - name: WORDPRESS_BOOTSTRAP_TITLE
        valueFrom:
          secretKeyRef:
            name: mysite
            key: TITLE
  # extra volumes for the WordPress container
  volumes: []
  # extra volume mounts for the WordPress container
  volumeMounts: []
  # extra env variables for the WordPress container
  env:
    - name: DB_HOST
      value: mysite-mysql
    - name: DB_USER
      valueFrom:
        secretKeyRef: mysite-mysql
        key: USER
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef: mysite-mysql
        key: PASSWORD
    - name: DB_NAME
      valueFrom:
        secretKeyRef: mysite-mysql
        key: DATABASE
  envFrom: []

  # secret containg HTTPS certificate
  tlsSecretRef: mysite-tls
  # extra ingress annotations
  ingressAnnotations: {}

License

This project is licensed under Apache 2.0 license. Read the LICENSE file in the top distribution directory, for the full license text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].