All Projects → AcalephStorage → Kontinuous

AcalephStorage / Kontinuous

Licence: apache-2.0
The Kubernetes Continuous Integration & Delivery Platform (CI/CD) 🔄

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kontinuous

Concourse
Concourse is a container-based continuous thing-doer written in Go.
Stars: ✭ 6,070 (+5178.26%)
Mutual labels:  ci, continuous-integration, continuous-delivery, ci-cd
Ccmenu
CCMenu is a Mac application to monitor continuous integration servers.
Stars: ✭ 306 (+166.09%)
Mutual labels:  ci, continuous-integration, continuous-delivery, ci-cd
Drone
Drone is a Container-Native, Continuous Delivery Platform
Stars: ✭ 24,287 (+21019.13%)
Mutual labels:  ci, continuous-integration, continuous-delivery, ci-cd
Gocd
Main repository for GoCD - Continuous Delivery server
Stars: ✭ 6,314 (+5390.43%)
Mutual labels:  ci, continuous-integration, continuous-delivery, ci-cd
Cml
♾️ CML - Continuous Machine Learning | CI/CD for ML
Stars: ✭ 2,843 (+2372.17%)
Mutual labels:  ci-cd, continuous-integration, continuous-delivery, ci
www.go.cd
Github pages repo
Stars: ✭ 39 (-66.09%)
Mutual labels:  continuous-integration, continuous-delivery, ci, ci-cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+47.83%)
Mutual labels:  ci, continuous-integration, continuous-delivery, ci-cd
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-67.83%)
Mutual labels:  continuous-integration, continuous-delivery, ci, ci-cd
Lambdacd
a library to define a continuous delivery pipeline in code
Stars: ✭ 655 (+469.57%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (+292.17%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Abstruse
Abstruse is a free and open-source CI/CD platform that tests your models and code.
Stars: ✭ 704 (+512.17%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Screwdriver
An open source build platform designed for continuous delivery.
Stars: ✭ 870 (+656.52%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Agola
Agola: CI/CD Redefined
Stars: ✭ 783 (+580.87%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Git Push Deploy
Simple Automated CI/CD Pipeline for GitHub and GitLab Projects
Stars: ✭ 21 (-81.74%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Bzppx Codepub
暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.
Stars: ✭ 471 (+309.57%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Haiku
🚀 Instant Heroku deploys from GitHub branches
Stars: ✭ 17 (-85.22%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Orkestra
Functional DevOps with Scala and Kubernetes
Stars: ✭ 102 (-11.3%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Origin
Conformance test suite for OpenShift
Stars: ✭ 8,046 (+6896.52%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Flow Core X
Powerful and user-friendly CI / CD server with high availability, parallel build, agent scaling
Stars: ✭ 1,108 (+863.48%)
Mutual labels:  ci, continuous-integration, ci-cd
Pipelines
Build pipelines for automation, deployment, testing...
Stars: ✭ 105 (-8.7%)
Mutual labels:  ci, continuous-integration, continuous-delivery

Kontinuous

Kontinuous - The Kubernetes Continuous Integration & Delivery Platform

Are you sick of having to deal with Jenkins and its plugins? Getting a headache from trying to get your builds working in Kubernetes? Kontinuous is here to save the day!

Kontinuous is a Continuous Integration & Delivery pipeline tool built specifically for Kubernetes. It aims to provide a platform for building and deploying applications using native Kubernetes Jobs and Pods.

This is a Work In Progress designed to gather feedback from the community so has fairly basic functionality. Please file Issues (or better yet PRs!) so we can build the 👌 CI/CD platform for K8s

Features

Kontinuous currently offers the following features:

  • A simple Kubernetes-like spec for declaring delivery pipelines
  • Flexible stages - Command execution, Docker builds and publishing to local or remote registries
  • Integration with Github for builds and status
  • Slack notifications
  • A CLI tool for querying pipelines, build status and logs

We've got lots more planned, see the Roadmap or Github issues to get in on the action!

Running Kontinuous

Getting Started

Before running Kontinuous, it needs to be added as a github OAuth Application here. The Client ID and Client Secret will be used in running Kontinuous.

The kubernetes-cli can bootstrap a kontinuous setup on a running Kubernetes cluster. This requires kubectl to be in the PATH and configured to access the cluster.

$ kontinuous-cli --namespace {namespace} \
    --auth-secret {base64 encoded secret} \
    --github-client-id {github client id} \
    --github-client-secret {github client secret}

Parameters:

parameter description
--namespace The namespace to deploy Kontinuous to. This defaults to kontinuous
--auth-secret A base64 encoded secret. This is used by kontinuous to provide JWT for authentication. This can be any base64 encoded string
--github-client-id The Github client ID provided when registering kontinuous as a Github OAuth application
--github-client-secret The Github client secret provided when registering kontinuous as a Github OAuth application

This will launch kontinuous via the locally configured kubectl in the given namespace together with etcd, minio, a docker registry, and kontinuous-ui. This expects that the kubernetes cluster supports the LoadBalancer service.

Once a public IP for kontinuous-ui is available, the Github OAuth Application settings needs to be modified to reflect the actual IP address of kontinuous-ui for the Homepage and Callback URL.

Alternatively, for more customization, a sample yaml file for running kontinuous and its dependencies in Kubernetes can be found here. More details can be found here.

Once running, add a .pipeline.yml to the root of your Github repo and configure the webhooks.

Example pipelines can be found in /examples

The CLI client or API can be used to view build status or logs.

Pipeline Specification

Pipeline specification should be at the root directory of the repository. This defines the stages of the builds. More details about pipeline spec creation can be found here.

---
kind: Pipeline
apiVersion: v1alpha1
metadata:
  name: kontinuous
  namespace: acaleph
spec:
  selector:
    matchLabels:
      app: kontinuous
      type: ci-cd
  template:
    metadata:
      name: kontinuous
      labels:
        app: kontinuous
        type: ci-cd
    notif:
      - type: slack
    secrets:
      - notifcreds
      - docker-credentials
    stages:
      - name: Build Docker Image
        type: docker_build

This example only has one stage, build a docker image.

Clients

There are two clients currently available:

Kontinuous CLI

The CLI tool is the one that is used in the gettings started section. It can bootstrap Kontinuous to a running Kubernetes Cluster and can access details on Kontinuous pipelines and builds.

More info about the CLI can be found here and the binary can be downloaded here.

Kontinuous UI

Kontinuous UI is a web based client for Kontinuous. Bootstrapping Kontinuous using the CLI will install the UI on the Kubernetes Cluster too. More info about the UI can be found here.

API

Kontinuous is accessible from it's API and docs can be viewed via Swagger. More details about using the API and Authentication can be found here.

Development

Building kontinuous from source is done by:

$ make deps build

Build the docker image:

$ docker build -t {tag} .

Roadmap

  • [ ] More stage types - wait/approvals, vulnerability/security testing, container slimming, load testing, deploy tools (Helm, DM, KPM, etc)
  • [ ] Full stack tests - Spin up full environments for testing
  • [ ] Advanced branch testing - Review/Sandbox environments
  • [ ] Metrics - Compare build performance
  • [ ] Notification service integration - Email, hipchat, etc
  • [ ] Web based management Dashboard
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].