Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command *cli.Command = &cli.Command{ Name: "deploy", Aliases: []string{"d"}, Usage: "Deploy an application to a Kubernetes cluster", Hidden: true, Flags: []cli.Flag{ shared.SystemNameFlag( "The name of the system (Kubernetes namespace) to deploy to.", true, ), shared.RuntimeCloudProviderFlag(), shared.HelmValuesFileFlag(), &cli.StringFlag{ Name: "image-tag", Aliases: []string{"i"}, Usage: "The image tag to deploy.", Required: true, }, &cli.StringFlag{ Name: "environment", Aliases: []string{"e"}, Usage: "The environment to deploy to: sandbox, dev, test or prod", Value: "dev", Action: func(c *cli.Context, environment string) error { allowedEnvironments := []string{"sandbox", "dev", "test", "prod"} if !slices.Contains(allowedEnvironments, environment) { return cli.Exit(fmt.Sprintf("Invalid environment provided: must be one of %v", allowedEnvironments), 1) } return nil }, }, &cli.StringFlag{ Name: "workload-type", Aliases: []string{"w"}, Usage: "The Kubernetes workload type to use: deployment or statefulset", Value: "deployment", Action: func(c *cli.Context, workloadType string) error { allowedWorkloadTypes := []string{"deployment", "statefulset"} if !slices.Contains(allowedWorkloadTypes, workloadType) { return cli.Exit(fmt.Sprintf("Invalid workload type provided: must be one of %v", allowedWorkloadTypes), 1) } return nil }, }, &cli.StringFlag{ Name: "commit-hash", Aliases: []string{"c"}, Usage: "The commit hash of the commit being deployed. Used for deployment annotations. If you are running this command from a git repository, the commit hash of the latest commit in the currently checked out branch will be used by default.", }, &cli.StringFlag{ Name: "commit-message", Aliases: []string{"m"}, Usage: "The commit message of the commit being deployed. Used for deployment annotations. If you are running this command from a git repository, the commit message of the latest commit in the currently checked out branch will be used by default.", }, &cli.StringFlag{ Name: "repository-name", Aliases: []string{"n"}, Usage: "Name of the repository the code of the application is stored in. Used for deployment annotations. If you are running this command from a git repository, that repository name will be used by default.", }, &cli.BoolFlag{ Name: "dry-run", Aliases: []string{"D"}, Usage: "Simulate the deployment without actually deploying.", }, &cli.StringFlag{ Name: "azure-tenant-id", Usage: "The AKS tenant ID to use", EnvVars: []string{"3LV_AZURE_TENANT_ID"}, }, &cli.StringFlag{ Name: "azure-client-id", Usage: "The client ID to use when authenticating with the registry. Must be combined with --azure-federated-token.", EnvVars: []string{"3LV_AZURE_CLIENT_ID"}, }, &cli.StringFlag{ Name: "azure-federated-token", Usage: "The federated token to use when authenticating with the Azure Container Registry. Must be combined with --client-id.", EnvVars: []string{"3LV_AZURE_FEDERATED_TOKEN"}, }, &cli.StringFlag{ Name: "aks-subscription-id", Usage: "Subscription ID of the AKS cluster to deploy to.", EnvVars: []string{"3LV_AKS_SUBSCRIPTION_ID"}, }, &cli.StringFlag{ Name: "aks-cluster-name", Usage: "Name of the AKS cluster to deploy to.", EnvVars: []string{"3LV_AKS_CLUSTER_NAME"}, }, &cli.StringFlag{ Name: "aks-resource-group-name", Usage: "Resource group name of the AKS cluster to deploy to.", EnvVars: []string{"3LV_AKS_RESOURCE_GROUP_NAME"}, }, &cli.StringFlag{ Name: "gke-project-id", Usage: "Project ID of the GKE cluster to deploy to.", EnvVars: []string{"3LV_GKE_PROJECT_ID"}, }, &cli.StringFlag{ Name: "gke-cluster-name", Usage: "Name of the GKE cluster to deploy to.", EnvVars: []string{"3LV_GKE_CLUSTER_NAME"}, }, &cli.StringFlag{ Name: "gke-cluster-location", Usage: "Location of the GKE cluster to deploy to.", Hidden: true, EnvVars: []string{"3LV_GKE_CLUSTER_LOCATION"}, }, &cli.BoolFlag{ Name: "add-deployment-annotation", Usage: "Add a deployment annotation to Grafana. Requires --grafana-url and --grafana-api-key to be set.", }, &cli.StringFlag{ Name: "grafana-url", Usage: "The Grafana URL to use for deployment annotations.", }, &cli.StringFlag{ Name: "grafana-api-key", Usage: "The Grafana API key to use for deployment annotations.", }, &cli.StringFlag{ Name: "run-id", Usage: "The GitHub Actions run ID to use for deployment annotations.", }, &cli.BoolFlag{ Name: "allow-deploy", Hidden: true, EnvVars: []string{"CI"}, }, }, Action: Deploy, }
Functions ¶
Types ¶
type FormatDeploymentMessageOptions ¶ added in v0.12.0
type FormatDeploymentMessageOptions struct {
RunID string
}
type GcloudGetCredentialsCommandOptions ¶ added in v0.11.19
type GcloudGetCredentialsCommandOptions struct { ProjectID string ClusterName string ClusterLocation string RunOptions *command.RunOptions }
type GrafanaAnnotation ¶ added in v0.12.0
type PostGrafanaAnnotationOptions ¶ added in v0.12.0
type PostGrafanaAnnotationOptions struct {
RunID string
}
type SetupAKSOptions ¶ added in v0.11.4
type SetupAKSOptions struct { SubscriptionID string ClusterName string ResourceGroupName string AzLoginOptions *auth.AzLoginCommandOptions }
type SetupGKEOptions ¶ added in v0.11.4
Click to show internal directories.
Click to hide internal directories.