- Deploy containers to Kubernetes using the mogenius UI, without requiring deep Kubernetes knowledge. Then, add them to GitOps for deploying them to production-grade deployments.
- Configure your applications once and then deploy them to additional environments for a staged development workflow. See Multi-Environment Deployments for a practical guide.
- Backup all your manifests to recover your cluster state in case of an incident.
How the GitOps workflow works in mogenius
The GitOps workflow in mogenius follows a UI-first approach. You don’t need to write Kubernetes manifests manually — mogenius generates them for you. Here’s the end-to-end flow:- Deploy via the UI: Use the mogenius UI to deploy applications through container images, pipeline starters, Helm charts, or Kubernetes manifests.
- Enable GitOps on your cluster (see setup below).
- Create a GitOps application that includes your deployments.
- Manifests are auto-generated: mogenius automatically creates the Kubernetes manifests (
application.yaml) for all selected resources and commits them to your Git repository. You do not need to write these manifests yourself. - Changes sync through Git: When you modify configurations in the mogenius UI (environment variables, health checks, scaling, etc.), the changes are committed to Git. ArgoCD then syncs the updated manifests to your cluster.
GitOps setup
You can configure GitOps for each cluster. Navigate to Clusters in your organization and open the tab GitOps. Click the button to enable GitOps and open the configuration page.Set up ArgoCD and Sealed Secrets
mogenius comes with a pre-configured stack for enabling GitOps consisting of two main applications:
- ArgoCD: mogenius relies on the open-source project ArgoCD as the GitOps engine.
- Sealed Secrets: To securely synchronize secrets with Git, mogenius uses Sealed Secrets to encrypt secrets when transferring them to Git.
Connect a GitHub repository
Your applications on a cluster will be synced with a repository on GitHub.
To set it up, first go to Github.com and perform the following steps:
To set it up, first go to Github.com and perform the following steps:
- Create a new repository and make sure it has a branch.
- Create a Personal Access Token. It requires at least
read/writepermissions onContents. This way mogenius can commit changes on applications to the repository. If you want to use pull requests instead, make sure that the access token hasread/writepermissions forPull Requestsas well. Make sure to copy the PAT to a safe location.
- Enter a name for the repository.
- Enter the Personal Access Token.
- Your username and a dropdown to select your repository will load. In the dropdown, search for your GitOps repository and select it.
- Set the commit behavior: By default, mogenius will commit changes directly on the branch of your application. Activate the toggle to create pull requests instead.
- Save your settings to connect the repository.
Applications
Your workloads and resources in Kubernetes are tracked in GitOps as applications. Each application consists of one or more resources. Typical examples for how applications can be defined:- A deployment for your container, plus Ingress, Service, and Secrets that are used by the deployment.
- A platform deployment consisting of several microservices.
Here’s how it works:
- Enter a name for your application. This is how it will be displayed in mogenius and it will be added as a folder to your Git repository.
- From the list of namespaces on your cluster, select the resources that you want to include in your application. You can select one namespace per application. Inside a namespace you can select all resources, or a selected list of resources.
- Confirm to create your application.
application.yaml in your Git repository. It can take a few minutes until ArgoCD has synchronized it, and you’ll see a loading animation in the meantime. Once it is synced, you’ll see the status of your application and all included resources.
Working with GitOps in mogenius
When workloads or resources in your Workspaces are part of an application (i.e. managed via GitOps), a status objectApplication will be shown. This indicates the sync status of the directory and the application. If an error occurs, you can hover over the status to view the error message.
Updating workloads
You can continue using the mogenius UI to change configurations such as environment variables, resource limits, health checks, or YAML manifests on any resource. When saving changes, mogenius detects that GitOps is enabled for the resource and will update the corresponding
application.yaml in Git. This follows the commit behavior defined in your cluster settings (direct commit or pull request). Changes are not applied directly to the cluster but will be synced by ArgoCD within a few minutes. You can monitor this sync using the Application status.
GitOps log
You can track the history and changes of yourapplication.yaml using the GitOps log. It is available on any resource managed by a GitOps application and shows commits and pull requests.
CI/CD integration with GitHub Actions
For teams that want to combine CI/CD builds with GitOps-based deployment, mogenius provides GitHub Actions workflow templates in the mogenius build-workflows repository. These templates automate the process of building your container image and triggering the mogenius operator to update the deployment, which is then tracked and synced by GitOps. You can use these templates in two ways:- Through Pipeline Starters: The easiest approach — mogenius sets up the GitHub Actions workflow for you directly from the UI. See Pipeline Starters for details.
- Custom integration: Use the workflow templates directly in your own CI/CD pipelines for more control over the build and deployment process.