Skip to content

Adding my argocd-git-repo-generator-function crossplane composition function to crossplane-contrib organization #85

@achrefbenmbarek1

Description

@achrefbenmbarek1

The Crossplane composition functionargocd-git-repo-generator-function generates an Argo CD Helm release based on repository URLs provided in a composite resource.
Each generated release:
Extracts Repository URLs:
Reads the composite resource field spec.repos-urls to retrieve an array of Git repository URLs.

Transforms Repository Data:
For each valid repository URL, the function:
    Extracts the repository name and username.
    Converts the repository name into a Kubernetes‑friendly (lowercase kebab-case) string (it is meant to be used with ESO so that is the reason behind the dynamic nature of assigning the secret through "set").
    Generates set items that configure credential templates and repository entries.

Generates Helm Values:
Constructs a JSON values object that includes:
    Server configuration (e.g. service type, ingress settings, extra arguments).
    Configurations for credentials and repositories based on the input data.

Creates a Helm Release Manifest:
Uses the transformed values and set items to generate a Helm release resource (using provider-helm types) that:
    References the Argo CD chart (name, repository, version).
    Sets the target namespace and applies the generated values.

(Read the readme.md where you will find instructions on how to play with it)

INITIAL MAINTAINER TEAM: eyabb, achrefbenmbarek1

As for my long term commitment I'm gonna use this tool on every company that I'm gonna work for that leverages argocd for gitops so I have no option other than being committed to it.
p.s: right now my ci pushes to the upbound market place (publicly) cause we don't have access to the ghcr repository (I'm new to this, but I think that I will need the write token for that and I'm guessing that you will be the ones generating the token and put as a secret in github after you approve this, but I have to emphasize that I'm most likely wrong). Another thing is that we didn't add ourselves to the list of maintainers in the cncf list (for the same reason, it felt natural that the composition function had to be accepted first)

We would like to ask for moving it into the crossplane-contrib organization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions