Documentation ¶
Overview ¶
Copyright (C) 2021-2023, Kubefirst
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Copyright (C) 2021-2023, Kubefirst ¶
This program is licensed under MIT. See the LICENSE file for more details.
Index ¶
- Constants
- func AdjustGitopsRepo(...) error
- func AdjustMetaphorRepo(destinationMetaphorRepoGitURL, gitopsRepoDir, gitProvider, k1Dir string) error
- func DetokenizeGitGitops(path string, tokens *GitOpsDirectoryValues) error
- func DetokenizeGitMetaphor(path string, tokens *MetaphorTokenValues) error
- func DownloadTools(awsConfig *AwsConfig, kubectlClientVersion string, ...) error
- func NewAwsV2(region string) aws.Config
- func NewAwsV3(region string, accessKeyID string, secretAccessKey string, sessionToken string) aws.Config
- func NewClientset(cluster *eks.Cluster) (*kubernetes.Clientset, error)
- func NewRestConfig(cluster *eks.Cluster) (*rest.Config, error)
- func PrepareGitRepositories(gitProvider string, clusterName string, clusterType string, ...) error
- type ARecord
- type AWSConfiguration
- func (conf *AWSConfiguration) CheckAvailabilityZones(region string) (bool, error)
- func (conf *AWSConfiguration) CreateBucket(bucketName string) (*s3.CreateBucketOutput, error)
- func (conf *AWSConfiguration) DeleteEKSSecurityGroups(region string, eksClusterName string) error
- func (conf *AWSConfiguration) DeleteElasticLoadBalancer(elbdp ElbDeletionParameters) error
- func (conf *AWSConfiguration) DeleteSecurityGroup(region string, sgid string) error
- func (conf *AWSConfiguration) GetCallerIdentity() (*sts.GetCallerIdentityOutput, error)
- func (conf *AWSConfiguration) GetECRAuthToken() (string, error)
- func (conf *AWSConfiguration) GetHostedZoneID(hostedZoneName string) (string, error)
- func (conf *AWSConfiguration) GetIamRole(roleName string) (*iam.GetRoleOutput, error)
- func (conf *AWSConfiguration) GetKmsKeyID(keyAlias string) (string, error)
- func (conf *AWSConfiguration) GetLoadBalancersForDeletion(eksClusterName string) ([]ElbDeletionParameters, error)
- func (conf *AWSConfiguration) GetServiceQuotas(services []string) (map[string][]QuotaDetailResponse, error)
- func (conf *AWSConfiguration) ListBuckets() (*s3.ListBucketsOutput, error)
- func (conf *AWSConfiguration) ListCompatibleRegions() ([]string, error)
- func (conf *AWSConfiguration) ListQuotas() (*servicequotas.GetServiceQuotaOutput, error)
- func (conf *AWSConfiguration) TestHostedZoneLiveness(dryRun bool, hostedZoneName string) bool
- type AwsConfig
- type ElbDeletionParameters
- type ElbTags
- type GitOpsDirectoryValues
- type MetaphorTokenValues
- type QuotaDetailResponse
- type TXTRecord
Constants ¶
const ( CloudProvider = "aws" GithubHost = "github.com" GitlabHost = "gitlab.com" KubectlClientVersion = "v1.25.7" LocalhostOS = runtime.GOOS LocalhostArch = runtime.GOARCH TerraformClientVersion = "1.3.8" ArgocdHelmChartVersion = "4.10.5" ArgocdPortForwardURL = pkg.ArgocdPortForwardURL VaultPortForwardURL = pkg.VaultPortForwardURL )
Variables ¶
This section is empty.
Functions ¶
func AdjustGitopsRepo ¶
func AdjustMetaphorRepo ¶
func DetokenizeGitGitops ¶
func DetokenizeGitGitops(path string, tokens *GitOpsDirectoryValues) error
detokenizeDirectoryRecursively - Translate tokens by values on a given path
func DetokenizeGitMetaphor ¶
func DetokenizeGitMetaphor(path string, tokens *MetaphorTokenValues) error
detokenizeGithubMetaphor - Translate tokens by values on a given path
func DownloadTools ¶
func NewClientset ¶
func NewClientset(cluster *eks.Cluster) (*kubernetes.Clientset, error)
func PrepareGitRepositories ¶
func PrepareGitRepositories( gitProvider string, clusterName string, clusterType string, destinationGitopsRepoGitURL string, gitopsDir string, gitopsTemplateBranch string, gitopsTemplateURL string, destinationMetaphorRepoGitURL string, k1Dir string, gitopsTokens *GitOpsDirectoryValues, metaphorDir string, metaphorTokens *MetaphorTokenValues, ) error
Types ¶
type ARecord ¶
type ARecord struct { Name string RecordType string TTL *int64 AliasTarget *route53Types.AliasTarget }
ARecord stores Route53 A record data
type AWSConfiguration ¶
AWSConfiguration stores session data to organize all AWS functions into a single struct
func (*AWSConfiguration) CheckAvailabilityZones ¶
func (conf *AWSConfiguration) CheckAvailabilityZones(region string) (bool, error)
CheckAvailabilityZones determines whether or not an aws region is compatible with the minimum availability zone requirement specified by consumption of aws Terraform modules
func (*AWSConfiguration) CreateBucket ¶
func (conf *AWSConfiguration) CreateBucket(bucketName string) (*s3.CreateBucketOutput, error)
CreateBucket
func (*AWSConfiguration) DeleteEKSSecurityGroups ¶
func (conf *AWSConfiguration) DeleteEKSSecurityGroups(region string, eksClusterName string) error
DeleteEKSSecurityGroups deletes security groups associated with an EKS cluster
func (*AWSConfiguration) DeleteElasticLoadBalancer ¶
func (conf *AWSConfiguration) DeleteElasticLoadBalancer(elbdp ElbDeletionParameters) error
DeleteElasticLoadBalancer deletes an Elastic Load Balancer associated with an EKS cluster
func (*AWSConfiguration) DeleteSecurityGroup ¶
func (conf *AWSConfiguration) DeleteSecurityGroup(region string, sgid string) error
DeleteSecurityGroup deletes a security group
func (*AWSConfiguration) GetCallerIdentity ¶
func (conf *AWSConfiguration) GetCallerIdentity() (*sts.GetCallerIdentityOutput, error)
func (*AWSConfiguration) GetECRAuthToken ¶
func (conf *AWSConfiguration) GetECRAuthToken() (string, error)
func (*AWSConfiguration) GetHostedZoneID ¶
func (conf *AWSConfiguration) GetHostedZoneID(hostedZoneName string) (string, error)
GetHostedZoneID returns the ID of a hosted zone if valid
func (*AWSConfiguration) GetIamRole ¶
func (conf *AWSConfiguration) GetIamRole(roleName string) (*iam.GetRoleOutput, error)
func (*AWSConfiguration) GetKmsKeyID ¶
func (conf *AWSConfiguration) GetKmsKeyID(keyAlias string) (string, error)
func (*AWSConfiguration) GetLoadBalancersForDeletion ¶
func (conf *AWSConfiguration) GetLoadBalancersForDeletion(eksClusterName string) ([]ElbDeletionParameters, error)
GetLoadBalancersForDeletion gets all load balancers and returns details for a load balancer associated with the target EKS cluster
func (*AWSConfiguration) GetServiceQuotas ¶
func (conf *AWSConfiguration) GetServiceQuotas(services []string) (map[string][]QuotaDetailResponse, error)
GetServiceQuotas
func (*AWSConfiguration) ListBuckets ¶
func (conf *AWSConfiguration) ListBuckets() (*s3.ListBucketsOutput, error)
func (*AWSConfiguration) ListCompatibleRegions ¶
func (conf *AWSConfiguration) ListCompatibleRegions() ([]string, error)
ListCompatibleRegions returns aws regions that have the minimum number of availability zones required to support the kubefirst platform
func (*AWSConfiguration) ListQuotas ¶
func (conf *AWSConfiguration) ListQuotas() (*servicequotas.GetServiceQuotaOutput, error)
func (*AWSConfiguration) TestHostedZoneLiveness ¶
func (conf *AWSConfiguration) TestHostedZoneLiveness(dryRun bool, hostedZoneName string) bool
TestHostedZoneLiveness checks Route53 for the liveness test record
type AwsConfig ¶
type AwsConfig struct { ArgoWorkflowsDir string DestinationGitopsRepoHttpsURL string DestinationGitopsRepoGitURL string DestinationMetaphorRepoHttpsURL string DestinationMetaphorRepoGitURL string GitopsDir string GitProvider string K1Dir string Kubeconfig string KubectlClient string KubefirstBotSSHPrivateKey string KubefirstConfig string LogsDir string MetaphorDir string RegistryAppName string RegistryYaml string SSLBackupDir string TerraformClient string ToolsDir string }
type ElbDeletionParameters ¶
ElbDeletionParameters describes an Elastic Load Balancer name and source security group to delete
type GitOpsDirectoryValues ¶
type GitOpsDirectoryValues struct { AlertsEmail string AtlantisAllowList string CloudProvider string CloudRegion string ClusterId string ClusterName string ClusterType string DomainName string Kubeconfig string KubefirstArtifactsBucket string KubefirstStateStoreBucket string KubefirstTeam string KubefirstVersion string ArgoCDIngressURL string ArgoCDIngressNoHTTPSURL string ArgoWorkflowsIngressURL string ArgoWorkflowsIngressNoHTTPSURL string AtlantisIngressURL string AtlantisIngressNoHTTPSURL string ChartMuseumIngressURL string VaultIngressURL string VaultIngressNoHTTPSURL string VouchIngressURL string AtlantisWebhookURL string AwsIamArnAccountRoot string AwsKmsKeyId string AwsNodeCapacityType string AwsAccountID string GitDescription string GitNamespace string GitProvider string GitRunner string GitRunnerDescription string GitRunnerNS string GitURL string GitHubHost string GitHubOwner string GitHubUser string GitlabHost string GitlabOwner string GitlabOwnerGroupID int GitlabUser string GitOpsRepoAtlantisWebhookURL string GitOpsRepoGitURL string GitOpsRepoNoHTTPSURL string ContainerRegistryURL string UseTelemetry string }
todo standardize on field names