Giter VIP home page Giter VIP logo

containerum's Introduction

Build Status GitHub release Twitter Follow

Containerum logo

Overview

Containerum is a Web UI for Kubernetes. Containerum includes tools for simple CI/CD pipelines setup and team management. Release notes are available here.

  • Runs on top of any Kubernetes cluster
  • Imports the resources already existing in Kubernetes clusters

web-ui

Containerum UI consists of several components:

  • api-gateway provides routing for Containerum components
  • user-manager is a service for managing users, groups, credentials for Containerum
  • resource manages Kubernetes namespace objects: deployments, ingresses, etc.
  • permissions manage user access to enable teamwork
  • kube-api is a set of API for communication between Containerum and K8s
  • auth handles user authorization and token management
  • mail is a mail server and newsletter template manager
  • ui is the GUI for Containerum
  • solutions is a service for launching pre-built application configurations
  • volume-manager is a storage class manager
  • nodeMetrics is a Prometheus-based service for monitoring the node resource utilization
  • events-api is an API that formats events data from the DB and passes it to Containerum
  • kube-events sources events from the Kubernetes cluster and writes them in the database
  • kube-importer is a service that imports pre-existing Kubernetes objects to Containerum
  • chkit is a CLI for Containerum

and 2 databases:

  • MongoDB
  • PostgreSQL

Basically, Containerum architecture looks like this:

Containerum_components

Prerequisites

Before installing Containerum make sure you have the following components:

How to install

To launch Containerum on your Kubernetes Cluster without metrics collection run:

helm repo add containerum https://charts.containerum.io
helm repo update
helm install containerum/containerum

To enable collecting resource utilization metrics, install Containerum with Prometheus:

helm repo add containerum https://charts.containerum.io
helm repo update
helm install containerum/containerum —-set tags.monitoring=true

If you already have Prometheus in your cluster and want to use it to display node utilization in Containerum Web UI, install Containerum with the parameters below. Containerum is compatible with Prometheus 6.7.4 from the official Helm repository.

helm repo add containerum https://charts.containerum.io
helm repo update
helm install containerum/containerum —-set nodemetrics.env.local.PROMETHEUS_ADDR=http://{PROMETHEUS_SVC_NAME}:{PROMETHEUS_SVC_PORT}

This will install Containerum and create two Ingresses to expose it. You can view the Ingresses with kubectl get ingress.

Note 1: Containerum allows importing existing resources (deployments, services, etc.). To specify, which namespaces SHOULD NOT be imported, set the following tag during installation and list the namespaces after CH_KUBE_IMPORTER_EXCLUDED_NS=.

--set kube-importer.env.global.CH_KUBE_IMPORTER_EXCLUDED_NS="default,kube-system"

Note 2: To create deployments in Containerum you need to have an application node. In case you use only one node, make sure it is labeled as slave. To add the label, run:

kubectl label node ubuntu-01 role=slave

where ubuntu-01 is the name of your node.

To be able to reach Containerum Web UI and the API, add the machine IP address to /etc/hosts, e.g.:

127.0.0.1 local.containerum.io api.local.containerum.io

where 127.0.0.1 is the address of your machine with Containerum.

Now you can access Containerum Web UI at local.containerum.io.

Default username: [email protected]

Password: verystrongpassword

Getting started

Containerum has an intuitive interface. Yet we recommend starting with learning the object types in Containerum as well as the instructions on configuring Containerum in our Docs.

Don't forget to install chkit CLI (from source code or binaries - whatever you prefer!).

Roadmap

To keep track of roadmap implementation, please refer to Containerum Projects page.

  • Add events collection and notifications

  • Add custom Dashboards

  • Add integration with Jira

  • Add integration with GitLab

  • Add reporting tools

  • Add project visualization

  • Create scripts to setup CI/CD Pipelines for

    • Jenkins
    • TeamCity
    • Bamboo
    • GitLab
    • Travis
    • Codeship
    • Add pipeline management to chkit
    • Add pipeline visualization to UI
  • Add node utilisation charts to the Dashboard

  • Add Solutions and Marketplace

    • Add Solutions
    • Add Marketplace
  • Add integration with Helm

  • Implement ‘Project’ entity

    • Add Projects
    • Add user groups to Projects
    • Add users to Projects
    • Add role management to Projects
    • Add role management to stage environments
    • Add Projects to UI (CRUD)
    • Add recurring checking of completed fields
    • Create Events Server to track events in Projects
  • Create Stage environments

  • Implement revision control for stage environments

    • Add revision history within a stage
    • Add version change confirmation in production
    • Add revision control
    • Add automated rollbacks
    • Implement rollback mechanism
    • Implement update of changed files only
  • Implement revision control for Projects

  • Add admin control features

Contributing

We welcome any help from the open source community. To submit your contributions, fork the project you want to contribute to (e.g. permissions, auth, etc.), commit changes and create a pull request to the develop branch. We will review the changes and include them to the project. Read more about contributing in this document.

Issues and Support

Please submit any comments and report Containerum project bugs or issues in this repository. In case you have questions about Containerum, there are several ways you can contact our team: by filling out the form on our website or by sending us an email at [email protected].

Docs

You can find the Documentation in the Docs section on our website or in the Docs repository here on GutHub. Please, feel free to contribute to the Docs to help us make them more accurate and comprehensive.

License

