Documentation
¶
Index ¶
- Variables
- func ApplySecretsFromFolder(client *utils.K8sClient, secretsFolder string, namespace string) error
- type APIOperations
- func (a *APIOperations) AddSourceNamespaceToDefaultAppProject() error
- func (a *APIOperations) AppsetGenerate(appSetPath string) (string, error)
- func (a *APIOperations) CheckVersionCompatibility() error
- func (a *APIOperations) Cleanup()
- func (a *APIOperations) GetManifests(appName string) (string, bool, error)
- func (a *APIOperations) IsExpectedError(errorMessage string) (bool, string)
- func (a *APIOperations) Login() error
- type ArgoCDInstallation
- func (a *ArgoCDInstallation) AppsetGenerate(appSetPath string) (string, error)
- func (a *ArgoCDInstallation) AppsetGenerateWithRetry(appSetPath string, maxAttempts int) (string, error)
- func (a *ArgoCDInstallation) Cleanup()
- func (a *ArgoCDInstallation) EnsureArgoCdIsReady() error
- func (a *ArgoCDInstallation) GetManifests(appName string) (string, bool, error)
- func (a *ArgoCDInstallation) Install(debug bool, secretsFolder string) (time.Duration, error)
- func (a *ArgoCDInstallation) IsExpectedError(errorMessage string) (bool, string)
- func (a *ArgoCDInstallation) OnlyLogin() (time.Duration, error)
- func (a *ArgoCDInstallation) RefreshApp(appName string) error
- func (a *ArgoCDInstallation) UseAPI() bool
- type CLIOperations
- func (c *CLIOperations) AddSourceNamespaceToDefaultAppProject() error
- func (c *CLIOperations) AppsetGenerate(appSetPath string) (string, error)
- func (c *CLIOperations) CheckVersionCompatibility() error
- func (c *CLIOperations) Cleanup()
- func (c *CLIOperations) GetManifests(appName string) (string, bool, error)
- func (c *CLIOperations) IsExpectedError(errorMessage string) (bool, string)
- func (c *CLIOperations) Login() error
- type Operations
Constants ¶
This section is empty.
Variables ¶
var ( // ApplicationGVR is the GroupVersionResource for ArgoCD applications ApplicationGVR = schema.GroupVersionResource{ Group: "argoproj.io", Version: "v1alpha1", Resource: "applications", } )
Common resource GVRs
Functions ¶
Types ¶
type APIOperations ¶ added in v0.1.22
type APIOperations struct {
// contains filtered or unexported fields
}
APIOperations implements the Operations interface using the ArgoCD HTTP API.
func (*APIOperations) AddSourceNamespaceToDefaultAppProject ¶ added in v0.1.22
func (a *APIOperations) AddSourceNamespaceToDefaultAppProject() error
AddSourceNamespaceToDefaultAppProject adds "*" to the sourceNamespaces of the default AppProject
func (*APIOperations) AppsetGenerate ¶ added in v0.1.22
func (a *APIOperations) AppsetGenerate(appSetPath string) (string, error)
AppsetGenerate generates applications from an ApplicationSet using the ArgoCD API
func (*APIOperations) CheckVersionCompatibility ¶ added in v0.1.22
func (a *APIOperations) CheckVersionCompatibility() error
CheckVersionCompatibility compares the ArgoCD library version (from go.mod) against the ArgoCD server version.
func (*APIOperations) Cleanup ¶ added in v0.1.22
func (a *APIOperations) Cleanup()
Cleanup performs any necessary cleanup for API mode
func (*APIOperations) GetManifests ¶ added in v0.1.22
func (a *APIOperations) GetManifests(appName string) (string, bool, error)
GetManifests returns the manifests for an application using the ArgoCD API. It uses the /manifests endpoint which fetches and renders manifests directly from the source (Git/Helm) without requiring cluster sync permissions. This is preferred over /managed-resources for diff preview because: 1. It works in locked-down clusters without cluster-level RBAC 2. It returns freshly rendered manifests from the source 3. It doesn't require the application to have been synced first
func (*APIOperations) IsExpectedError ¶ added in v0.1.22
func (a *APIOperations) IsExpectedError(errorMessage string) (bool, string)
IsExpectedError checks if an error message matches expected error patterns. In API mode, certain errors are expected when running with 'createClusterRoles: false'. Returns: (isExpected, reason)
func (*APIOperations) Login ¶ added in v0.1.22
func (a *APIOperations) Login() error
Login performs login to ArgoCD using the HTTP API. If an auth token was provided during construction, this method will use that token instead of authenticating with username/password.
type ArgoCDInstallation ¶
type ArgoCDInstallation struct {
K8sClient *utils.K8sClient
Namespace string
Version string
ConfigPath string
ChartName string
ChartURL string
ChartRepoUsername string
ChartRepoPassword string
LoginOptions string
// contains filtered or unexported fields
}
func (*ArgoCDInstallation) AppsetGenerate ¶
func (a *ArgoCDInstallation) AppsetGenerate(appSetPath string) (string, error)
AppsetGenerate generates applications from an ApplicationSet
func (*ArgoCDInstallation) AppsetGenerateWithRetry ¶ added in v0.1.10
func (a *ArgoCDInstallation) AppsetGenerateWithRetry(appSetPath string, maxAttempts int) (string, error)
AppsetGenerateWithRetry runs AppsetGenerate with retry logic
func (*ArgoCDInstallation) Cleanup ¶ added in v0.1.22
func (a *ArgoCDInstallation) Cleanup()
Cleanup performs any necessary cleanup (e.g., stopping port forwards). This delegates to the operations implementation.
func (*ArgoCDInstallation) EnsureArgoCdIsReady ¶ added in v0.1.7
func (a *ArgoCDInstallation) EnsureArgoCdIsReady() error
EnsureArgoCdIsReady waits for ArgoCD deployments to be ready
func (*ArgoCDInstallation) GetManifests ¶
func (a *ArgoCDInstallation) GetManifests(appName string) (string, bool, error)
GetManifests returns the manifests for an application
func (*ArgoCDInstallation) IsExpectedError ¶ added in v0.1.22
func (a *ArgoCDInstallation) IsExpectedError(errorMessage string) (bool, string)
IsExpectedError checks if an error message is expected for the current mode. In API mode, certain errors are expected when running with 'createClusterRoles: false'. In CLI mode, this always returns false. Returns: (isExpected, reason)
func (*ArgoCDInstallation) OnlyLogin ¶ added in v0.1.11
func (a *ArgoCDInstallation) OnlyLogin() (time.Duration, error)
OnlyLogin performs only the login step without installing ArgoCD
func (*ArgoCDInstallation) RefreshApp ¶
func (a *ArgoCDInstallation) RefreshApp(appName string) error
RefreshApp triggers a refresh of an application by setting the refresh annotation
func (*ArgoCDInstallation) UseAPI ¶ added in v0.1.22
func (a *ArgoCDInstallation) UseAPI() bool
type CLIOperations ¶ added in v0.1.22
type CLIOperations struct {
// contains filtered or unexported fields
}
CLIOperations implements the Operations interface using the ArgoCD CLI.
func (*CLIOperations) AddSourceNamespaceToDefaultAppProject ¶ added in v0.1.22
func (c *CLIOperations) AddSourceNamespaceToDefaultAppProject() error
AddSourceNamespaceToDefaultAppProject adds "*" to the sourceNamespaces of the default AppProject
func (*CLIOperations) AppsetGenerate ¶ added in v0.1.22
func (c *CLIOperations) AppsetGenerate(appSetPath string) (string, error)
AppsetGenerate runs 'argocd appset generate' on a file and returns the output
func (*CLIOperations) CheckVersionCompatibility ¶ added in v0.1.22
func (c *CLIOperations) CheckVersionCompatibility() error
CheckVersionCompatibility checks Argo CD CLI version vs Argo CD Server version
func (*CLIOperations) Cleanup ¶ added in v0.1.22
func (c *CLIOperations) Cleanup()
Cleanup is a no-op for CLI mode (no resources to clean up)
func (*CLIOperations) GetManifests ¶ added in v0.1.22
func (c *CLIOperations) GetManifests(appName string) (string, bool, error)
GetManifests returns the manifests for an application using the CLI
func (*CLIOperations) IsExpectedError ¶ added in v0.1.22
func (c *CLIOperations) IsExpectedError(errorMessage string) (bool, string)
IsExpectedError always returns false for CLI mode. Expected errors only occur in API mode when running with 'createClusterRoles: false'.
func (*CLIOperations) Login ¶ added in v0.1.22
func (c *CLIOperations) Login() error
Login performs login to ArgoCD using the CLI. If a token was provided during construction, this method will skip the normal authentication and use the provided token instead (passed as ARGOCD_AUTH_TOKEN env var to CLI commands).
type Operations ¶ added in v0.1.22
type Operations interface {
// Login authenticates with ArgoCD and caches credentials for future calls.
// If a token was provided during construction, this method will skip authentication
// and use the provided token instead.
Login() error
// AppsetGenerate generates applications from an ApplicationSet file
AppsetGenerate(appSetPath string) (string, error)
// GetManifests returns the manifests for an application.
// Returns: (manifests, appExists, error)
GetManifests(appName string) (string, bool, error)
// CheckVersionCompatibility checks if the client/library version is compatible
// with the ArgoCD server version
CheckVersionCompatibility() error
// AddSourceNamespaceToDefaultAppProject adds "*" to the sourceNamespaces
// of the default AppProject to allow applications from any namespace
AddSourceNamespaceToDefaultAppProject() error
// Cleanup performs any necessary cleanup (e.g., stopping port forwards)
Cleanup()
// IsExpectedError checks if an error message is expected for this mode.
// In API mode, certain errors are expected when running with 'createClusterRoles: false'.
// In CLI mode, this always returns false.
// Returns: (isExpected, reason)
IsExpectedError(errorMessage string) (bool, string)
}
Operations defines the interface for ArgoCD operations. There are two implementations: CLIOperations and APIOperations. The implementation is chosen at construction time based on the useAPI flag.
func NewOperations ¶ added in v0.1.22
func NewOperations(useAPI bool, k8sClient *utils.K8sClient, namespace string, loginOptions string, authToken string) Operations
NewOperations creates the appropriate Operations implementation based on the useAPI flag. If useAPI is true, returns an APIOperations instance. If useAPI is false, returns a CLIOperations instance. The authToken parameter is optional - if provided, it will be used instead of authenticating with the ArgoCD server during Login().