Documentation
Concepts
GitOps

GitOps

GitOps is a way to do Kubernetes application delivery. It works by using Git as a single source of truth for declarative infrastructure and applications. With GitOps, you can make changes to your applications and infrastructure by making changes to your Git repository. SkyU uses GitOps to manage your applications and infrastructure.

How SkyU uses GitOps

Every project in SkyU is associated with a GitOps repository. This repository is used to store the Kubernetes manifests and other configuration files for your applications and infrastructure. SkyU uses this repository to deploy and manage your applications and infrastructure.

When you create a project in SkyU, SkyU creates a GitOps repository for you. You can use this repository to store your Kubernetes manifests and other configuration files. You can also use your own repository for GitOps. You can learn more about how to use your own repository for GitOps in the Projects section.

GitOps Repository

The GitOps repository is where you store the Kubernetes manifests and other configuration files for your applications and infrastructure. SkyU uses this repository to deploy and manage your applications and infrastructure.

The underlying technology used in this GitOps repository is Kustomize. Kustomize is a tool that lets you customize Kubernetes resources through a Kubernetes-style configuration file. You can learn more about Kustomize in the Kustomize (opens in a new tab) website.

Just because the GitOps folder structure is Kustomize, it does not mean you have to use Kustomize. You can use any templating engine or configuration management tool that you are comfortable with to work with SkyU

The folder structure of the GitOps repository is as follows:

        • (*).yaml
      • (*).yaml
          • (*)-patch.yaml
        • (*).yaml
      • README.md
      • You can create PRs to this repository to make changes to your applications and infrastructure. SkyU will automatically deploy these changes to your environments.

        If you want to make direct changes to GitOps, please go to GitOps in the left navigation bar of the SkyU Console. make the necessary changes and press Save to deploy the changes to the environment.

        You can learn more about Kustomize usage and File Merging in the Kustomize Transformer section.

        Rollbacks and Change History

        Since everything is committed to Git, you can easily rollback configs and go through the change history. SkyU also provides a detailed change history for each environment in the project. You can view the change history by going to the Releases tab in the environment details page.

        If SkyU UI does not provide a control to change a specific configuration, you can always make the changes in the GitOps repository and create a PR to deploy the changes to the environment.

        IAC Repository

        A separate repository is used to store the infrastructure as code templates. This repository is linked to the project during project creation. The infrastructure as code repository is used to store the infrastructure templates for your project. You can use this repository to store the Terraform, CloudFormation, or any other infrastructure as code templates for your project.

        More information on how to use the IAC repository can be found in the Infrastructure section.