Copyright (c) 2015-2019 Containerum.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

containerum's People

Contributors

iliad avatar kfeofantov avatar margotuleninova avatar mashuklya avatar voskvv avatar

Stargazers

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

Watchers

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

containerum's Issues

Test fails on static searcher

After fileb0x update static FS is broken.

?       github.com/containerum/containerum/embark/pkg/cli/install       [no test files]
--- FAIL: TestStatic (0.00s)
    searcher_test.go:25: test case 0: component "auth" must exist

stuck at pending mongodb

kubectl get pods

like this:

binging-chimp-api-gateway-7788fb988b-n4kd5 1/1 Running 0 15m
binging-chimp-auth-59fb7d5698-qgg8l 1/1 Running 0 15m
binging-chimp-kube-66cfb8fcb6-htjsq 0/1 ContainerCreating 0 15m
binging-chimp-kube-importer-7f4dd84cf9-zbv8k 0/1 ContainerCreating 0 15m
binging-chimp-mail-5d6ffd6dc6-m49d7 1/1 Running 0 15m
binging-chimp-mongodb-7875948fc-8j85t 0/1 ContainerCreating 0 1m
binging-chimp-nodemetrics-6d5fff4dd6-4t82l 1/1 Running 0 15m
binging-chimp-permissions-99df5d45c-64k5h 1/1 Running 1 15m
binging-chimp-postgresql-6bb8b57c4b-pmq7b 1/1 Running 0 15m
binging-chimp-resource-5ff7cfd4dd-kt86m 0/1 CrashLoopBackOff 7 15m
binging-chimp-solutions-5566f895d6-8cc77 1/1 Running 1 15m
binging-chimp-ui-c88548686-5n98m 1/1 Running 0 15m
binging-chimp-user-manager-85f7858fd-52jfq 1/1 Running 1 15m
binging-chimp-volume-5db9b4c55b-9zp9p 1/1 Running 1 15m

And, sometime I install containerum, there is not ui component.

Someone help me please? Thanks!

Permissions service doesn't start (v. 1.0.18-rc.6)

logs:

{"addr":"torpid-lemur-postgresql:5432","component":"db","level":"info","msg":"run migrations","time":"2018-07-24T08:29:30Z"}
{"addr":"torpid-lemur-postgresql:5432","error":null,"level":"info","msg":"migrate up","new_ver":9,"old_ver":9,"time":"2018-07-24T08:29:30Z"}
NAME:
   permissions - A new cli application

USAGE:
   permissions [global options] command [command options] [arguments...]

VERSION:
   v0.0.1

DESCRIPTION:
   Resources permissions management service for Container hosting

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --mode value                   (default: "release") [$MODE]
   --log_level value              (default: 4) [$LOG_LEVEL]
   --db_user value                (default: "postgres") [$DB_USER]
   --db_pass value                (default: "zwMelyJLI5") [$DB_PASSWORD]
   --db_host value                (default: "torpid-lemur-postgresql:5432") [$DB_HOST]
   --db_base value                (default: "containerum") [$DB_BASE]
   --db_sslmode                   (default: false) [$DB_SSLMODE]
   --listen_addr value            (default: ":4242") [$LISTEN_ADDR]
   --auth_addr value              (default: "torpid-lemur-auth:1112") [$AUTH_ADDR]
   --kube_api_addr value          (default: "torpid-lemur-kube:1214") [$KUBE_API_ADDR]
   --user_addr value              (default: "torpid-lemur-user-manager:8111") [$USER_ADDR]
   --billing_addr value            [$BILLING_ADDR]
   --resource_service_addr value  (default: "torpid-lemur-resource:1213") [$RESOURCE_SERVICE_ADDR]
   --volume_manager_addr value     [$VOLUME_MANAGER_ADDR]
   --solutions_addr value          [$SOLUTIONS_ADDR]
   --cors                         (default: false)
   --help, -h                     show help (default: false)
   --version, -v                  print the version (default: false)
Error: clients setup errors: [missing configuration for billing service missing configuration for volume-manager service]

Readiness probe failed: MongoDB shell version v3.6.6 connecting to: mongodb://127.0.0.1:27017 2018-08-13T09:02:26.516+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused

hi i deployed containerum on kuberntes cluster but unexpectedly i am gettig mongo db error.

Readiness probe failed: MongoDB shell version v3.6.6 connecting to: mongodb://127.0.0.1:27017 2018-08-13T09:02:26.516+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 2018-08-13T09:02:26.516+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed
Back-off restarting failed container

i deployed "helm install containerum/containerum --version 1.0.20-rc.2"

please refer mongodb and resource logs

logs-from-resource-in-terrific-gorilla-resource-6796cf66bd-sptmz.txt
logs-from-terrific-gorilla-mongodb-in-terrific-gorilla-mongodb-6fbcb9bcbd-tgb4g.txt
screen shot 2018-08-13 at 6 10 21 pm
screen shot 2018-08-13 at 6 09 54 pm
screen shot 2018-08-13 at 6 09 30 pm
screen shot 2018-08-13 at 6 09 12 pm

is there any sollution to overcome this error ?

Regards
Abhilash

Can not login

After installation, the interface opens, but you can't log in, and there is no error

Add user lists to groups

When I add a user to a group, I think it would be more convenient to choose a user from the list of existing users instead of typing an email of each user I want to add.

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.