Giter Site home page Giter Site logo

dataman-cloud / crane Goto Github PK

View Code? Open in Web Editor NEW
749.0 84.0 170.0 21.68 MB

Yet another control plane based on docker built-in swarmkit

Home Page: https://www.shurenyun.com/product-crane.html

License: Apache License 2.0

Makefile 0.19% Go 40.31% Shell 6.43% HTML 24.04% Python 0.77% JavaScript 25.18% Nginx 0.38% CSS 2.70%
crane swarm docker

crane's Introduction

Crane

Join the chat at https://gitter.im/Dataman-Cloud/crane Build Status Go Report Card codecov

Crane

Crane, maintained by dataman-cloud, is a docker control panel based on latest docker release. Besides swarm features, Crane implements some badly needed functionalities by enterprise user, such as private registries authentication, ACL and application DAB(distributed application bundle) sharing. The smart fuzzy search function give user quickly access to the desired page. Crane can help storing registry auth pair, from where you can choose a predefined registry auth pair when deploying a DAB, without the need to docker login when access private image. Crane can also help sharing your private images with your coworkers easily.

Features

  • Swarm features: Portal every feature of swarm almost. Crane has highlighted the common swarm functions and improved the user experiences through the friendly frontend.
  • Stack Templates Management: User can save a running stack as a template, by which others can deploy repeatly.
  • Image Management: The private image owned by user can be publiced to others.
  • Fuzzy Search: A in-memory index maintained by the backend serves the function.
  • Node Operation: Crane details about a node such as kernel version, docker info, docker images and also containers running on the node.
  • Network Management: The overlay network CRUD.
  • Registries Authentication Management: You can save your private registry username/password pair to Crane, with which a to-be-deployed stack with restricted image access can attach.
  • WebSSH: Command 'docker exec' is the magic behind it.

OS supported

  • Ubuntu 12.04 Server
  • Ubuntu 14.04 Server
  • CentOS 7.X
  • MacOS 10.x

Installation

Prerequisites

Option 1: Stable version in one line

Please read the release/v1.0.6/README.md

Option 2: development workflow from docker build

  • build crane image
$ ./bin/build-push-or-up.sh build
  • tips to get real host ip based on eth0 interface:
ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'
  • docker-compose up crame service
$ CRANE_IP=`<your real host ip,such as 192.168.1.x>` ./bin/build-push-or-up.sh up
  • remove crane container
$ ./bin/build-push-or-up.sh down

CRANE_IP should be assigned the real host ip address of the running Crane host which is the swarm manager also.

How to use it

Demo Crane

Build From Source

Clone crane in GoPath

> mkdir -p ${GOPATH}/src/github.com/Dataman-Cloud
> cd ${GOPATH}/src/github.com/Dataman-Cloud
> git clone https://github.com/Dataman-Cloud/crane.git crane

And make sure you have go (>= 1.6) go into the crane dir

> make

Please click Crane User Guide in Chinese for more details.

Conventions

repo branch

  • master: actively moving foward. PR will be merged into this master branch.
  • release: Released versions. Tagged commits or hotfix PR will be pushed here. Maintained by the repo owners.

Trouble-shooting

Community

Gitter

Wechat group: 数人云Crane技术交流群

Contribution

Both pull-requests or issues are welcomed from the community.

License

Crane is available under the Apache 2 license.

crane's People

Contributors

ccissie avatar cmingxu avatar gengliu avatar gitaiqaq avatar gitter-badger avatar jfchen-dataman avatar merryfox avatar muicoder avatar my9074 avatar rainflood avatar stephenpcg avatar upccup avatar vitan avatar willbern avatar xiaods avatar xychu avatar yqguodataman avatar zengbotang avatar zhangsean 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  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

crane's Issues

Fail to install crane because of pulling image 'digitallyseamless/nodejs-bower-grunt:5' error

Actual Behavior:

  • What is the issue?

Fail to install crane, info like this:

# CRANE_IP=172.16.1.12 ./bin/build-push-or-up.sh up Unable to find image 'digitallyseamless/nodejs-bower-grunt:5' locally 5: Pulling from digitallyseamless/nodejs-bower-grunt 8ad8b3f87b37: Pulling fs layer 751fe39c4d34: Pulling fs layer ae3b77eefc06: Pulling fs layer 7783aac582ec: Waiting 393ad8a32e58: Waiting 63ac16987eeb: Waiting 9feb200db06a: Waiting 3d4b596e06e1: Waiting docker: error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/ec/ecd63549014ec070b1c2f2cd656e9675ef7b3254d558ee43b5e34cbebf65527b/data?Expires=1475053063&Signature=aw9GcF2sKCM-eoQM8uIcbTiBGTqLXyPTR-cqYKlPCfKl3rXGI5IiEq4F9kAqZHqEg2tY3BfdrZE0LHrs6yGpYxmXuund0R1eVF2-A3LbaJ~NlCVeLMtMZ2PQQV9H2GhrOS4yQkHkxHRa2JHQfL5QBuGNkP9AWgdEdNWE2gkz96g_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: EOF.

But there is not problem when docker pull digitallyseamless/nodejs-bower-grunt:5.

# docker pull digitallyseamless/nodejs-bower-grunt:5 5: Pulling from digitallyseamless/nodejs-bower-grunt 8ad8b3f87b37: Pull complete 751fe39c4d34: Pull complete ae3b77eefc06: Pull complete 7783aac582ec: Pull complete 393ad8a32e58: Pull complete 63ac16987eeb: Pull complete 9feb200db06a: Pull complete 3d4b596e06e1: Pull complete Digest: sha256:5c1635e448bacedbdae5dc4fbf5dff71fed1a76d51b012be4a4637bde0de70bd

  • What is the expected behavior?

Installation should be successful.

CodePen (or steps to reproduce the issue): *

  • CodePen Demo which shows your issue:

    CRANE_IP=172.16.1.12 ./bin/build-push-or-up.sh up

  • Details:

    v1.0.5

Angular Versions: *

  • Angular Version:
  • Angular Material Version:

Additional Information:

  • Browser Type: *

  • Browser Version: *

  • OS:

    Centos 7.2

  • Stack Traces:

界面存在小bug

Actual Behavior:

  • What is the issue? *
    当点击搜索后,再点击切换语言。
    此时搜索界面并没有隐藏,并且导致不能切换语言。
  • What is the expected behavior?
    image

CodePen (or steps to reproduce the issue): *

  • CodePen Demo which shows your issue:
  • Details:

Angular Versions: *

  • Angular Version:
  • Angular Material Version:

Additional Information:

  • Browser Type: *
  • Browser Version: *
  • OS: *
  • Stack Traces:

update api doc

The api doc is deprecated, we'd better to update them. Find a site to serve the api-doc is a good idea.

ubuntu 12.04 supported

Swarm cluster have been running!
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use the bundle feature of the Docker experimental build.

More info:
https://docs.docker.com/compose/bundles

Removing rolex_rolex_registry_1
Removing rolex_rolex_1
Starting rolex_rolex_db_1
Recreating 57cef041743f_rolex_rolex_registry_1
Recreating 62545171d5f2_rolex_rolex_1

ERROR: for rolex_db Cannot start service rolex_db: oci runtime error: apparmor failed to apply profile: no such file or directory

ERROR: for rolex_registry Cannot start service rolex_registry: oci runtime error: apparmor failed to apply profile: no such file or directory

ERROR: for rolex Cannot start service rolex: oci runtime error: apparmor failed to apply profile: no such file or directory
ERROR: Encountered errors while bringing up the project.

got an error while building registry

when I exec the comaand :CRANE_IP=192.168.59.105 ./bin/build-and-start.sh

I got the following error:
ERROR: for crane_registry Cannot start service crane_registry: oci runtime error: exec: "/entrypoint.sh": permission denied

How about make Crane release package into single image?

For now Crane installation is easy enough by only one line of bash command, but it occupy 4 containers MySQL, Crane Api, Crane frontend and Registry respectively, the total size of images upto 1G, need to improve but here is what I think

1, make all components into one single image/container, this is simple but lack the flexibility if user want make there own version.

2, leave the deployment/installation decision to Crane users, they can choose what DB to use, how to serve static files and how to connect a registry(Crane version or Private registry setup by themselves)

add batch-opration on table-list

Actual Behavior:

  • add the feature of batch-opration on table-list*
  • In table list , the oprations of “删除”、“扩展”、“停止”、“修改任务数”、“Kill”、“Kill&Scale” need batch.

Demo is dead

I'd like to access the demo but it seems like the demo app is dead.

MacOSX Docker Compose

Expected behavior

get docker compose build up all services

Actual behavior

not starting all services

docker-compose up -d

WARNING: Image for service crane_registry was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Building crane
ERROR: Error parsing reference: "crane:" is not a valid repository/tag

I guess something is wrong with the tag variable of docker images.

Information about the Issue

problems with the front-end if using docker-compose up -d with mac osx sierra

can you provide more details about Mac OSX boostrapping for Mac OSX/docker-machine (ip, volumes,...) ?

Steps to reproduce the behavior

  1. cd deploy
  2. docker-compose up -d

安装crane面版时报错

安装crane面版时报错。
服务器ubuntu server 14.04.5
执行下面代码进行安装时报错
CRANE_IP=192.168.88.88 VERSION=v1.0.5 ./deploy.sh
Checking the node status
./node-init.sh: 3: set: Illegal option -o errtrace

把node-init.sh第三行注释掉就通过了。

service information displayed error

eg: use images:zookeeper

set env like follow:

ZOO_MY_ID:1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

when the services deployed ;
view the service information, the env show like this:

ZOO_MY_ID 1
ZOO_SERVERS: server.1

did not display the full values!

Error when view Terminal of Mysql Project

wechatimg1
Actual Behavior:

  • What is the issue? *

Version: 1.0.0-e4d31ca

1.Using Image Templates to deploy Mysql project. Json file as default. --> Then the task state is always "failed".

2.Go to the service page, then go to the container page, click "Terminal" tag, Error occur as the screenshot.

  • What is the expected behavior?

1.Then the task state should not be "failed".

2."Terminal" tag should not show things like this.

CodePen (or steps to reproduce the issue): *

  • CodePen Demo which shows your issue:
  • Details:

Angular Versions: *

  • Angular Version:
  • Angular Material Version:

Additional Information:

  • Browser Type: *
  • Browser Version: *
  • OS: * Centos 7.2
  • Stack Traces:

crane 安装出错——"crane:" is not a valid repository/tag

Expected behavior

安装成功

Actual behavior

安装过程报错
Building crane
ERROR: Error parsing reference: "crane:" is not a valid repository/tag

or

Building blackmamba
ERROR: Error parsing reference: "blackmamba:" is not a valid repository/tag

Information about the Issue

docker-compose 在build crane和blackmamba时,没有正确读出TAG这个环境变量。
尝试将deploy/docker-compose.yml的两处:${TAG}删掉,问题解决

Steps to reproduce the behavior

  1. CentOS7,安装配置好docker相关软件
  2. 下载解压crane。执行 CRANE_IP=172.18.24.69 ./bin/build-push-or-up.sh up

installation errors

Option 1: Stable version in one line

I got -

Creating network "rolex_default" with the default driver
Pulling rolex_registry (catalog.shurenyun.com/library/registry:rolexv1.0.4)...
Pulling repository catalog.shurenyun.com/library/registry
ERROR: Error: Status 504 trying to pull repository library/registry: "<html><body><h1>504 Gateway Time-out</h1>\nThe server didn't respond in time.\n</body></html>\n\n"

I think the service of catalog.shurenyun.com is down.

Service cannot be explicitly attached to "ingress" network which is a swarm internal network"

使用模版部署时报错:Service cannot be explicitly attached to "ingress" network which is a swarm internal network"

{"code":10001,"data":{},"message":"rpc error: code = 3 desc = Service cannot be explicitly attached to "ingress" network which is a swarm internal network","source":"docker"}

docker 版本 1.12.2
docker-compose 版本 1.8.1
Crane版本是1.0.5

CentOS 7.2

go vet need add to integration testing

Actual Behavior:

  • What is the issue? *

found go vet reports many bugs. it should be notice to developer.

Testing Example

$ go vet ./src/utils/config/.../
src/utils/config/config.go:15: struct field tag `env:"CRANE_DOCKER_TLS_VERIFY" envDefault:false,required:"true"` not compatible with reflect.StructTag.Get: bad syntax for struct tag value
src/utils/config/config.go:53: no formatting directive in Fatalf call
exit status 1

[Polling Station] If we store the log history and how to make it if yes

As the subject, Crane is supporting real-time logs. If we add the log history feature? AFAIK, the ElasticSearch or other distributed FS have to be integrated into, which will heavy the crane project much. But the FeatureFlag logHistory can light it maybe.

So we are looking for your advice?

  1. Implement it? yes or no
  2. how to solve it? ElasticSearch or others?

bug? ingress网络和自定义网络的device都分配了两个ip

/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
64: eth0@if65: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP
link/ether 02:42:0a:ff:00:0a brd ff:ff:ff:ff:ff:ff
inet 10.255.0.10/16 scope global eth0
valid_lft forever preferred_lft forever
inet 10.255.0.9/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:aff:feff:a/64 scope link
valid_lft forever preferred_lft forever
66: eth1@if67: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:13:00:06 brd ff:ff:ff:ff:ff:ff
inet 172.19.0.6/16 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe13:6/64 scope link
valid_lft forever preferred_lft forever
69: eth2@if70: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP
link/ether 02:42:ac:10:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.3/16 scope global eth2
valid_lft forever preferred_lft forever
inet 172.16.0.2/32 scope global eth2
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe10:3/64 scope link
valid_lft forever preferred_lft forever

在容器的详情页只能看到一个
网络配置

网络 网关 IP 地址 MAC 地址
ingress 10.255.0.10 02:42:0a:ff:00:0a
test2 172.16.0.3 02:42:ac:10:00:03

registry db store

registry push image,in addition to inform the way,should be combined with training in rotation.

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.