git-provider

command module
v0.0.0-...-33f01ad Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

README

Git Provider

This is a Krateo Provider that clones git repositories (eventually applying templates).

Summary

Overview

Git Provider clones git repositories and may apply Mustache templates. It then pushes the cloned and modified repository to a different location. The templating values are retrieved in a configmap referenced in the custom resource. It provides automatic reconciliation when changes are retrieved from the original repository.

Git Provider leverages Krateo provider-runtime a production-grade version of the controller-runtime.

Examples

Provider Installation
$ helm repo add krateo https://charts.krateo.io
$ helm repo update krateo
$ helm install git-provider krateo/git-provider
Manifest Application

As a first step, you need to create a kind: Repo Manifest as shown below and a ConfigMap which will contain the templating values.

File Templating

git-provider uses the Mustache library (see custom delimiter reference) to apply templating. Therefore, you need to specify the custom delimiter you want to use in the first line of the file you want to template. You can see an example here.

File Name Templating

If you need to template the filename of a file, you can only use the delimiters {{ }} (e.g., {{ your-prop }}.yaml).

Repo Manifest
apiVersion: git.krateo.io/v1alpha1
kind: Repo
metadata:
  name: test-repo
spec:
  enableUpdate: false
  configMapKeyRef:
    key: values
    name: filename-replace-values
    namespace: default
  fromRepo:
    authMethod: generic
    branch: main
    path: skeleton
    usernameRef:
      key: username
      name: git-username
      namespace: default
    secretRef:
      key: token
      name: git-secret
      namespace: default
    url: https://github.com/your-organization/fromRepo
  toRepo:
    authMethod: generic
    branch: main
    cloneFromBranch: main
    path: /
    secretRef:
      key: token
      name: git-secret
      namespace: default
    usernameRef:
      key: username
      name: git-username
      namespace: default
    url: https://github.com/your-organization/toRepo
  unsupportedCapabilities: true
Configmap Manifest
apiVersion: v1
kind: ConfigMap
metadata:
  name: filename-replace-values
data:
  values: |
    { 
      "organizationName": "krateo",
      "repositoryName": "testfilename",
      "serviceType": "type",
      "servicePort": "8080",
      "testTemplate": "tplKrateo"
    }

Environment Variables

Environment Variable Type Default Value Description
GIT_PROVIDER_DEBUG bool false Run with debug logging
GIT_PROVIDER_SYNC_PERIOD duration 1h Controller manager sync period (e.g., 300ms, 1.5h, or 2h45m)
GIT_PROVIDER_POLL_INTERVAL duration 2m Poll interval controls how often an individual resource should be checked for drift
GIT_PROVIDER_MAX_RECONCILE_RATE int 5 The number of concurrent reconciles for each controller. Maximum number of resources that can be reconciled at the same time
GIT_PROVIDER_LEADER_ELECTION bool false Use leader election for the controller manager
GIT_PROVIDER_MAX_ERROR_RETRY_INTERVAL duration 1m The maximum interval between retries when an error occurs. Should be less than half of the poll interval
GIT_PROVIDER_MIN_ERROR_RETRY_INTERVAL duration 1s The minimum interval between retries when an error occurs. Should be less than max-error-retry-interval
GIT_PROVIDER_TIMEOUT duration 4m The timeout time for each action.

Configuration

To view the CR configuration visit this link.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
repo/v1alpha1
Package v1alpha1 contains API Schema definitions for the git v1alpha1 API group +kubebuilder:object:generate=true +groupName=git.krateo.io +versionName=v1alpha1
Package v1alpha1 contains API Schema definitions for the git v1alpha1 API group +kubebuilder:object:generate=true +groupName=git.krateo.io +versionName=v1alpha1
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL