Self-hosted DevOps PaaS for Kubernetes
DevSecOps Teams - With self-service, automation and visibility to let them take full-service ownership
Platform teams - To setup a Kubernetes-based platform for DevOps teams and provide them a paved road to production
To install Otomi, make sure to have a K8s cluster running with at least:
1.25
, 1.26
or 1.27
custom
provider, make sure the K8s LoadBalancer Service created by Otomi
can obtain an external IP (using a cloud load balancer or MetalLB)NOTE: Install Otomi with DNS to unlock it's full potential. Check otomi.io for more info.
Add the Helm repository:
helm repo add otomi https://otomi.io/otomi-core
helm repo update
and then install the Helm chart:
helm install otomi otomi/otomi \
--set cluster.name=$CLUSTERNAME \
--set cluster.provider=$PROVIDER # use 'azure', 'aws', 'google', 'digitalocean', 'ovh', 'vultr', 'scaleway', 'civo', 'linode', or 'custom' for any other cloud or onprem infrastructure
When the installer job is completed, follow the activation steps.
Otomi consists out of the following components:
The otomi-console
self-service portal offers a seamless user experience for DevSecOps teams and platform administrators. Platform administrators can use Otomi Console to enable and configure platform capabilities and onboard development teams. DevOps teams can use Otomi Console to build images, deploy and expose Workloads, configure CNAMEs, configure network policies and manage secrets. Otomi Console also provides context aware access to platform capabilities like code repositories, registries, logs, metrics, traces, dashboards, etc. Next to the web based self-service, both teams and admins can start a Cloud Shell and run CLI commands.
All changes made through the Console are validated by the platform control plane (otomi-api
) and then committed as code in Git. This will automatically trigger the platform to synchronize the desired state to the Kubernetes state of the platform based on GitOps.
A Catalog with reusable templates to create workloads. The Catalog is pre-filled with a set of templates maintained in the otomi/charts
repo. You can also add your own charts and offer them to the teams on the platform.
The automation (a set of Kubernetes operators) is used to synchronize the desired state to the state of applications like Keycloak, Harbor and Gitea.
Otomi offers a set of integrated Kubernetes applications (using upstream open source projects) for all the required platform capabilities. Core applications are always installed, optional applications can be activated on-demand. When an application is activated, the application will be installed based on a configuration profile that contains defaults, best-practices and platform integrations. Default configuration can be adjusted using the Console.
Core Applications (that are always installed):
Optional Applications (that you can activate to compose your ideal platform):
Otomi can be installed on any Kubernetes cluster. At this time, the following providers are supported:
aws
for AWS Elastic Kubernetes Service
azure
for Azure Kubernetes Service
google
for Google Kubernetes Engine
linode
for Linode Kubernetes Engine
ovh
for OVH Cloud
vultr
for Vultr Kubernetes Engine
scaleway
for Scaleway Kapsule
civo
for Civo Cloud K3S
custom
for any other cloud/infrastructureOtomi open source consists out of the following projects:
Check out the dev docs index for developer documentation or go to otomi.io for more detailed documentation.
If you wish to contribute please read our Contributor Code of Conduct and Contribution Guidelines.
If you want to say thank you or/and support the active development of Otomi:
This project exists thanks to all the people who have contributed
Otomi is licensed under the Apache 2.0 License.