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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AWSAuth ¶
type AWSAuth struct {
AccessKeyID string `bson:"access_key_id" json:"access_key_id"`
SecretAccessKey string `bson:"secret_access_key" json:"secret_access_key"`
SessionToken string `bson:"session_token" json:"session_token"`
}
AWSAuth holds necessary auth credentials for interacting with aws
type CivoAuth ¶
type CivoAuth struct {
Token string `bson:"token" json:"token"`
}
CivoAuth holds necessary auth credentials for interacting with civo
type CloudflareAuth ¶ added in v0.3.10
type CloudflareAuth struct {
Token string `bson:"token" json:"token"`
APIToken string `bson:"api_token" json:"api_token"`
OriginCaIssuerKey string `bson:"origin_ca_issuer_key" json:"origin_ca_issuer_key"`
}
VultrAuth holds necessary auth credentials for interacting with vultr
type Cluster ¶
type Cluster struct {
ID primitive.ObjectID `bson:"_id" json:"_id"`
CreationTimestamp string `bson:"creation_timestamp" json:"creation_timestamp"`
// Status
Status string `bson:"status" json:"status"`
LastCondition string `bson:"last_condition" json:"last_condition"`
InProgress bool `bson:"in_progress" json:"in_progress"`
// Identifiers
AlertsEmail string `bson:"alerts_email" json:"alerts_email"`
CloudProvider string `bson:"cloud_provider" json:"cloud_provider"`
CloudRegion string `bson:"cloud_region" json:"cloud_region"`
ClusterName string `bson:"cluster_name" json:"cluster_name"`
ClusterID string `bson:"cluster_id" json:"cluster_id"`
ClusterType string `bson:"cluster_type" json:"cluster_type"`
DomainName string `bson:"domain_name" json:"domain_name"`
DnsProvider string `bson:"dns_provider" json:"dns_provider"`
// Auth
AWSAuth AWSAuth `bson:"aws_auth,omitempty" json:"aws_auth,omitempty"`
CivoAuth CivoAuth `bson:"civo_auth,omitempty" json:"civo_auth,omitempty"`
DigitaloceanAuth DigitaloceanAuth `bson:"do_auth,omitempty" json:"do_auth,omitempty"`
VultrAuth VultrAuth `bson:"vultr_auth,omitempty" json:"vultr_auth,omitempty"`
CloudflareAuth CloudflareAuth `bson:"cf_api_token,omitempty" json:"cf_api_token,omitempty"`
GitAuth GitAuth `bson:"git_auth,omitempty" json:"git_auth,omitempty"`
GitopsTemplateURL string `bson:"gitops_template_url" json:"gitops_template_url"`
GitopsTemplateBranch string `bson:"gitops_template_branch" json:"gitops_template_branch"`
GitProvider string `bson:"git_provider" json:"git_provider"`
GitProtocol string `bson:"git_protocol" json:"git_protocol"`
GitHost string `bson:"git_host" json:"git_host"`
GitlabOwnerGroupID int `bson:"gitlab_owner_group_id" json:"gitlab_owner_group_id"`
AtlantisWebhookSecret string `bson:"atlantis_webhook_secret" json:"atlantis_webhook_secret"`
AtlantisWebhookURL string `bson:"atlantis_webhook_url" json:"atlantis_webhook_url"`
KubefirstTeam string `bson:"kubefirst_team" json:"kubefirst_team"`
StateStoreCredentials StateStoreCredentials `bson:"state_store_credentials,omitempty" json:"state_store_credentials,omitempty"`
StateStoreDetails StateStoreDetails `bson:"state_store_details,omitempty" json:"state_store_details,omitempty"`
ArgoCDUsername string `bson:"argocd_username" json:"argocd_username"`
ArgoCDPassword string `bson:"argocd_password" json:"argocd_password"`
ArgoCDAuthToken string `bson:"argocd_auth_token" json:"argocd_auth_token"`
// Container Registry and Secrets
ECR bool `bson:"ecr" json:"ecr"`
// kms
AWSAccountId string `bson:"aws_account_id,omitempty" json:"aws_account_id,omitempty"`
AWSKMSKeyId string `bson:"aws_kms_key_id,omitempty" json:"aws_kms_key_id,omitempty"`
AWSKMSKeyDetokenizedCheck bool `bson:"aws_kms_key_detokenized_check" json:"aws_kms_key_detokenized_check"`
// Telemetry
UseTelemetry bool `bson:"use_telemetry"`
// Checks
InstallToolsCheck bool `bson:"install_tools_check" json:"install_tools_check"`
DomainLivenessCheck bool `bson:"domain_liveness_check" json:"domain_liveness_check"`
StateStoreCredsCheck bool `bson:"state_store_creds_check" json:"state_store_creds_check"`
StateStoreCreateCheck bool `bson:"state_store_create_check" json:"state_store_create_check"`
GitInitCheck bool `bson:"git_init_check" json:"git_init_check"`
KbotSetupCheck bool `bson:"kbot_setup_check" json:"kbot_setup_check"`
GitopsReadyCheck bool `bson:"gitops_ready_check" json:"gitops_ready_check"`
GitTerraformApplyCheck bool `bson:"git_terraform_apply_check" json:"git_terraform_apply_check"`
GitopsPushedCheck bool `bson:"gitops_pushed_check" json:"gitops_pushed_check"`
CloudTerraformApplyCheck bool `bson:"cloud_terraform_apply_check" json:"cloud_terraform_apply_check"`
CloudTerraformApplyFailedCheck bool `bson:"cloud_terraform_apply_failed_check" json:"cloud_terraform_apply_failed_check"`
ClusterSecretsCreatedCheck bool `bson:"cluster_secrets_created_check" json:"cluster_secrets_created_check"`
ArgoCDInstallCheck bool `bson:"argocd_install_check" json:"argocd_install_check"`
ArgoCDInitializeCheck bool `bson:"argocd_initialize_check" json:"argocd_initialize_check"`
ArgoCDCreateRegistryCheck bool `bson:"argocd_create_registry_check" json:"argocd_create_registry_check"`
ArgoCDDeleteRegistryCheck bool `bson:"argocd_delete_registry_check" json:"argocd_delete_registry_check"`
VaultInitializedCheck bool `bson:"vault_initialized_check" json:"vault_initialized_check"`
VaultTerraformApplyCheck bool `bson:"vault_terraform_apply_check" json:"vault_terraform_apply_check"`
UsersTerraformApplyCheck bool `bson:"users_terraform_apply_check" json:"users_terraform_apply_check"`
WorkloadClusters []WorkloadCluster `bson:"workload_clusters,omitempty" json:"workload_clusters,omitempty"`
}
Cluster describes the configuration storage for a Kubefirst cluster object
type ClusterDefinition ¶ added in v0.3.10
type ClusterDefinition struct {
//Cluster
AdminEmail string `json:"admin_email" binding:"required"`
CloudProvider string `json:"cloud_provider" binding:"required,oneof=aws civo digitalocean vultr"`
CloudRegion string `json:"cloud_region" binding:"required"`
ClusterName string `json:"cluster_name,omitempty"`
DomainName string `json:"domain_name" binding:"required"`
DnsProvider string `json:"dns_provider,omitempty" binding:"required"`
Type string `json:"type" binding:"required,oneof=mgmt workload"`
//Git
GitopsTemplateURL string `json:"gitops_template_url"`
GitopsTemplateBranch string `json:"gitops_template_branch"`
GitProvider string `json:"git_provider" binding:"required,oneof=github gitlab"`
GitProtocol string `json:"git_protocol" binding:"required,oneof=ssh https"`
//AWS
ECR bool `json:"ecr,omitempty"`
//Auth
AWSAuth AWSAuth `json:"aws_auth,omitempty"`
CivoAuth CivoAuth `json:"civo_auth,omitempty"`
DigitaloceanAuth DigitaloceanAuth `json:"do_auth,omitempty"`
VultrAuth VultrAuth `json:"vultr_auth,omitempty"`
CloudflareAuth CloudflareAuth `json:"cloudflare_auth,omitempty"`
GitAuth GitAuth `json:"git_auth,omitempty"`
}
ClusterDefinition describes an incoming request to create a cluster
type DigitaloceanAuth ¶
type DigitaloceanAuth struct {
Token string `bson:"token" json:"token"`
SpacesKey string `bson:"spaces_key" json:"spaces_key"`
SpacesSecret string `bson:"spaces_secret" json:"spaces_secret"`
}
DigitaloceanAuth holds necessary auth credentials for interacting with digitalocean
type GitAuth ¶ added in v0.3.10
type GitAuth struct {
Token string `bson:"git_token,omitempty" json:"git_token,omitempty"`
User string `bson:"git_username,omitempty" json:"git_username,omitempty"`
Owner string `bson:"git_owner,omitempty" json:"git_owner,omitempty"`
PublicKey string `bson:"public_key,omitempty" json:"public_key,omitempty"`
PrivateKey string `bson:"private_key,omitempty" json:"private_key,omitempty"`
PublicKeys string `bson:"public_keys,omitempty" json:"public_keys,omitempty"`
}
Auth for Git Provider
type ImportClusterRequest ¶
type ImportClusterRequest struct {
ClusterName string `bson:"cluster_name" json:"cluster_name"`
CloudRegion string `bson:"cloud_region" json:"cloud_region"`
CloudProvider string `bson:"cloud_provider" json:"cloud_provider"`
StateStoreCredentials StateStoreCredentials `bson:"state_store_credentials" json:"state_store_credentials"`
StateStoreDetails StateStoreDetails `bson:"state_store_details" json:"state_store_details"`
}
ImportClusterRequest
type KubernetesClient ¶ added in v0.3.2
type KubernetesClient struct {
Clientset *kubernetes.Clientset
RestConfig *rest.Config
KubeConfigPath string
}
type ProxyImportRequest ¶ added in v0.3.6
type ProxyImportRequest struct {
Body ImportClusterRequest `bson:"body" json:"body"`
Url string `bson:"url" json:"url"`
}
type PushBucketObject ¶
type PushBucketObject struct {
LocalFilePath string `json:"local_file_path"`
RemoteFilePath string `json:"remote_file_path"`
ContentType string `json:"content_type"`
}
PushBucketObject
type StateStoreCredentials ¶
type StateStoreCredentials struct {
AccessKeyID string `bson:"access_key_id,omitempty" json:"access_key_id,omitempty"`
SecretAccessKey string `bson:"secret_access_key,omitempty" json:"secret_access_key,omitempty"`
SessionToken string `bson:"session_token,omitempty" json:"session_token,omitempty"`
Name string `bson:"name,omitempty" json:"name,omitempty"`
ID string `bson:"id,omitempty" json:"id,omitempty"`
}
StateStoreCredentials
type StateStoreDetails ¶
type StateStoreDetails struct {
Name string `bson:"name,omitempty" json:"name,omitempty"`
ID string `bson:"id,omitempty" json:"id,omitempty"`
Hostname string `bson:"hostname,omitempty" json:"hostname,omitempty"`
AWSStateStoreBucket string `bson:"aws_state_store_bucket,omitempty" json:"aws_state_store_bucket,omitempty"`
AWSArtifactsBucket string `bson:"aws_artifacts_bucket,omitempty" json:"aws_artifacts_bucket,omitempty"`
}
StateStoreDetails
type VultrAuth ¶
type VultrAuth struct {
Token string `bson:"token" json:"token"`
}
VultrAuth holds necessary auth credentials for interacting with vultr
type WorkloadCluster ¶ added in v0.3.14
type WorkloadCluster struct {
AdminEmail string `bson:"admin_email,omitempty" json:"admin_email,omitempty"`
CloudProvider string `bson:"cloud_provider,omitempty" json:"cloud_provider,omitempty"`
ClusterID string `bson:"cluster_id,omitempty" json:"cluster_id,omitempty"`
ClusterName string `bson:"cluster_name,omitempty" json:"cluster_name,omitempty"`
ClusterType string `bson:"cluster_type,omitempty" json:"cluster_type,omitempty"`
CloudRegion string `bson:"cloud_region,omitempty" json:"cloud_region,omitempty"`
CreationTimestamp string `bson:"creation_timestamp" json:"creation_timestamp"`
DomainName string `bson:"domain_name,omitempty" json:"domain_name,omitempty"`
DnsProvider string `bson:"dns_provider,omitempty" json:"dns_provider,omitempty"`
Environment string `bson:"environment,omitempty" json:"environment,omitempty"`
GitAuth GitAuth `bson:"git_auth,omitempty" json:"git_auth,omitempty"`
InstanceSize string `bson:"instance_size,omitempty" json:"instance_size,omitempty"`
MachineType string `bson:"machine_type,omitempty" json:"machine_type,omitempty"`
NodeCount int `bson:"node_count,omitempty" json:"node_count,omitempty"`
Status string `bson:"status,omitempty" json:"status,omitempty"`
}