Skip to main content

Platform

Butler comes with a schema to manage an internal Platform for your Digital Organisation, which you can use for your own projects.

Overview

The Welance Platform provides a comprehensive infrastructure and deployment system for managing digital applications. It includes:

  • Pipelines: Complete CI/CD workflows for building, testing, and deploying applications
  • Infrastructure: Infrastructure as Code and configuration management
  • Tenants: Multi-tenant management and configuration

Code Repository

The Platform source code is available on GitLab:

Repository: https://gitlab.com/welance/platform

Platform Components

Pipelines

The Pipelines section contains everything related to CI/CD workflows and deployment automation:

  • Helm: Kubernetes deployment charts for all Welance stack applications
    • Craft CMS, Directus, Node.js, S3, Welance Operator, WordPress
    • Installation guides and default values documentation
  • Templates: Reusable CI/CD job and pipeline templates
    • Jobs: Atomic CI/CD jobs (build, config, deploy, release, setup, test)
    • Pipeline: Complete orchestration pipelines for different application stacks
      • Craft, Directus, Node.js, S3, WordPress
      • Image Release, Kubernetes Operator
  • Container: Centralized Docker images
    • MySQL Backup, PostgreSQL Backup
    • Custom images for platform operations

Infrastructure

The Infrastructure section contains documentation about:

  • Infrastructure as Code (Terraform, Ansible)
  • Configuration management
  • Environment setup and provisioning

Repository: https://gitlab.com/welance/platform/infrastructure

Tenants

The Tenants section contains documentation about:

  • Multi-tenant management
  • Tenant configuration
  • Resource isolation and management

Repository: https://gitlab.com/welance/platform/tenants

Getting Started

To get started with the Welance Platform:

  1. Choose Your Application Stack: Review the available pipeline templates for your application type (Craft, WordPress, Node.js, etc.)

  2. Set Up Your Project: Configure your .gitlab-ci.yml to include the appropriate pipeline template

  3. Configure Variables: Set up required CI/CD variables (PROJECT_ID, deployment targets, credentials)

  4. Deploy: Push your code and let the platform handle building and deployment

Pipeline Templates

The platform provides ready-to-use pipeline templates for:

  • Craft CMS: Full CI/CD with support for Kubernetes, Docker, VM, and Mittwald deployments
  • WordPress: CI/CD with Yarn theme building and Composer dependency management
  • Directus: CI/CD with Docker Compose builds and Kubernetes deployments
  • Node.js: CI/CD with npm builds and Kubernetes deployments
  • S3 Static Sites: CI/CD for static website deployments
  • Image Release: Multi-image Docker builds and releases
  • Kubernetes Operator: Operator build and release workflows

Architecture

The Platform follows a centralized approach:

  • Centralized Pipelines: All orchestration pipelines are defined in the Welance ecosystem
  • Versioned Releases: Pipeline templates are versioned for stability
  • Reusable Jobs: Atomic jobs can be combined into complete workflows
  • GitOps: Kubernetes deployments use GitOps with Argo CD
  • Multi-Target Support: Support for Kubernetes, Docker hosts, Virtual Machines, and Mittwald

Key Features

  • Consistency: Standardized workflows across all projects
  • Maintainability: Centralized updates and improvements
  • Flexibility: Support for multiple deployment targets and application stacks
  • Automation: Complete CI/CD automation from code to production
  • Security: Built-in security best practices and credential management

Documentation Structure

This documentation is organized into:

  1. Pipelines: CI/CD workflows, Helm charts, templates, and container images
  2. Infrastructure: Infrastructure as Code and configuration management
  3. Tenants: Multi-tenant management and configuration

Each section contains detailed documentation, examples, and usage guides for its components.

Support

For questions or issues with the Platform:

  • Review the specific component documentation
  • Check the code repositories on GitLab
  • Contact the Platform team