Code Monkey home page Code Monkey logo

ci-in-a-box's People

Contributors

stono avatar

Stargazers

 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

ci-in-a-box's Issues

Generic "cluster"

At the moment the kubernetes folder contains preprod and prod, really; we could be much smarter and have something like docker-compose --rm ciinabox deploy environment --name=preprod and subsequently use a terraform/environment as a template.

Despite setting htpasswd, gocd is initially open

The script generates /etc/go-users which is used for htpasswd auth; however there is currently a manual step which requires you to go into the new go server, go into admin and set the password file path - before authentication is enabled.

Perhaps this would be fixed with a default go-config.xml

Ability to deploy applications to environments

It would be nice to have a bunch of premade modules that you can deploy to a target environment. This would set up all the networking/terraform aspects and also deploy any kubernetes containers too?

For example:

  • docker-compose run --rm ciinabox deploy mysql --environment=preprod
  • docker-compose run --rm ciinabox deploy redis --environment=preprod

Totally stepping into the realms of cloud automation here though and there are plenty of people that do that.

GoCD comes up with Invalid SSL due to accessing on an IP

Despite using the docker-letsencrypt image, we will get an invalid cert because we access docker on an IP, rather than a domain name.

If we were to make domain names part of this script (thus generating valid certs), then there would be a requirement that the user has provided proof of ownership through the GCP portal first, or the terraform scripts would fail.

Subsequently perhaps this is a toggle option, if provided; we will manage DNS entries too and generate a valid cert.

Dynamic agents don't clean up

If using kubernetes Deployments for ages, when scaled/deleted and a new agent comes back up with a different host name, the old agents go into lost contact and are never cleared.

If using a statefulset (so consistent host names), the agents rejoin as the same item however we need to manually delete the agent lock file, and also any updated configuration is not applied (for example; environments).

Old images persist on the docker host

As the agents actually build images on the underlying GKE host; and there is an image for each GO_PIPELINE_COUNTER, those images build up over time and don't get cleared.

Image Cleaner is a daemonset which fixes this problem.

./start cleanup deletes PersistentVolumes which are valid, but not bound

At the moment, the cleanup script is detecting PersistentVolumes as part of PersistentVolumeClaims that are not bound, but still valid.

For example; take a StatefuleSet with a PVC Template, scale it to 3, then down to 2, and you'll still have 3 disks (valid), clenaup will delete that third disk, leaving the PVC in an invalid state.

PV's should be checked against PVC's, not just for their bound status.

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.