Giter VIP home page Giter VIP logo

subshell / o-neko Goto Github PK

View Code? Open in Web Editor NEW
13.0 4.0 3.0 11.99 MB

O-Neko lets everyone preview and try out new features of your software by creating on-demand test environments for feature branches. O-Neko is Kubernetes-native and allows for flexible project configurations via Helm charts.

Home Page: https://subshell.github.io/o-neko/

License: Apache License 2.0

Dockerfile 0.14% TypeScript 29.33% JavaScript 0.27% HTML 12.02% Java 52.79% SCSS 5.44%
kubernetes deployment-automation docker development-workflow cats helm-automation k8s helm

o-neko's Introduction

O-Neko Logo

O-Neko

CircleCI Docker Image Version (latest semver)

O-Neko lets everyone preview and try out new features of your software by creating on-demand test environments for feature branches. O-Neko is Kubernetes-native and allows for flexible project configurations via Helm charts. Make sure developers, testers, project managers, product owners and clients are on the same page! Preview and test before you merge!

O-Neko login screen O-Neko dashboard O-Neko project list

Documentation and installation guide

You can find our documentation here.

Features

  • Deploy development versions (e.g. every branch) to Kubernetes with one click
  • Configure projects via Helm charts
  • Automatically re-deploy running versions when the corresponding Docker image has changed (configurable per project and version)
  • Automatically stop running versions after a specific time (configurable per project and version)
  • Select variables that allow fast changes to frequently used configuration settings (e.g. server URLs)
  • View container logs fetched from Kubernetes and add links to your external logging system

Pre-requisites

  • Generally, nearly every project able to run in Kubernetes can be deployed with O-Neko
  • You need Docker containers of all project versions you want to deploy with O-Neko
  • You need Helm charts for each project you want to deploy. The charts need to be hosted in a chart registry.
    • Currently we support standard Helm chart registries and Helm GCS
    • The Docker image tag and the image pull policy need to be configurable
  • O-Neko works with any recent kubernetes versions (according to the Kubernetes client library we use)

How does it work?

  • O-Neko is running inside your Kubernetes cluster
  • A project consists of a Docker image that resides in any Docker registry. O-Neko is polling all tags that are available for this image and lets you deploy them.
  • The configuration is done via Helm charts (values.yaml) and template variables. O-Neko provides some variables (e.g. the docker image tag) but you can also define your own. The configuration and the variables can be overridden by specific versions.
  • The Helm release status of all deployments is monitored by O-Neko and can be seen in the web frontend

Contributing

If you want to report an issue or work on O-Neko please read our contributing page.

Original authors

This project has been started in late 2017 as a "lab day" project by @philmtd, @reinkem, @schwerlaut, @steffenkuche and @tom-schoener.


Take a look at this project from the subshell team. We make Sophora: a content management software for content creation, curation, and distribution. Join our team! | Imprint

o-neko's People

Contributors

dependabot[bot] avatar muffl0n avatar philmtd avatar schwerlaut avatar slinils avatar steffenkuche avatar tom-schoener avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

o-neko's Issues

Distinguish readable and writable entities

O-Neko currently has a number of Java-Model-Classes (Project, DockerRegistry, etc...), but they are all always mutable.
I'd propose to have a readable and a writable version of each.
Of course they should offer methods to convert to the other type.
Based upon this two things can be achived:

  • Write a caching layer on model level
  • Have a in-memory-repo implementations (handy for unit-tests and a spring-profile without actual DB)

The login parameters should be encoded correctly in the login request

Currently it is impossible to login with passwords using specific special characters because the form data is not correctly URL encoded.

This can be tested e.g. by using this as a password: djx+x2XeoZ98QvNjVQaCCYEVexGQCqfxND*jdjfVVo

AC:

  • The login request parameters should be correctly encoded
  • Other requests we initiate should also be checked for encoding errors

Helm Registries can not be editied

I just stumbled upon this:
Once a helm registry is added it can no longer be modified (at least when you try to modify username and password).

The browser-log reveals this answer:
Error while interacting with helm registry BASEURL/chartrepo/sophora (sophora): Error: repository name (sophora) already exists, please specify a different name

While adressing this issues: This might be a good chance to give docker registries a better icon than this weird cowboy hut.

SelectVariables should select the current value when in the editing view

When a select variable has a value it should show as selected in the editing view. Currently the select-value shows as empty. The values are correctly visible on the dashboard.

Buggy edit view:
edit-view-bug

Correct dashboard view:
dashboard-ok

Edit: Apparently sometimes it works, though whether it works depends on the version. I could not find obvious similarities between the working or broken versions though.

Passwords can not be changed

Currently it is not possible to change a user's password because the authentication property in the object is not modification aware and does not cause the user to be dirty. Thus, the repository does not update the user in the database.

helm support

Add support for helm charts and remove the old way of editing kubernetes resources directly in O-Neko.
A project version should therefore only contain a values.yaml.

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.