Kubernetes self-service portal
Go to file
Alex-Sizov 90fa7b8108
New deployment documentation (#67)
* add docs draft

* add note about local install+fix security model

* remove old helm charts

* remove helm2 examples

* helm based deployment guide + screenshots

* grammar + more spaces

* small fixes

* fix linter errors

* fix headings references

* fix headings references

* russian docs + fixes

* also check docs in charts

* remove charts dir and add it to gitignore

* Wording refinements

* small fixes

* compressed images

* Removed unneeded images

* wording

* Refined

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-08-26 15:23:41 +03:00
.github/workflows New deployment documentation (#67) 2021-08-26 15:23:41 +03:00
.vscode Removed TLS Auth in favour of headers (#54) 2021-07-28 14:27:37 +03:00
charts/octopod New deployment documentation (#67) 2021-08-26 15:23:41 +03:00
dev Nixified css (#61) 2021-08-20 19:31:28 +03:00
docs New deployment documentation (#67) 2021-08-26 15:23:41 +03:00
helm-control-scripts Generic scripts (#65) 2021-08-25 13:22:55 +03:00
img Update logo to have a background color (#38) 2021-07-16 15:56:18 +03:00
migrations Refactored status changes and added deployment locking (#24) 2021-07-16 15:56:18 +03:00
nix Bumped nix dependencies (#83) 2021-08-24 17:06:29 +03:00
octo-cli Removed TLS Auth in favour of headers (#54) 2021-07-28 14:27:37 +03:00
octopod-api Removed TLS Auth in favour of headers (#54) 2021-07-28 14:27:37 +03:00
octopod-backend Added more arguments to control scripts (#62) 2021-08-08 17:02:33 +03:00
octopod-common Added more arguments to control scripts (#62) 2021-08-08 17:02:33 +03:00
octopod-css Nixified css (#61) 2021-08-20 19:31:28 +03:00
octopod-frontend Reduced size of frontend js (#60) 2021-08-05 18:18:06 +03:00
.gitattributes Update .gitattributes (#1) 2021-01-25 18:40:35 +03:00
.gitignore Nixified css (#61) 2021-08-20 19:31:28 +03:00
build.sh Migrate to haskell.nix for everything (#46) 2021-07-16 15:56:18 +03:00
cabal.project Migrate to haskell.nix for everything (#46) 2021-07-16 15:56:18 +03:00
ChangeLog.md Initial open source release 2020-12-09 18:31:07 +03:00
default.nix Nixified css (#61) 2021-08-20 19:31:28 +03:00
Development_guide.md Improved handling metadata links (#9) 2021-01-25 18:40:35 +03:00
fourmolu.yaml Removed TLS Auth in favour of headers (#54) 2021-07-28 14:27:37 +03:00
hie.yaml Added haskell-language-server support in nix-shell (#4) 2021-01-25 18:40:35 +03:00
LICENSE Initial open source release 2020-12-09 18:31:07 +03:00
Makefile Nixified css (#61) 2021-08-20 19:31:28 +03:00
octopod_local_install.sh Octopod kind (#66) 2021-08-24 19:08:23 +03:00
README.md Added logo to Readme (#37) [skip ci] 2021-02-19 18:26:01 +03:00
Release_checklist.md Updated release checklist to include testing (#29) 2021-07-16 15:56:18 +03:00
release.sh Initial open source release 2020-12-09 18:31:07 +03:00
shell.nix Bumped nix dependencies (#83) 2021-08-24 17:06:29 +03:00
stack.yaml Migrate to haskell.nix for everything (#46) 2021-07-16 15:56:18 +03:00

Build Documentation

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.

We created Octopod because we believe that everything we release should be rigorously tested, however, such desires greatly complicate the development workflow 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.

🖥 Demo

📑 Documentation

🔭 High-level notes

🛠️ Technical documentation

FAQ

How long does it take to set up Octopod?

The longest part of setting up Octopod for your project will probably be writing Control Scripts. In total you should be able to get things running in about a day.

Will Octopod work with my project if it uses X?

Yes. Octopod is project-agnostic. If you can run your project in a Docker container, then you can use Octopod with that project.

What do I need to know to set up Octopod?

You 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 in whatever language you like.

Does Octopod work with my CI?

Yes. 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 doc.

How come I can't see the deployment logs in Octopod web app?

It'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.

Octopod says "Failure" next to my deployment. Why is it not working?

There are several places where things can go wrong:

  1. Your DevOps engineer could have made mistakes in one of the Control Scripts leading to an improper deployment process.

    To fix this the DevOps engineer can use the octo CLI to see detailed logs collected during the deployment process and diagnose the issue.

  2. You could have one of the steps of your deployment failing (for example, a failing database migration).

    If you have supplied a Kubernetes 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.

Why Haskell and Rust?

We 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.

Quotations

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

— Wes Iwanski VP Technology, Downtown Travel

Still have questions?

If you still have questions, be sure to ask them in our Octopod Discussions.