argocd-client

module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2024 License: Apache-2.0

README

ArgoCD Client

A Kubernetes client for ArgoCD, generated using client-gen, that simplifies interactions with ArgoCD resources without importing the entire ArgoCD project.

Description

This project provides a typed Kubernetes client for ArgoCD by extracting and generating ArgoCD API types. The core challenge is that ArgoCD does not offer a standalone API and Client module, forcing Go applications to import the full ArgoCD codebase. This introduces significant issues, such as:

  • Pulling in private and outdated Kubernetes libraries.
  • Version conflicts with newer Kubernetes libraries.
  • The need for extensive version overrides in Go modules.

By decoupling ArgoCD's API types from the main repository, we provide a lightweight Client and API alternative design for projects that need to create and manage ArgoCD resources without the bloat.

Usage

This Go module can be imported into your project to provide access to ArgoCD's API types without requiring the entire ArgoCD project. It supports easier integration with modern Kubernetes controllers.

Limitations

  • Source of API Types: The API types in this project were directly copied from the ArgoCD project (specifically from ArgoCD's application APIs).
  • Potential Maintenance Burden: As ArgoCD evolves, this project may become difficult to maintain, requiring regular updates as the upstream ArgoCD API changes.
  • Hacky Approach: This method is a workaround due to the absence of a dedicated API and Client repository for ArgoCD. Use it with caution, particularly if your project depends on long-term stability.

Note

While this library provides an immediate solution to manage ArgoCD resources, we strongly recommend that users track changes in ArgoCD's upstream API to keep this module up to date.

Directories

Path Synopsis
pkg
clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientset/versioned/typed/apis/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/versioned/typed/apis/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

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