Skip to content

Commit

Permalink
fix slow loading issue and write docs, lots and lots of docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Fouad committed Nov 21, 2020
1 parent 7a1dc31 commit 9330160
Show file tree
Hide file tree
Showing 20 changed files with 223 additions and 356 deletions.
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright (c) 2017 Praqma
Original Helmsman code is Copyright (c) 2017 Praqma
Robban is Copyright (c) 2020 Tactful ltd

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Visual Web UI to monitor multiple helm releases and to promote images accross th

# How does it work?

Robban uses a simple declarative YAML file to allow you to describe the Helm releases you manage and the application images inside them [example yaml file](https://github.com/Praqma/helmsman/blob/master/examples/example.yaml).
Robban uses a simple declarative YAML file to allow you to describe the Helm releases you manage and the application images inside them [example yaml file](examples/example.yaml).

Robban scans your cluster for helm releases and using JSONPath it disects the images that are deployed there. then it draws a kanban board allowing you to visually see what is deployed where.

Expand All @@ -37,9 +37,9 @@ If you use private helm repos, you will need either `helm-gcs` or `helm-s3` plug
Check the images on [dockerhub](https://hub.docker.com/r/tactful/robban)

```bash
docker run -it -v /path/to/config/dir:/opt/config -p 8080:8080 tactful/robban -f config/myconfig.yaml


docker run -v /path/to/config/dir:/opt/config \
-p 8080:8080 tactful/robban \
-f config/myconfig.yaml
```

# Documentation
Expand All @@ -60,7 +60,9 @@ Robban can be used in three different settings:
- [As a docker image inside a k8s cluster](https://github.com/Praqma/helmsman/blob/master/docs/how_to/deployments/inside_k8s.md)


# Contributing
# Roadmap and Contributing

These are the proposed features planned for the next version [V1 Project](https://github.com/tactful-ai/robban/projects/1). If you are interested in contributing please leave a comment on the issue you can help with.

Pull requests, feedback/feature requests are welcome. Please check our [contribution guide](CONTRIBUTION.md).

Expand Down
35 changes: 35 additions & 0 deletions docs/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Robban
===

Visual Web UI to monitor multiple helm releases and to promote images accross them.

# How to use?


```console
docker run -v /path/to/config/dir:/opt/config \
-p 8080:8080 tactful/robban \
-f config/myconfig.yaml
```

Then visit http://localhost:8080 to manage your helm releases

## Configuration

Refer to [Documentation](https://github.com/tactful-ai/robban/#documentation) for guides on how to configure your cluster.

# License

This Image and the original repo are under [MIT License](https://github.com/tactful-ai/robban/blob/master/LICENSE).

# User Feedback

## Issues

If you have any problems with or questions about this image, please contact us through a [GitHub issue](https://github.com/SISheogorath/readme-to-dockerhub/issues).


## Contributing

You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests.
Refer to Robban [contribution guide](https://github.com/tactful-ai/robban/blob/master/CONTRIBUTION.md) for more info.
11 changes: 0 additions & 11 deletions examples/appsTemplates/README.md

This file was deleted.

2 changes: 0 additions & 2 deletions examples/appsTemplates/apps/puppetserver/common-values.yaml

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions examples/appsTemplates/apps/puppetserver/testing-values.yaml

This file was deleted.

7 changes: 0 additions & 7 deletions examples/appsTemplates/apps/tomcat/common-values.yaml

This file was deleted.

1 change: 0 additions & 1 deletion examples/appsTemplates/apps/tomcat/development-values.yaml

This file was deleted.

1 change: 0 additions & 1 deletion examples/appsTemplates/apps/tomcat/testing-values.yaml

This file was deleted.

106 changes: 0 additions & 106 deletions examples/appsTemplates/config/helmsman.yaml

This file was deleted.

169 changes: 41 additions & 128 deletions examples/example.yaml
Original file line number Diff line number Diff line change
@@ -1,130 +1,43 @@
# version: v3.4.0

# context defines the context of this Desired State File.
# It is used to allow Helmsman identify which releases are managed by which DSF.
# Therefore, it is important that each DSF uses a unique context.
context: test-infra # defaults to "default" if not provided

# metadata -- add as many key/value pairs as you want
metadata:
org: "example.com/$ORG_PATH/"
maintainer: "k8s-admin ([email protected])"
description: "example Desired State File for demo purposes."
key: ${VALUE}

# paths to the certificate for connecting to the cluster
# You can skip this if you use Helmsman on a machine with kubectl already connected to your k8s cluster.
# you have to use exact key names here : 'caCrt' for certificate and 'caKey' for the key and caClient for the client certificate
# certificates:
#caClient: "gs://mybucket/client.crt" # GCS bucket path
#caCrt: "s3://mybucket/ca.crt" # S3 bucket path
#caKey: "../ca.key" # valid local file relative path

settings:
kubeContext: "minikube" # will try connect to this context first, if it does not exist, it will be created using the details below
#username: "admin"
#password: "$K8S_PASSWORD" # the name of an environment variable containing the k8s password
#clusterURI: "$SET_URI" # the name of an environment variable containing the cluster API
#clusterURI: "https://192.168.99.100:8443" # equivalent to the above
#storageBackend: "secret"
#slackWebhook: "$slack" # or your slack webhook url
#reverseDelete: false # reverse the priorities on delete
#### to use bearer token:
# bearerToken: true
# clusterURI: "https://kubernetes.default"
# globalHooks:
# successCondition: "Initialized"
# deleteOnSuccess: true
# postInstall: "job.yaml"
globalMaxHistory: 5

# define your environments and their k8s namespaces
## This is a minimal example.
## It will use your current kube context and will deploy Tiller without RBAC service account.
## For the full config spec and options, check https://github.com/tactful-ai/robban/blob/master/docs/desired_state_specification.md
helmRepos:
tactful-ai: s3://tactful.chart.museum/charts

namespaces:
production:
protected: true
limits:
- type: Container
default:
cpu: "300m"
memory: "200Mi"
defaultRequest:
cpu: "200m"
memory: "100Mi"
- type: Pod
max:
memory: "300Mi"
staging:
default:
protected: false
labels:
env: "staging"
quotas:
limits.cpu: "10"
limits.memory: "20Gi"
pods: 25
requests.cpu: "10"
requests.memory: "30Gi"
customQuotas:
- name: "requests.nvidia.com/gpu"
value: "2"



# define any private/public helm charts repos you would like to get charts from
# syntax: repo_name: "repo_url"
# only private repos hosted in s3 buckets are now supported
helmRepos:
argo: "https://argoproj.github.io/argo-helm"
jfrog: "https://charts.jfrog.io"
#stable: "https://kubernetes-charts.storage.googleapis.com"
#incubator: "http://storage.googleapis.com/kubernetes-charts-incubator"
#myS3repo: "s3://my-S3-private-repo/charts"
#myGCSrepo: "gs://my-GCS-private-repo/charts"
#custom: "https://$user:[email protected]"

# define the desired state of your applications helm charts
# each contains the following:

apps:
argo:
namespace: "staging" # maps to the namespace as defined in namespaces above
enabled: true # change to false if you want to delete this app release empty: false:
chart: "argo/argo" # changing the chart name means delete and recreate this chart
version: "0.8.5" # chart version
### Optional values below
valuesFile: "" # leaving it empty uses the default chart values
test: false
protected: true
priority: -3
wait: true
hooks:
successCondition: "Complete"
successTimeout: "90s"
deleteOnSuccess: true
preInstall: "job.yaml"
# preInstall: "https://github.com/jetstack/cert-manager/releases/download/v0.14.0/cert-manager.crds.yaml"
# postInstall: "https://raw.githubusercontent.com/jetstack/cert-manager/release-0.14/deploy/manifests/00-crds.yaml"
# postInstall: "job.yaml"
# preUpgrade: "job.yaml"
# postUpgrade: "job.yaml"
# preDelete: "job.yaml"
# postDelete: "job.yaml"
set:
"images.tag": $$TAG # $$ is escaped and $TAG is passed literally to images.tag (no env variable expansion)

artifactory:
namespace: "production" # maps to the namespace as defined in namespaces above
enabled: true # change to false if you want to delete this app release empty: false:
chart: "jfrog/artifactory" # changing the chart name means delete and recreate this chart
version: "8.3.2" # chart version
### Optional values below
valuesFile: ""
test: false
priority: -2
noHooks: false
timeout: 300
maxHistory: 4
# additional helm flags for this release
helmFlags:
- "--devel"

# See https://github.com/Praqma/helmsman/blob/master/docs/desired_state_specification.md#apps for more apps options

# the helm releases that you are interested in managing
# usually these are releases of the same Helm chart, but different versions, different customers, etc.
releases:
- name: alpha
namespace: default

- name: test
namespace: default

- name: demo
namespace: default

- name: beta
namespace: default


# defines all the images managed by the Helm chart
# and the JSON-Path for each image tag in the values file
images:
- name: api
path: "api.image.tag"
- name: bot
path: "bot.image.tag"
- name: worker
path: "worker.image.tag"
- name: flower
path: "flower.image.tag"
- name: notebook
path: "notebook.image.tag"
- name: nlu
path: "nlu.image.tag"
- name: vdash
path: "vdash.image.tag"
Loading

0 comments on commit 9330160

Please sign in to comment.