git.iko.soy/typeable/octopod
on 1.2.1 help sign in
typeable/octopod/README.md
84 lines 5.3 kB history raw
1<p align="center">
2 <a href="#"><img src="img/logo.svg" width="400"></img></a>
3</p>
5<p align="center">
6 <a href="https://github.com/typeable/octopod/actions?query=workflow%3ABuild"><img src="https://github.com/typeable/octopod/workflows/Build/badge.svg?branch=master" alt="Build"></a>
7 <a href="https://github.com/typeable/octopod/actions?query=workflow%3ADocumentation+branch%3Amaster"><img src="https://github.com/typeable/octopod/workflows/Documentation/badge.svg?branch=master" alt="Documentation"></a>
8</p>
10_Octopod_ is a fully open-source self-hosted solution for managing multiple deployments in a _Kubernetes_ cluster with a user-friendly web interface. Managing deployments does not require any technical expertise.
12We created _Octopod_ because we believe that everything we release should be rigorously tested, however, such desires greatly [complicate the development workflow](docs/en/PM_case_study.md) leading to longer release cycles. We use _Octopod_ to mitigate the downsides of rigorously testing each feature by deploying every single change we make to a separate staging environment allowing QA to investigate each feature independently and in parallel.
14## ๐Ÿ–ฅ Demo
16<p align="center"><img src="img/demo.gif"></img></p>
18## ๐Ÿ“‘ Documentation
20### ๐Ÿ”ญ High-level notes
21- [๐Ÿ™ Overview](docs/en/Overview.md)
22- [๐Ÿง‘โ€๐Ÿ”ฌ Project management case study](docs/en/PM_case_study.md)
23- [๐Ÿง‘โ€๐Ÿ’ป Technical case study](docs/en/Tech_case_study.md)
25### ๐Ÿ› ๏ธ Technical documentation
26- [๐Ÿ— Technical architecture](docs/en/Technical_architecture.md) [[RU](docs/ru/Technical_architecture.md)]
27- [โš™๏ธ Control script guide][cs] [[RU](docs/ru/Control_scripts.md)]
28- [๐Ÿ”ง๐Ÿ™ Octopod deployment guide](docs/en/Octopod_deployment_guide.md) [[RU](docs/ru/Octopod_deployment_with_K8S.md)]
29- [๐Ÿ”ง๐Ÿš€ Helm-based Octopod project setup](docs/en/Helm-based_deployment_guide.md) [[RU](docs/ru/Helm-based_deployment_guide.md)]
30- [๐Ÿ™๐ŸŽ› octo CLI user guide][octo] [[RU](docs/ru/Octo_user_guide.md)]
31- [๐Ÿค– CI integration](docs/en/Integration.md)
32- [๐Ÿ”’ Octopod security model](docs/en/Security_model.md) [[RU](docs/ru/Security_model.md)]
34## โ„น๏ธ FAQ
36### How long does it take to set up _Octopod_?
38The longest part of setting up _Octopod_ for your project will probably be writing [_Control Scripts_][cs]. In total you should be able to get things running in about a day.
40### Will _Octopod_ work with my project if it uses X?
42Yes. _Octopod_ is project-agnostic. If you can run your project in a Docker container, then you can use _Octopod_ with that project.
44### What do I need to know to set up Octopod?
46You need to understand the basics of _Kubernetes_ and be familiar with whatever hosting provider you will be using. There is no need to know any special language โ€“ you can write [_Control Scripts_][cs] in whatever language you like.
48### Does _Octopod_ work with my CI?
50Yes. If you can run arbitrary executables in your CI, then you will be able to integrate it with _Octopod_. Integration basically consists of calling our _octo CLI_ tool to perform desired actions. You can find more detail in the [CI integration](docs/en/Integration.md) doc.
52### How come I can't see the deployment logs in Octopod web app?
54It's been excluded from the GUI because we don't have a good security story to accompany this feature yet. Some secrets and credentials may leak to the project team using Octopod and, potentially, not everyone should have access to this data.
56### Octopod says "Failure" next to my deployment. Why is it not working?
58There are several places where things can go wrong:
601. Your DevOps engineer could have made mistakes in one of the [_Control Scripts_][cs] leading to an improper deployment process.
62 To fix this the DevOps engineer can use the [_octo CLI_][octo] to see detailed logs collected during the deployment process and diagnose the issue.
632. You could have one of the steps of your deployment failing (for example, a failing database migration).
65 If you have supplied a [_Kubernetes Dashboard_](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) URL to _Octopod_ during deployment, then you will have a "Details" button in the _Web UI_. You can click that button to get a filtered view of the _Kubernetes Dashboard_ where you can see what could have gone wrong and diagnose the issue.
67### Why Haskell and Rust?
69We believe that there is a lot to be gained in programming in general by being able to statically ensure invariants in your code. One of the most practical ways of ensuring invariants is a good static type system. Haskell and Rust are both languages that have very strong type systems. This allows us to move fast without breaking things in the process.
71## Quotations
73> Typeable team envisioned an insightful approach to CI/CD, which managed to help us cut the delivery time for new features and projects with Octopod
75โ€” Wes Iwanski โ€“ VP Technology, Downtown Travel
77## โ“ Still have questions?
79If you still have questions, be sure to ask them in our [Octopod Discussions](https://github.com/typeable/octopod/discussions).
81<p align="center"><a href="https://typeable.io"><img src="img/typeable.png" width="177px"></img></a></p>
83[cs]: docs/en/Control_scripts.md
84[octo]: docs/en/Octo_user_guide.md