gopaddle Deck is a platform to build docker containers and schedule them for continuous integration. Combined with the context of a Kubernetes resources, Deck helps you build containers that are more suitable for Kubernetes deployments.
Why use Deck ?
Deck comes with many capabilities which help kick start a microservice transformation without the need to have deeper knowledge on Docker or Kubernetes.
- Source to Image Conversion - Deck can be used to build Docker images from source code, or from Docker files . When a source code based project is used, Deck automatically converts the source code to Docker images based on the build script provided. When a Docker project is used, Deck creates a Docker Image based on the Dockerfile provided.
- Continuous Integration - Deck automatically builds Docker images and pushes them to Docker registry as and when the source code is committed to a source control repository
- Scalable Build Environments - Deck provides a scalable build environment that helps build multiple containers in parallel.
- Sizing Build Environments - With Deck different build capacity can be set for different build environments based on memory and CPU requirements for building small to large sized Docker containers.
- Bring your own build environments - Builds are carried out in your own Kubernetes environments so that your source code and build environment are secure
- Support for a wide variety of workloads - Deck does not have any constraint on the build tools or the programming languages. It supports almost all Linux based workloads, including .NET core.
- Support for managed and on-premise source control repositories - With Deck, on-premise or managed source control projects can be Dockerized. Currently, Deck supports github, gitlab and bitbucket source control repositories.
- Ease of debugging build issues - Deck provides events, logs and shell access to the build console. This enables developers to debug issues at the time of building Docker containers.
- Predicable Updates - Container artifacts are version controlled for predictable updates and maintenance.
- Registering a Source Control Account - Source control repository where the Docker file or project source code resides
- Registering Cloud Account - A Cloud Account from which Docker Registry and build environment needs to be provisioned. Once a Cloud Account is registered, it automatically recognizes/ creates a Docker Registry in the registered Cloud Account. Deck supports AWS ECR, Google GCR and Azure ACR.
- Kubernetes Cluster - A Cluster provisioned within the cloud account to serve as the build environment. An existing and/or on-premise Kubernetes Cluster can also be used to build Docker containers as long as the Cluster has outbound network access to push the images to the Docker registry. Currently gopaddle supports Amazon EKS, Google GKE, Azure AKS and an existing/on-premise Kubernetes Cluster.
- Allocation Policy - An Allocation Policy to size the build environment for building a container image.