Documentation
¶
Index ¶
- Constants
- func Check(ctx context.Context, opts *ProviderCheckOpts)
- type AwsClient
- func (c *AwsClient) BucketExists(ctx context.Context, name string) (bool, error)
- func (c AwsClient) CheckAccess(ctx context.Context) ProviderCheckResult
- func (c AwsClient) CheckConfig() error
- func (c AwsClient) CreateBucket(ctx context.Context, name string, force bool) error
- func (c *AwsClient) CreateDynamodbTable(ctx context.Context, name string, force bool) error
- func (c AwsClient) CreateStateBackend(ctx context.Context) error
- func (c AwsClient) CurrentIdentity(ctx context.Context) (CloudProviderIdentity, error)
- func (c *AwsClient) DescribeEksCluster(ctx context.Context) (*eks.DescribeClusterOutput, error)
- func (c *AwsClient) DestroyBucket(ctx context.Context, name string) error
- func (c *AwsClient) DestroyDynamodbTable(ctx context.Context, name string) error
- func (c AwsClient) DestroyStateBackend(ctx context.Context) error
- func (c *AwsClient) DynamodbTableExists(ctx context.Context, name string, d time.Duration) bool
- func (c *AwsClient) EksKubeconfigInfo(ctx context.Context) (KubeconfigInfo, EksToken, error)
- func (c AwsClient) KubeconfigInfo(ctx context.Context) (KubeconfigInfo, error)
- func (c AwsClient) PrepareAccount(ctx context.Context) error
- func (c AwsClient) PrintClusterInfo(ctx context.Context) error
- func (c AwsClient) PrintConfig()
- func (c AwsClient) ProviderName() string
- func (c AwsClient) StateBackendInfo(stage string) CloudProviderStateBackend
- type AwsProviderCheckResult
- type AwsSdkClientFactory
- type CloudProviderClient
- type CloudProviderClientOpts
- type CloudProviderIdentity
- type CloudProviderStateBackend
- type CloudflareAccessCheckResult
- type CloudflareClient
- type CloudflareZonesResponse
- type CloudflareZonesResponseResult
- type DnsProviderClient
- type DynamodbClient
- type EksClient
- type EksToken
- type EmptyProvider
- type EmptyProviderCheckResult
- type GithubCheckAccessResult
- type GithubClient
- type GithubProviderCheckResult
- type GithubTokenSource
- type IamClient
- type IronbankCheckAccessResult
- type IronbankClient
- type KubeconfigInfo
- type KubernetesApi
- type KubernetesApiImpl
- type KubernetesApiMock
- func (api *KubernetesApiMock) AddResources(res ...*metav1.APIResourceList) *KubernetesApiMock
- func (api KubernetesApiMock) ClientSet() (kubernetes.Interface, error)
- func (api KubernetesApiMock) DiscoveryClient() (discovery.DiscoveryInterface, error)
- func (api KubernetesApiMock) DynamicClient() (dynamic.Interface, error)
- func (api *KubernetesApiMock) WithClientObjects(objects ...runtime.Object) *KubernetesApiMock
- func (api *KubernetesApiMock) WithDynamicObjects(objects ...runtime.Object) *KubernetesApiMock
- func (api *KubernetesApiMock) WithError(err error) *KubernetesApiMock
- type KubernetesAppConnectionInfo
- type KubernetesClient
- func (c KubernetesClient) CheckAccess(ctx context.Context) ProviderCheckResult
- func (c KubernetesClient) EnsureKubeconfig(path string) error
- func (c KubernetesClient) Export(ctx context.Context, cfg quartzSchema.ExportConfig) (map[string][]byte, error)
- func (c KubernetesClient) ForEachDynamicResources(ctx context.Context, kind schema.GroupVersionResource, ns string, ...) error
- func (c KubernetesClient) GetAppConnectionInfo(ctx context.Context, name string, opts quartzSchema.ApplicationLookupConfig) KubernetesAppConnectionInfo
- func (c KubernetesClient) GetConfigMapValue(ctx context.Context, ns string, name string) (map[string]string, error)
- func (c KubernetesClient) GetDynamicResource(ctx context.Context, kind schema.GroupVersionResource, ns string, name string) (map[string]interface{}, error)
- func (c KubernetesClient) GetSecret(ctx context.Context, ns string, name string) (*corev1.Secret, error)
- func (c KubernetesClient) GetSecretValue(ctx context.Context, ns string, name string) (map[string]string, error)
- func (c KubernetesClient) LookupKind(ctx context.Context, kind string) (schema.GroupVersionResource, error)
- func (c KubernetesClient) PrintClusterAppInfo(ctx context.Context, apps map[string]quartzSchema.ApplicationLookupConfig)
- func (c KubernetesClient) PrintClusterInfo(ctx context.Context)
- func (c KubernetesClient) ProviderName() string
- func (c KubernetesClient) RefreshExternalSecrets(ctx context.Context) ([]KubernetesResource, error)
- func (c KubernetesClient) Restart(ctx context.Context, kind schema.GroupVersionResource, ns string, name string) error
- func (c KubernetesClient) Update(ctx context.Context, kind schema.GroupVersionResource, ns string, ...) (*unstructured.Unstructured, error)
- func (c KubernetesClient) WaitConditionState(ctx context.Context, kind schema.GroupVersionResource, ns string, name string, ...) error
- func (c KubernetesClient) WriteKubeconfig(w io.Writer) error
- func (c KubernetesClient) WriteKubeconfigFile(path string) error
- type KubernetesLookupCache
- type KubernetesProviderCheckResult
- type KubernetesProviderClient
- type KubernetesResource
- type LazyAwsSdkClient
- func (c *LazyAwsSdkClient) Dynamodb() DynamodbClient
- func (c *LazyAwsSdkClient) Eks() EksClient
- func (c *LazyAwsSdkClient) EksTokenGenerator() (token.Generator, error)
- func (c *LazyAwsSdkClient) Iam() IamClient
- func (c *LazyAwsSdkClient) S3() S3Client
- func (c *LazyAwsSdkClient) S3Region(region string) S3Client
- func (c *LazyAwsSdkClient) Sts() StsClient
- type LocalClient
- func (c LocalClient) CheckAccess(ctx context.Context) ProviderCheckResult
- func (c LocalClient) CheckConfig() error
- func (c LocalClient) CreateStateBackend(_ context.Context) error
- func (c LocalClient) CurrentIdentity(ctx context.Context) (CloudProviderIdentity, error)
- func (c LocalClient) DestroyStateBackend(_ context.Context) error
- func (c LocalClient) KubeconfigInfo(ctx context.Context) (KubeconfigInfo, error)
- func (c LocalClient) PrepareAccount(ctx context.Context) error
- func (c LocalClient) PrintClusterInfo(ctx context.Context) error
- func (c LocalClient) PrintConfig()
- func (c LocalClient) ProviderName() string
- func (c LocalClient) StateBackendInfo(_ string) CloudProviderStateBackend
- type Provider
- type ProviderCheckOpts
- type ProviderCheckResult
- type ProviderCheckResultRow
- type ProviderFactory
- func (f *ProviderFactory) Cloud(ctx context.Context) (CloudProviderClient, error)
- func (f *ProviderFactory) Dns(ctx context.Context) (DnsProviderClient, error)
- func (f *ProviderFactory) ImageRegistry(ctx context.Context) (Provider, error)
- func (f *ProviderFactory) Kubernetes(ctx context.Context) (KubernetesProviderClient, error)
- func (f *ProviderFactory) SourceControl(ctx context.Context) (Provider, error)
- type ProviderFactoryOption
- func WithCloudProvider(p CloudProviderClient) ProviderFactoryOption
- func WithConfig(c schema.QuartzConfig) ProviderFactoryOption
- func WithDnsProvider(p DnsProviderClient) ProviderFactoryOption
- func WithImageRegistryProvider(p Provider) ProviderFactoryOption
- func WithKubernetesProvider(p KubernetesProviderClient) ProviderFactoryOption
- func WithSecrets(s schema.QuartzSecrets) ProviderFactoryOption
- func WithSourceControlProvider(p Provider) ProviderFactoryOption
- type S3Client
- type StsClient
Constants ¶
const (
AWS_PROVIDER = "AWS"
)
Variables ¶
This section is empty.
Functions ¶
func Check ¶
func Check(ctx context.Context, opts *ProviderCheckOpts)
Check performs access checks for all providers in the given options. It logs the results and execution statistics.
Types ¶
type AwsClient ¶
type AwsClient struct {
// contains filtered or unexported fields
}
AwsClient represents an AWS client with configuration and SDK factory. It provides methods to interact with AWS services.
func NewAwsClient ¶
func NewLazyAwsClient ¶
func (*AwsClient) BucketExists ¶
BucketExists checks if an S3 bucket with the specified name exists. It returns true if the bucket exists, false otherwise, and an error if the operation fails.
func (AwsClient) CheckAccess ¶
func (c AwsClient) CheckAccess(ctx context.Context) ProviderCheckResult
func (AwsClient) CheckConfig ¶
func (AwsClient) CreateBucket ¶
CreateBucket creates an S3 bucket with the specified name. If the bucket already exists and `force` is false, the operation is skipped.
func (*AwsClient) CreateDynamodbTable ¶
CreateDynamodbTable creates a DynamoDB table with the specified name. If the table already exists and `force` is false, the operation is skipped.
func (AwsClient) CreateStateBackend ¶
func (AwsClient) CurrentIdentity ¶
func (c AwsClient) CurrentIdentity(ctx context.Context) (CloudProviderIdentity, error)
func (*AwsClient) DescribeEksCluster ¶
DescribeEksCluster describes the EKS cluster associated with the client. It returns the cluster details or an error if the operation fails.
func (*AwsClient) DestroyBucket ¶
DestroyBucket deletes an S3 bucket with the specified name. The bucket must be empty before it can be deleted.
func (*AwsClient) DestroyDynamodbTable ¶
DestroyDynamodbTable deletes a DynamoDB table with the specified name.
func (AwsClient) DestroyStateBackend ¶
func (*AwsClient) DynamodbTableExists ¶
DynamodbTableExists checks if a DynamoDB table with the specified name exists within the given duration.
func (*AwsClient) EksKubeconfigInfo ¶
EksKubeconfigInfo retrieves the kubeconfig information for an EKS cluster. It returns the kubeconfig details, an EKS token, and an error if any occurs.
func (AwsClient) KubeconfigInfo ¶
func (c AwsClient) KubeconfigInfo(ctx context.Context) (KubeconfigInfo, error)
func (AwsClient) PrintConfig ¶
func (c AwsClient) PrintConfig()
func (AwsClient) ProviderName ¶
ProviderName returns the name of the cloud provider ("AWS").
func (AwsClient) StateBackendInfo ¶
func (c AwsClient) StateBackendInfo(stage string) CloudProviderStateBackend
type AwsProviderCheckResult ¶
type AwsProviderCheckResult struct { Identity CloudProviderIdentity Error error }
func (AwsProviderCheckResult) ToTable ¶
func (r AwsProviderCheckResult) ToTable() ([]string, []ProviderCheckResultRow)
type AwsSdkClientFactory ¶
type AwsSdkClientFactory interface { Sts() StsClient Iam() IamClient Dynamodb() DynamodbClient S3() S3Client S3Region(region string) S3Client Eks() EksClient EksTokenGenerator() (token.Generator, error) }
AwsSdkClientFactory defines the interface for creating AWS SDK clients.
type CloudProviderClient ¶
type CloudProviderClient interface { Provider // CheckConfig validates the cloud provider configuration. CheckConfig() error // CurrentIdentity retrieves the current identity of the cloud provider account. CurrentIdentity(ctx context.Context) (CloudProviderIdentity, error) // StateBackendInfo retrieves information about the state backend for the specified stage. StateBackendInfo(stage string) CloudProviderStateBackend // CreateStateBackend creates the state backend for the cloud provider. CreateStateBackend(ctx context.Context) error // DestroyStateBackend destroys the state backend for the cloud provider. DestroyStateBackend(ctx context.Context) error // KubeconfigInfo retrieves the kubeconfig information for the cloud provider. KubeconfigInfo(ctx context.Context) (KubeconfigInfo, error) // PrintConfig prints the cloud provider configuration. PrintConfig() // PrintClusterInfo prints information about the cloud provider's cluster. PrintClusterInfo(ctx context.Context) error // PrepareAccount prepares the cloud provider account for use. PrepareAccount(ctx context.Context) error }
CloudProviderClient defines the interface for cloud provider clients.
func NewCloudProviderClient ¶
func NewCloudProviderClient(ctx context.Context, cfg schema.QuartzConfig) (CloudProviderClient, error)
NewCloudProviderClient creates a new cloud provider client using the provided Quartz configuration.
func NewCloudProviderClientWithOpts ¶
func NewCloudProviderClientWithOpts(ctx context.Context, o CloudProviderClientOpts) (CloudProviderClient, error)
NewCloudProviderClientWithOpts creates a new cloud provider client using the specified options.
type CloudProviderClientOpts ¶
type CloudProviderClientOpts struct { Provider string // The name of the cloud provider (e.g., "aws", "local"). Name string // The name of the cloud provider client. Region string // The region for the cloud provider. // contains filtered or unexported fields }
CloudProviderClientOpts contains options for creating a cloud provider client.
type CloudProviderIdentity ¶
type CloudProviderIdentity struct { AccountId string // The account ID of the cloud provider. AccountName string // The account name of the cloud provider. UserId string // The user ID of the cloud provider account. UserName string // The user name of the cloud provider account. }
CloudProviderIdentity represents the identity of a cloud provider account.
type CloudProviderStateBackend ¶
type CloudProviderStateBackend struct { Name string // The name of the state backend. InitBackendConfig []string // The initialization configuration for the state backend. }
CloudProviderStateBackend represents the state backend configuration for a cloud provider.
type CloudflareAccessCheckResult ¶
type CloudflareAccessCheckResult struct { Status bool // Indicates whether the access check was successful. Error error // Contains any error encountered during the check. Response CloudflareZonesResponse // The response from the Cloudflare API. }
CloudflareAccessCheckResult represents the result of a Cloudflare access check.
func (CloudflareAccessCheckResult) ToTable ¶
func (r CloudflareAccessCheckResult) ToTable() ([]string, []ProviderCheckResultRow)
ToTable converts the CloudflareAccessCheckResult into table headers and rows for display.
type CloudflareClient ¶
type CloudflareClient struct {
// contains filtered or unexported fields
}
CloudflareClient represents a client for interacting with the Cloudflare API.
func NewCloudflareClient ¶
func NewCloudflareClient(httpClient util.HttpClientFactory, providerName string, accountId string, apiToken string, domain string) (CloudflareClient, error)
NewCloudflareClient creates a new CloudflareClient instance. Returns an error if required parameters (accountId, apiToken, or domain) are missing.
func (CloudflareClient) CheckAccess ¶
func (c CloudflareClient) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess checks access to the Cloudflare API for the specified domain and account. It verifies the required permissions and returns the result as a CloudflareAccessCheckResult.
func (CloudflareClient) ProviderName ¶
func (c CloudflareClient) ProviderName() string
ProviderName returns the name of the Cloudflare provider.
type CloudflareZonesResponse ¶
type CloudflareZonesResponse struct { Success bool // Indicates whether the API call was successful. Errors []string // Contains any errors returned by the API. Messages []string // Contains any messages returned by the API. Result []CloudflareZonesResponseResult // The list of zones returned by the API. }
CloudflareZonesResponse represents the response from the Cloudflare API for zones.
type CloudflareZonesResponseResult ¶
type CloudflareZonesResponseResult struct { Id string // The ID of the zone. Name string // The name of the zone. Permissions []string // The permissions associated with the zone. }
CloudflareZonesResponseResult represents a single zone in the Cloudflare API response.
type DnsProviderClient ¶
type DnsProviderClient interface { Provider }
DnsProviderClient defines the interface for DNS provider clients.
func NewDnsProviderClient ¶
func NewDnsProviderClient(ctx context.Context, cfg schema.QuartzConfig, secrets schema.QuartzSecrets) (DnsProviderClient, error)
NewDnsProviderClient creates a new DNS provider client based on the provided configuration and secrets. If the test mode is enabled, it returns a TestDnsProviderClient. Otherwise, it initializes the appropriate DNS provider client.
type DynamodbClient ¶
type DynamodbClient interface { dynamodb.DescribeTableAPIClient CreateTable(ctx context.Context, params *dynamodb.CreateTableInput, optFns ...func(*dynamodb.Options)) (*dynamodb.CreateTableOutput, error) DeleteTable(ctx context.Context, params *dynamodb.DeleteTableInput, optFns ...func(*dynamodb.Options)) (*dynamodb.DeleteTableOutput, error) }
DynamodbClient defines the interface for interacting with AWS DynamoDB.
type EksClient ¶
type EksClient interface {
DescribeCluster(ctx context.Context, params *eks.DescribeClusterInput, optFns ...func(*eks.Options)) (*eks.DescribeClusterOutput, error)
}
EksClient defines the interface for interacting with AWS EKS.
type EksToken ¶
type EksToken struct { Token token.Token // The EKS authentication token. JsonString string // The JSON representation of the token. }
EksToken represents an EKS authentication token and its JSON representation.
type EmptyProvider ¶
type EmptyProvider struct { Name string // The name of the provider. Error error // The error associated with the provider, if any. }
EmptyProvider represents a placeholder provider with no functionality.
func NewEmptyProvider ¶
func NewEmptyProvider(name string, err error) EmptyProvider
NewEmptyProvider creates a new instance of EmptyProvider with the specified name and error.
func (EmptyProvider) CheckAccess ¶
func (c EmptyProvider) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess performs an access check for the EmptyProvider. It always returns an EmptyProviderCheckResult with the associated error.
func (EmptyProvider) ProviderName ¶
func (c EmptyProvider) ProviderName() string
ProviderName returns the name of the EmptyProvider.
type EmptyProviderCheckResult ¶
type EmptyProviderCheckResult struct {
Error error // The error associated with the check result, if any.
}
EmptyProviderCheckResult represents the result of a check for an EmptyProvider.
func (EmptyProviderCheckResult) ToTable ¶
func (r EmptyProviderCheckResult) ToTable() ([]string, []ProviderCheckResultRow)
ToTable converts the EmptyProviderCheckResult into table headers and rows for display.
type GithubCheckAccessResult ¶
type GithubCheckAccessResult struct { Organization string // The organization name. Repository string // The repository name. Error error // Any error encountered during the access check. Name string // The full name of the repository. Pull bool // Indicates if the user has pull access. Push bool // Indicates if the user has push access. Triage bool // Indicates if the user has triage access. Maintain bool // Indicates if the user has maintain access. Admin bool // Indicates if the user has admin access. Packages bool // Indicates if the user has access to packages. }
GithubCheckAccessResult represents the result of a GitHub repository access check.
type GithubClient ¶
type GithubClient struct {
// contains filtered or unexported fields
}
GithubClient represents a client for interacting with the GitHub API.
func NewGithubClient ¶
func NewGithubClient(httpClient util.HttpClientFactory, providerName string, cfg schema.QuartzConfig, creds schema.GithubCredentials) (GithubClient, error)
NewGithubClient creates a new GitHub client with the specified configuration and credentials. Returns an error if the credentials are missing.
func (GithubClient) CheckAccess ¶
func (c GithubClient) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess performs an access check for the GitHub provider. It returns a GithubProviderCheckResult containing the results of the check.
func (GithubClient) CheckGithubRepoAccess ¶
func (c GithubClient) CheckGithubRepoAccess(ctx context.Context) ([]GithubCheckAccessResult, error)
CheckGithubRepoAccess checks access to the configured GitHub repositories. It returns a list of GithubCheckAccessResult and an error if any issues are encountered.
func (GithubClient) ProviderName ¶
func (c GithubClient) ProviderName() string
ProviderName returns the name of the GitHub provider.
func (GithubClient) Repositories ¶
func (c GithubClient) Repositories() []schema.RepositoryConfig
Repositories retrieves the list of repositories configured in the Quartz configuration.
type GithubProviderCheckResult ¶
type GithubProviderCheckResult struct { Status bool // Indicates if the check was successful. Results []GithubCheckAccessResult // The results of the access checks. Error error // Any error encountered during the check. }
GithubProviderCheckResult represents the result of a GitHub provider check.
func (GithubProviderCheckResult) ToTable ¶
func (r GithubProviderCheckResult) ToTable() ([]string, []ProviderCheckResultRow)
ToTable converts the GithubProviderCheckResult into table headers and rows for display.
type GithubTokenSource ¶
type GithubTokenSource struct {
AccessToken string // The GitHub access token.
}
GithubTokenSource represents a source for GitHub access tokens.
type IamClient ¶
type IamClient interface { ListAccountAliases(ctx context.Context, params *iam.ListAccountAliasesInput, optFns ...func(*iam.Options)) (*iam.ListAccountAliasesOutput, error) CreateServiceLinkedRole(ctx context.Context, params *iam.CreateServiceLinkedRoleInput, optFns ...func(*iam.Options)) (*iam.CreateServiceLinkedRoleOutput, error) }
IamClient defines the interface for interacting with AWS IAM.
type IronbankCheckAccessResult ¶
type IronbankCheckAccessResult struct { StatusCode int // The HTTP status code returned by the Ironbank API. Username string // The username used for the access check. Error error // Any error encountered during the access check. }
IronbankCheckAccessResult represents the result of an Ironbank access check.
func (IronbankCheckAccessResult) ToTable ¶
func (r IronbankCheckAccessResult) ToTable() ([]string, []ProviderCheckResultRow)
ToTable converts the IronbankCheckAccessResult into table headers and rows for display.
type IronbankClient ¶
type IronbankClient struct {
// contains filtered or unexported fields
}
IronbankClient represents a client for interacting with the Ironbank API.
func NewIronbankClient ¶
func NewIronbankClient(httpClient util.HttpClientFactory, providerName string, username string, password string) (*IronbankClient, error)
NewIronbankClient creates a new IronbankClient instance with the specified credentials. Returns an error if the username or password is missing.
func (*IronbankClient) CheckAccess ¶
func (c *IronbankClient) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess performs an access check against the Ironbank API. It returns an IronbankCheckAccessResult containing the result of the check.
func (*IronbankClient) ProviderName ¶
func (c *IronbankClient) ProviderName() string
ProviderName returns the name of the Ironbank provider.
type KubeconfigInfo ¶
type KubeconfigInfo struct { Cluster string Context string User string Endpoint string CertificateAuthority string Token string Expiration time.Time }
KubeconfigInfo contains information about the Kubernetes configuration.
func (KubeconfigInfo) Kubeconfig ¶
func (kc KubeconfigInfo) Kubeconfig(cfg quartzSchema.QuartzConfig) quartzSchema.Kubeconfig
Kubeconfig converts the KubeconfigInfo to a Kubeconfig structure.
func (KubeconfigInfo) ToKubeconfigYamlBytes ¶
func (kc KubeconfigInfo) ToKubeconfigYamlBytes(cfg quartzSchema.QuartzConfig) []byte
ToKubeconfigYamlBytes converts the KubeconfigInfo to YAML bytes.
type KubernetesApi ¶
type KubernetesApi interface { // ClientSet returns a Kubernetes clientset for interacting with core Kubernetes resources. ClientSet() (kubernetes.Interface, error) // DynamicClient returns a dynamic Kubernetes client for interacting with unstructured resources. DynamicClient() (dynamic.Interface, error) // DiscoveryClient returns a discovery client for querying API server metadata. DiscoveryClient() (discovery.DiscoveryInterface, error) }
KubernetesApi defines the interface for interacting with Kubernetes APIs.
func NewKubernetesApi ¶
func NewKubernetesApi(ctx context.Context, cfg quartzSchema.QuartzConfig, i *KubeconfigInfo) (KubernetesApi, error)
NewKubernetesApi creates a new KubernetesApi instance using the provided configuration and kubeconfig information. If test mode is enabled, it returns a mock implementation.
type KubernetesApiImpl ¶
type KubernetesApiImpl struct {
// contains filtered or unexported fields
}
KubernetesApiImpl is an implementation of KubernetesApi using a REST configuration.
func (KubernetesApiImpl) ClientSet ¶
func (api KubernetesApiImpl) ClientSet() (kubernetes.Interface, error)
ClientSet returns a Kubernetes clientset for interacting with core Kubernetes resources.
func (KubernetesApiImpl) DiscoveryClient ¶
func (api KubernetesApiImpl) DiscoveryClient() (discovery.DiscoveryInterface, error)
DiscoveryClient returns a discovery client for querying API server metadata.
func (KubernetesApiImpl) DynamicClient ¶
func (api KubernetesApiImpl) DynamicClient() (dynamic.Interface, error)
DynamicClient returns a dynamic Kubernetes client for interacting with unstructured resources.
type KubernetesApiMock ¶
type KubernetesApiMock struct {
// contains filtered or unexported fields
}
KubernetesApiMock is a mock implementation of the IKubernetesApi interface for testing purposes.
func NewKubernetesApiMock ¶
func NewKubernetesApiMock() *KubernetesApiMock
NewKubernetesApiMock creates a new instance of KubernetesApiMock with default API resources.
func (*KubernetesApiMock) AddResources ¶
func (api *KubernetesApiMock) AddResources(res ...*metav1.APIResourceList) *KubernetesApiMock
AddResources adds API resources to the mock discovery client.
func (KubernetesApiMock) ClientSet ¶
func (api KubernetesApiMock) ClientSet() (kubernetes.Interface, error)
ClientSet returns a fake Kubernetes clientset populated with the mock client objects.
func (KubernetesApiMock) DiscoveryClient ¶
func (api KubernetesApiMock) DiscoveryClient() (discovery.DiscoveryInterface, error)
DiscoveryClient returns a fake discovery client populated with the mock API resources.
func (KubernetesApiMock) DynamicClient ¶
func (api KubernetesApiMock) DynamicClient() (dynamic.Interface, error)
DynamicClient returns a fake dynamic client populated with the mock dynamic objects.
func (*KubernetesApiMock) WithClientObjects ¶
func (api *KubernetesApiMock) WithClientObjects(objects ...runtime.Object) *KubernetesApiMock
WithClientObjects adds client objects to the mock clientset.
func (*KubernetesApiMock) WithDynamicObjects ¶
func (api *KubernetesApiMock) WithDynamicObjects(objects ...runtime.Object) *KubernetesApiMock
WithDynamicObjects adds dynamic objects to the mock dynamic client.
func (*KubernetesApiMock) WithError ¶
func (api *KubernetesApiMock) WithError(err error) *KubernetesApiMock
WithError sets the error to be returned by the mock API.
type KubernetesAppConnectionInfo ¶
type KubernetesAppConnectionInfo struct { Name string PublicEndpoint string AdminUsername string AdminPassword string Error error }
KubernetesAppConnectionInfo contains information about an application's connection in Kubernetes.
type KubernetesClient ¶
type KubernetesClient struct {
// contains filtered or unexported fields
}
KubernetesClient is the implementation of the Kubernetes provider client.
func NewKubernetesClient ¶
func NewKubernetesClient(api KubernetesApi, kubeconfig KubeconfigInfo, cfg quartzSchema.QuartzConfig) (KubernetesClient, error)
NewKubernetesClient creates a new KubernetesClient instance.
func (KubernetesClient) CheckAccess ¶
func (c KubernetesClient) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess checks access to the Kubernetes cluster.
func (KubernetesClient) EnsureKubeconfig ¶
func (c KubernetesClient) EnsureKubeconfig(path string) error
EnsureKubeconfig ensures that the kubeconfig file exists at the specified path.
func (KubernetesClient) Export ¶
func (c KubernetesClient) Export(ctx context.Context, cfg quartzSchema.ExportConfig) (map[string][]byte, error)
Export exports Kubernetes resources based on the provided configuration.
func (KubernetesClient) ForEachDynamicResources ¶
func (c KubernetesClient) ForEachDynamicResources(ctx context.Context, kind schema.GroupVersionResource, ns string, onEachItem func(unstructured.Unstructured)) error
ForEachDynamicResources iterates over all dynamic resources of a specific kind and namespace.
func (KubernetesClient) GetAppConnectionInfo ¶
func (c KubernetesClient) GetAppConnectionInfo(ctx context.Context, name string, opts quartzSchema.ApplicationLookupConfig) KubernetesAppConnectionInfo
GetAppConnectionInfo retrieves connection information for an application.
func (KubernetesClient) GetConfigMapValue ¶
func (c KubernetesClient) GetConfigMapValue(ctx context.Context, ns string, name string) (map[string]string, error)
GetConfigMapValue retrieves the key-value pairs from a ConfigMap.
func (KubernetesClient) GetDynamicResource ¶
func (c KubernetesClient) GetDynamicResource(ctx context.Context, kind schema.GroupVersionResource, ns string, name string) (map[string]interface{}, error)
GetDynamicResource retrieves a dynamic resource from the cluster.
func (KubernetesClient) GetSecret ¶
func (c KubernetesClient) GetSecret(ctx context.Context, ns string, name string) (*corev1.Secret, error)
GetSecret retrieves a Secret from the cluster.
func (KubernetesClient) GetSecretValue ¶
func (c KubernetesClient) GetSecretValue(ctx context.Context, ns string, name string) (map[string]string, error)
GetSecretValue retrieves the key-value pairs from a Secret.
func (KubernetesClient) LookupKind ¶
func (c KubernetesClient) LookupKind(ctx context.Context, kind string) (schema.GroupVersionResource, error)
LookupKind looks up the GroupVersionResource for a given kind.
func (KubernetesClient) PrintClusterAppInfo ¶
func (c KubernetesClient) PrintClusterAppInfo(ctx context.Context, apps map[string]quartzSchema.ApplicationLookupConfig)
PrintClusterAppInfo prints detailed information about the specified applications in the cluster.
func (KubernetesClient) PrintClusterInfo ¶
func (c KubernetesClient) PrintClusterInfo(ctx context.Context)
PrintClusterInfo prints information about the cluster and its applications.
func (KubernetesClient) ProviderName ¶
func (c KubernetesClient) ProviderName() string
ProviderName returns the name of the provider.
func (KubernetesClient) RefreshExternalSecrets ¶
func (c KubernetesClient) RefreshExternalSecrets(ctx context.Context) ([]KubernetesResource, error)
RefreshExternalSecrets triggers a refresh of external secrets in the cluster.
func (KubernetesClient) Restart ¶
func (c KubernetesClient) Restart(ctx context.Context, kind schema.GroupVersionResource, ns string, name string) error
Restart restarts resources of a specific kind in the cluster.
func (KubernetesClient) Update ¶
func (c KubernetesClient) Update(ctx context.Context, kind schema.GroupVersionResource, ns string, obj *unstructured.Unstructured) (*unstructured.Unstructured, error)
Update updates a dynamic resource in the cluster.
func (KubernetesClient) WaitConditionState ¶
func (c KubernetesClient) WaitConditionState(ctx context.Context, kind schema.GroupVersionResource, ns string, name string, state string, timeoutSeconds int) error
WaitConditionState waits for a resource to reach a specific condition state.
func (KubernetesClient) WriteKubeconfig ¶
func (c KubernetesClient) WriteKubeconfig(w io.Writer) error
WriteKubeconfig writes the kubeconfig to the provided writer.
func (KubernetesClient) WriteKubeconfigFile ¶
func (c KubernetesClient) WriteKubeconfigFile(path string) error
WriteKubeconfigFile writes the kubeconfig to the specified file path.
type KubernetesLookupCache ¶
type KubernetesLookupCache struct {
// contains filtered or unexported fields
}
KubernetesLookupCache is a cache for Kubernetes resource kinds.
type KubernetesProviderCheckResult ¶
type KubernetesProviderCheckResult struct { Status bool Error error // contains filtered or unexported fields }
func (KubernetesProviderCheckResult) ToTable ¶
func (r KubernetesProviderCheckResult) ToTable() ([]string, []ProviderCheckResultRow)
ToTable converts the KubernetesProviderCheckResult into table headers and rows for display.
type KubernetesProviderClient ¶
type KubernetesProviderClient interface { Provider LookupKind(ctx context.Context, kind string) (schema.GroupVersionResource, error) WaitConditionState(ctx context.Context, kind schema.GroupVersionResource, ns string, name string, state string, timeoutSeconds int) error PrintClusterInfo(ctx context.Context) WriteKubeconfigFile(path string) error RefreshExternalSecrets(ctx context.Context) ([]KubernetesResource, error) Export(ctx context.Context, cfg quartzSchema.ExportConfig) (map[string][]byte, error) GetConfigMapValue(ctx context.Context, ns string, name string) (map[string]string, error) GetSecretValue(ctx context.Context, ns string, name string) (map[string]string, error) Restart(ctx context.Context, kind schema.GroupVersionResource, ns string, name string) error }
KubernetesProviderClient defines the interface for Kubernetes provider clients.
type KubernetesResource ¶
type KubernetesResource struct { Name string Namespace string Kind schema.GroupVersionResource Item unstructured.Unstructured }
KubernetesResource represents a Kubernetes resource.
type LazyAwsSdkClient ¶
type LazyAwsSdkClient struct {
// contains filtered or unexported fields
}
LazyAwsSdkClient is a lazy-loading implementation of AWS SDK clients. It initializes clients only when they are accessed.
func (*LazyAwsSdkClient) Dynamodb ¶
func (c *LazyAwsSdkClient) Dynamodb() DynamodbClient
Dynamodb returns a lazily initialized DynamoDB client.
func (*LazyAwsSdkClient) Eks ¶
func (c *LazyAwsSdkClient) Eks() EksClient
Eks returns a lazily initialized EKS client.
func (*LazyAwsSdkClient) EksTokenGenerator ¶
func (c *LazyAwsSdkClient) EksTokenGenerator() (token.Generator, error)
EksTokenGenerator returns a new EKS token generator.
func (*LazyAwsSdkClient) Iam ¶
func (c *LazyAwsSdkClient) Iam() IamClient
Iam returns a lazily initialized IAM client.
func (*LazyAwsSdkClient) S3 ¶
func (c *LazyAwsSdkClient) S3() S3Client
S3 returns a lazily initialized S3 client.
func (*LazyAwsSdkClient) S3Region ¶
func (c *LazyAwsSdkClient) S3Region(region string) S3Client
S3Region returns an S3 client configured for the specified region.
func (*LazyAwsSdkClient) Sts ¶
func (c *LazyAwsSdkClient) Sts() StsClient
Sts returns a lazily initialized STS client.
type LocalClient ¶
type LocalClient struct {
Name string // The name of the local cluster.
}
LocalClient represents a local provider client.
func (LocalClient) CheckAccess ¶
func (c LocalClient) CheckAccess(ctx context.Context) ProviderCheckResult
CheckAccess performs an access check for the local provider. Always returns an EmptyProviderCheckResult as no access check is required.
func (LocalClient) CheckConfig ¶
func (c LocalClient) CheckConfig() error
CheckConfig validates the configuration for the local provider. Always returns nil as no validation is required for the local provider.
func (LocalClient) CreateStateBackend ¶
func (c LocalClient) CreateStateBackend(_ context.Context) error
CreateStateBackend skips the creation of a state backend for the local provider. Logs a message indicating that the operation is skipped.
func (LocalClient) CurrentIdentity ¶
func (c LocalClient) CurrentIdentity(ctx context.Context) (CloudProviderIdentity, error)
CurrentIdentity returns the identity of the local provider. Always returns a static identity for the local provider.
func (LocalClient) DestroyStateBackend ¶
func (c LocalClient) DestroyStateBackend(_ context.Context) error
DestroyStateBackend skips the destruction of a state backend for the local provider. Logs a message indicating that the operation is skipped.
func (LocalClient) KubeconfigInfo ¶
func (c LocalClient) KubeconfigInfo(ctx context.Context) (KubeconfigInfo, error)
KubeconfigInfo returns an error as kubeconfig information is not supported for the local provider.
func (LocalClient) PrepareAccount ¶
func (c LocalClient) PrepareAccount(ctx context.Context) error
PrepareAccount performs no operation for the local provider. Always returns nil as no account preparation is required.
func (LocalClient) PrintClusterInfo ¶
func (c LocalClient) PrintClusterInfo(ctx context.Context) error
PrintClusterInfo performs no operation for the local provider. Always returns nil as no cluster information is available.
func (LocalClient) PrintConfig ¶
func (c LocalClient) PrintConfig()
PrintConfig prints the configuration of the local provider. Displays the name of the local cluster in a table format.
func (LocalClient) ProviderName ¶
func (c LocalClient) ProviderName() string
ProviderName returns the name of the provider.
func (LocalClient) StateBackendInfo ¶
func (c LocalClient) StateBackendInfo(_ string) CloudProviderStateBackend
StateBackendInfo returns the state backend information for the local provider. Always returns a static state backend configuration.
type Provider ¶
type Provider interface { // ProviderName returns the name of the provider. ProviderName() string // CheckAccess performs an access check for the provider. CheckAccess(context.Context) ProviderCheckResult }
Provider defines the interface for all providers.
func NewImageRegistryProviderClient ¶
func NewImageRegistryProviderClient(ctx context.Context, cfg schema.QuartzConfig, secrets schema.QuartzSecrets) (Provider, error)
NewImageRegistryProviderClient creates a new image registry provider client based on the configuration and secrets. If image repository mirroring is disabled, it initializes an Ironbank client. Otherwise, it initializes a GitHub client.
func NewSourceControlProviderClient ¶
func NewSourceControlProviderClient(ctx context.Context, cfg schema.QuartzConfig, secrets schema.QuartzSecrets) (Provider, error)
NewSourceControlProviderClient creates a new source control provider client.
type ProviderCheckOpts ¶
type ProviderCheckOpts struct {
// contains filtered or unexported fields
}
ProviderCheckOpts contains options for performing provider checks.
func NewProviderCheckOpts ¶
func NewProviderCheckOpts(ctx context.Context, f ProviderFactory) ProviderCheckOpts
NewProviderCheckOpts creates a new ProviderCheckOpts instance. It initializes the list of providers to check by iterating over the provided factory.
type ProviderCheckResult ¶
type ProviderCheckResult interface { // ToTable converts the check result into table headers and rows. ToTable() ([]string, []ProviderCheckResultRow) }
IProviderCheckResult defines the interface for provider check results.
type ProviderCheckResultRow ¶
type ProviderCheckResultRow struct { Status bool // Status indicates whether the check was successful. Data []string // Data contains the row's data fields. Error error // Error contains any error associated with the row. }
ProviderCheckResultRow represents a single row in the provider check result table.
type ProviderFactory ¶
type ProviderFactory struct {
// contains filtered or unexported fields
}
ProviderFactory is responsible for creating and managing provider clients.
func NewProviderFactory ¶
func NewProviderFactory(cfg schema.QuartzConfig, secrets schema.QuartzSecrets, opts ...ProviderFactoryOption) *ProviderFactory
NewProviderFactory creates a new ProviderFactory with the given configuration and secrets.
func (*ProviderFactory) Cloud ¶
func (f *ProviderFactory) Cloud(ctx context.Context) (CloudProviderClient, error)
Cloud returns the cloud provider client, initializing it if necessary.
func (*ProviderFactory) Dns ¶
func (f *ProviderFactory) Dns(ctx context.Context) (DnsProviderClient, error)
Dns returns the DNS provider client, initializing it if necessary.
func (*ProviderFactory) ImageRegistry ¶
func (f *ProviderFactory) ImageRegistry(ctx context.Context) (Provider, error)
ImageRegistry returns the image registry provider client, initializing it if necessary.
func (*ProviderFactory) Kubernetes ¶
func (f *ProviderFactory) Kubernetes(ctx context.Context) (KubernetesProviderClient, error)
Kubernetes returns the Kubernetes provider client, initializing it if necessary.
func (*ProviderFactory) SourceControl ¶
func (f *ProviderFactory) SourceControl(ctx context.Context) (Provider, error)
SourceControl returns the source control provider client, initializing it if necessary.
type ProviderFactoryOption ¶
type ProviderFactoryOption func(*ProviderFactory)
func WithCloudProvider ¶
func WithCloudProvider(p CloudProviderClient) ProviderFactoryOption
WithCloudProvider sets the cloud provider client and returns the updated factory.
func WithConfig ¶
func WithConfig(c schema.QuartzConfig) ProviderFactoryOption
WithConfig sets the Quartz configuration and returns the updated factory.
func WithDnsProvider ¶
func WithDnsProvider(p DnsProviderClient) ProviderFactoryOption
WithDnsProvider sets the DNS provider client and returns the updated factory.
func WithImageRegistryProvider ¶
func WithImageRegistryProvider(p Provider) ProviderFactoryOption
WithImageRegistryProvider sets the image registry provider client and returns the updated factory.
func WithKubernetesProvider ¶
func WithKubernetesProvider(p KubernetesProviderClient) ProviderFactoryOption
WithKubernetesProvider sets the Kubernetes provider client and returns the updated factory.
func WithSecrets ¶
func WithSecrets(s schema.QuartzSecrets) ProviderFactoryOption
WithSecrets sets the Quartz secrets and returns the updated factory.
func WithSourceControlProvider ¶
func WithSourceControlProvider(p Provider) ProviderFactoryOption
WithSourceControlProvider sets the source control provider client and returns the updated factory.
type S3Client ¶
type S3Client interface { HeadBucket(ctx context.Context, params *s3.HeadBucketInput, optFns ...func(*s3.Options)) (*s3.HeadBucketOutput, error) CreateBucket(ctx context.Context, params *s3.CreateBucketInput, optFns ...func(*s3.Options)) (*s3.CreateBucketOutput, error) DeleteBucket(ctx context.Context, params *s3.DeleteBucketInput, optFns ...func(*s3.Options)) (*s3.DeleteBucketOutput, error) ListObjectVersions(ctx context.Context, params *s3.ListObjectVersionsInput, optFns ...func(*s3.Options)) (*s3.ListObjectVersionsOutput, error) DeleteObjects(ctx context.Context, params *s3.DeleteObjectsInput, optFns ...func(*s3.Options)) (*s3.DeleteObjectsOutput, error) }
S3Client defines the interface for interacting with AWS S3.