Documentation
¶
Index ¶
- Variables
- func ApplySecretsFromFolder(client *k8s.Client, secretsFolder string, namespace string) error
- type APIOperations
- func (a *APIOperations) AddSourceNamespaceToDefaultAppProject() error
- func (a *APIOperations) AppsetGenerate(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
- func (a *APIOperations) CheckVersionCompatibility() error
- func (a *APIOperations) Cleanup()
- func (a *APIOperations) GetManifests(appName string) ([]unstructured.Unstructured, bool, error)
- func (a *APIOperations) IsExpectedError(errorMessage string) (bool, string)
- func (a *APIOperations) Login() error
- type ArgoCDInstallation
- func (a *ArgoCDInstallation) AppsetGenerate(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
- func (a *ArgoCDInstallation) AppsetGenerateWithRetry(resource *unstructured.Unstructured, tempFolder string, maxAttempts int) ([]unstructured.Unstructured, error)
- func (a *ArgoCDInstallation) Cleanup()
- func (a *ArgoCDInstallation) EnsureArgoCdIsReady() error
- func (a *ArgoCDInstallation) GetManifests(appName string) ([]unstructured.Unstructured, 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) RenderMethod() vars.RenderMethod
- type CLIOperations
- func (c *CLIOperations) AddSourceNamespaceToDefaultAppProject() error
- func (c *CLIOperations) AppsetGenerate(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
- func (c *CLIOperations) CheckVersionCompatibility() error
- func (c *CLIOperations) Cleanup()
- func (c *CLIOperations) GetManifests(appName string) ([]unstructured.Unstructured, 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(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
AppsetGenerate generates applications from an ApplicationSet using the ArgoCD API. The tempFolder parameter is not used in API mode but is required by the interface.
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) ([]unstructured.Unstructured, 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 *k8s.Client
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(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
AppsetGenerate generates applications from an ApplicationSet
func (*ArgoCDInstallation) AppsetGenerateWithRetry ¶ added in v0.1.10
func (a *ArgoCDInstallation) AppsetGenerateWithRetry(resource *unstructured.Unstructured, tempFolder string, maxAttempts int) ([]unstructured.Unstructured, 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) ([]unstructured.Unstructured, 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) RenderMethod ¶ added in v0.1.26
func (a *ArgoCDInstallation) RenderMethod() vars.RenderMethod
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(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
AppsetGenerate runs 'argocd appset generate' on an ApplicationSet resource and returns the generated applications. The tempFolder parameter specifies where to write the temporary ApplicationSet file.
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) ([]unstructured.Unstructured, 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 resource.
// The tempFolder parameter specifies where to write temporary files (CLI mode only).
AppsetGenerate(resource *unstructured.Unstructured, tempFolder string) ([]unstructured.Unstructured, error)
// GetManifests returns the manifests for an application.
// Returns: (manifests, appExists, error)
GetManifests(appName string) ([]unstructured.Unstructured, 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(renderMode vars.RenderMethod, k8sClient *k8s.Client, namespace string, loginOptions string, authToken string) Operations
NewOperations creates the appropriate Operations implementation based on the renderMode. If renderMode is server-api or repo-server-api, returns an APIOperations instance. If renderMode is cli, returns a CLIOperations instance. The authToken parameter is optional - if provided, it will be used instead of authenticating with the ArgoCD server during Login().