Skip to main content
A GitOps repository connects ZEDEDA Edge Kubernetes Service to a Git repository. The service monitors the repository for changes and automatically pulls and deploys the defined workloads to the target clusters. This enables continuous, declarative application delivery without manual intervention. The GitOps engine is based on the Rancher Fleet format. The service polls each connected repository every 60 seconds.
GitOps repositories and Marketplace app installations are mutually exclusive deployment paths. GitOps repositories require fully rendered Helm charts with all values explicitly defined. Marketplace apps use template values. Do not mix these two approaches for the same cluster.
Deleting a GitOps repository removes the applications it deployed from all target clusters. This action cannot be undone.

Prerequisites

Before adding a GitOps repository, confirm the following:
  • At least one Kubernetes cluster is provisioned in ZEDEDA Edge Kubernetes Service.
  • A Git repository (accessible over HTTPS or SSH) contains valid Helm chart definitions.
  • If using a private repository, credentials are ready: a username and password for HTTPS authentication, or an unencrypted SSH private key for SSH authentication.

Add a GitOps Repository

GitOps repository management is in the Operations section of Edge Infrastructure Services. To add a repository:
  1. In the sidebar, select Infrastructure > Operations > GitOps Repos.
  2. Select Add Repository.
  3. Complete the three-step wizard described in the following sections.

Repository Details

Enter the configuration for the Git repository:
  • Name: A unique identifier for this repository record.
  • Title: A display name shown in the repository list.
  • Project: The ZEDEDA project this repository belongs to.
  • Description: An optional description for the repository.
  • Repository URL: The full URL to the Git repository. The field is flagged if the URL is not in a supported format after you stop typing or leave the field. Use one of the following formats.
    • An https:// URL, for example https://github.com/myorg/my-app.git.
    • An ssh:// URL that includes a port, for example ssh://git@github.com:22/myorg/my-app.git. The scp-style form (for example, git@github.com:myorg/my-app.git) is not accepted.
  • Pin to: Controls which revision of the repository the service deploys. Pinning is optional. Select one of the following options.
    • None: Uses the repository’s default branch. This is the default selection.
    • Branch: Tracks the latest commit on a specific branch. When selected, enter the branch name in Branch Name. Commits pushed to the branch are deployed automatically.
    • Commit: Pins the repository to a fixed commit. When selected, enter the value in Commit Hash. Nothing new is deployed until you change this value.
  • Path: The subdirectory within the repository that contains the Helm chart. Leave blank to use the repository root.
  • Git Authentication: Authentication method for the Git repository. The authentication method must match the Repository URL scheme: an SSH secret requires an ssh:// URL, and None or an HTTPS secret requires an https:// URL. If they do not match, an error appears and you cannot continue until you change the secret or the URL. Select one of the following.
    • None: Use for public repositories that require no credentials.
    • HTTPS: Requires a secret containing a username and password. Select an existing secret or create one inline using the Add Secret modal (see Manage Secrets).
    • SSH: Requires a secret containing a private key. The private key must be unencrypted. The public key is optional.
  • Helm Authentication: Authentication method for any Helm chart registry referenced by the repository. Configure in the same way as Git Authentication.
  • Helm URL Regex: An optional regular expression to match Helm repository URLs that require the configured Helm authentication.
  • TLS Certificate Verification: Controls how TLS certificates are validated when connecting to the repository. Select one of the following.
    • A Valid Certificate: Requires a valid, trusted TLS certificate (recommended).
    • Skip TLS Verification: Disables certificate verification. Use only in controlled environments.
    • Specify Additional Certificate: Accepts a custom certificate authority. When selected, enter the PEM-encoded certificate in Certificates.
Select Next to continue.

Target Details

Select the clusters that this repository should deploy to:
  • All Clusters: Deploys to every cluster in the selected project, including clusters created later.
  • Cluster: Deploys to a specific individual cluster. A list of available clusters appears. Hover over a cluster name until a checkbox appears, then select it.
Only clusters that run Kubernetes appear in the list. This means clusters created in ZEDEDA Edge Kubernetes Service mode and imported clusters. Changing the project resets the target, because the clusters on offer belong to the project. Cluster groups can no longer be selected as a target. A repository that already targets a cluster group keeps that target when you edit it, but you cannot choose a group for a new repository. Select Next to continue.

Review & Add

Review the configuration summary. Select Back to make changes or select Add to create the repository. The service begins polling the repository within 60 seconds.

Manage Secrets

Secrets store the credentials used to authenticate with Git and Helm repositories. For full details on creating and managing secrets, see Kubernetes Secrets. You can also create a secret inline while configuring a repository: select Add Secret next to an authentication field to open the Add Secret modal, enter the credentials, and select Save. The new secret is immediately available to select in the current repository form.

View Repository Status

The GitOps Repos page displays all repositories in a table with the following columns: State, Name, Repo, Target, Cluster Ready, and Age. The State column shows the current sync state. To view full details, select a repository name to open the detail page. The detail page has the following tabs:
  • Status: Shows per-resource deployment state, sync conditions, and recent events. Resources are listed with their Kind, Name, Namespace, and Status. Conditions show Type, Status, Message, and Last Transition time. Events show Type, Reason, Message, and Timestamp.
  • Info: Shows all repository configuration fields including authentication settings, the tracked branch or pinned commit, path, and target details. When the repository is pinned to a commit, the page header shows Commit instead of Branch.
  • YAML: Shows the raw resource definition.

State reference

Configure a GitOps Repository

To update a repository’s configuration, select Configure Git repository from the row action menu in the repository list, or select Configure Git repository in the detail page header. A configuration dialog opens with the existing values populated, including the Pin to selection. You can change the pin between None, Branch, and Commit in this dialog.

Delete a GitOps Repository

To delete a repository:
  1. On the GitOps Repos page, open the row action menu for the repository.
  2. Select Delete Git repository.
  3. Confirm the deletion.
Deleting a repository removes all applications it deployed from the target clusters. This action cannot be undone.

Next Steps

Manage Kubernetes Secrets

Create SSH or HTTP credentials for authenticating with private GitOps repositories.

GitOps fleet.yaml Configuration

Customize per-cluster Helm deployments with fleet.yaml configuration examples.

Manage Cluster Groupings

Organize clusters into groups to view and manage them as a single unit.