Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions cmd/admin_organization_transfer_ownership.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import (
)

var (
newOwnerUserId string
newOwnerEmail string
authProvider string
newOwnerUserId string
newOwnerEmail string
authProvider string
adminTransferOrganizationOwnership = &cobra.Command{
Use: "transfer-ownership",
Short: "Transfer organization ownership to another user",
Expand Down Expand Up @@ -130,6 +130,7 @@ func transferOrganizationOwnership() {
if foundMember == nil {
utils.PrintlnError(fmt.Errorf("no member found with email '%s' and provider '%s'", newOwnerEmail, authProvider))
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

targetUserId = foundMember.Id
Expand Down
15 changes: 11 additions & 4 deletions cmd/application_external_secret_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var applicationExternalSecretCreateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var applicationExternalSecretCreateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, application.Id, utils.ApplicationScope, utils.Key, utils.Reference, utils.SecretManagerAccessId, utils.MountPath)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, application.Id, utils.ApplicationScope, utils.Key, utils.Reference, secretManagerAccessId, utils.MountPath)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,12 +77,12 @@ func init() {
applicationExternalSecretCreateCmd.Flags().StringVarP(&applicationName, "application", "n", "", "Application Name")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "Reference to the secret in the secrets provider")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "Secret manager access ID")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "Secret manager access name")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.ApplicationScope, "scope", "", "APPLICATION", "Scope of this external secret <PROJECT|ENVIRONMENT|APPLICATION>")
applicationExternalSecretCreateCmd.Flags().StringVarP(&utils.MountPath, "mount-path", "", "", "Path where the secret will be mounted as a file")

_ = applicationExternalSecretCreateCmd.MarkFlagRequired("key")
_ = applicationExternalSecretCreateCmd.MarkFlagRequired("reference")
_ = applicationExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-id")
_ = applicationExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-name")
_ = applicationExternalSecretCreateCmd.MarkFlagRequired("application")
}
13 changes: 10 additions & 3 deletions cmd/application_external_secret_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var applicationExternalSecretUpdateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var applicationExternalSecretUpdateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, utils.SecretManagerAccessId, application.Id, utils.ApplicationType)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, secretManagerAccessId, application.Id, utils.ApplicationType)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,7 +77,7 @@ func init() {
applicationExternalSecretUpdateCmd.Flags().StringVarP(&applicationName, "application", "n", "", "Application Name")
applicationExternalSecretUpdateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
applicationExternalSecretUpdateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "New reference to the secret in the secrets provider")
applicationExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "New secret manager access ID")
applicationExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "New secret manager access name")

_ = applicationExternalSecretUpdateCmd.MarkFlagRequired("key")
_ = applicationExternalSecretUpdateCmd.MarkFlagRequired("application")
Expand Down
15 changes: 11 additions & 4 deletions cmd/container_external_secret_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var containerExternalSecretCreateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var containerExternalSecretCreateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, container.Id, utils.ContainerScope, utils.Key, utils.Reference, utils.SecretManagerAccessId, utils.MountPath)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, container.Id, utils.ContainerScope, utils.Key, utils.Reference, secretManagerAccessId, utils.MountPath)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,12 +77,12 @@ func init() {
containerExternalSecretCreateCmd.Flags().StringVarP(&containerName, "container", "n", "", "Container Name")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "Reference to the secret in the secrets provider")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "Secret manager access ID")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "Secret manager access name")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.ContainerScope, "scope", "", "CONTAINER", "Scope of this external secret <PROJECT|ENVIRONMENT|CONTAINER>")
containerExternalSecretCreateCmd.Flags().StringVarP(&utils.MountPath, "mount-path", "", "", "Path where the secret will be mounted as a file")

_ = containerExternalSecretCreateCmd.MarkFlagRequired("key")
_ = containerExternalSecretCreateCmd.MarkFlagRequired("reference")
_ = containerExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-id")
_ = containerExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-name")
_ = containerExternalSecretCreateCmd.MarkFlagRequired("container")
}
13 changes: 10 additions & 3 deletions cmd/container_external_secret_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var containerExternalSecretUpdateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var containerExternalSecretUpdateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, utils.SecretManagerAccessId, container.Id, utils.ContainerType)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, secretManagerAccessId, container.Id, utils.ContainerType)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,7 +77,7 @@ func init() {
containerExternalSecretUpdateCmd.Flags().StringVarP(&containerName, "container", "n", "", "Container Name")
containerExternalSecretUpdateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
containerExternalSecretUpdateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "New reference to the secret in the secrets provider")
containerExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "New secret manager access ID")
containerExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "New secret manager access name")

_ = containerExternalSecretUpdateCmd.MarkFlagRequired("key")
_ = containerExternalSecretUpdateCmd.MarkFlagRequired("container")
Expand Down
15 changes: 11 additions & 4 deletions cmd/cronjob_external_secret_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var cronjobExternalSecretCreateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, projectId, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var cronjobExternalSecretCreateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, cronjob.CronJobResponse.Id, utils.JobScope, utils.Key, utils.Reference, utils.SecretManagerAccessId, utils.MountPath)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, projectId, envId, cronjob.CronJobResponse.Id, utils.JobScope, utils.Key, utils.Reference, secretManagerAccessId, utils.MountPath)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,12 +77,12 @@ func init() {
cronjobExternalSecretCreateCmd.Flags().StringVarP(&cronjobName, "cronjob", "n", "", "Cronjob Name")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "Reference to the secret in the secrets provider")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "Secret manager access ID")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "Secret manager access name")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.JobScope, "scope", "", "JOB", "Scope of this external secret <PROJECT|ENVIRONMENT|JOB>")
cronjobExternalSecretCreateCmd.Flags().StringVarP(&utils.MountPath, "mount-path", "", "", "Path where the secret will be mounted as a file")

_ = cronjobExternalSecretCreateCmd.MarkFlagRequired("key")
_ = cronjobExternalSecretCreateCmd.MarkFlagRequired("reference")
_ = cronjobExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-id")
_ = cronjobExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-name")
_ = cronjobExternalSecretCreateCmd.MarkFlagRequired("cronjob")
}
13 changes: 10 additions & 3 deletions cmd/cronjob_external_secret_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var cronjobExternalSecretUpdateCmd = &cobra.Command{
}

client := utils.GetQoveryClient(tokenType, token)
_, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)
organizationId, _, envId, err := getOrganizationProjectEnvironmentContextResourcesIds(client)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -50,7 +50,14 @@ var cronjobExternalSecretUpdateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, utils.SecretManagerAccessId, cronjob.CronJobResponse.Id, utils.JobType)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, envId, utils.SecretManagerAccessName)
if err != nil {
utils.PrintlnError(err)
os.Exit(1)
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateServiceExternalSecret(client, utils.Key, utils.Reference, secretManagerAccessId, cronjob.CronJobResponse.Id, utils.JobType)

if err != nil {
utils.PrintlnError(err)
Expand All @@ -70,7 +77,7 @@ func init() {
cronjobExternalSecretUpdateCmd.Flags().StringVarP(&cronjobName, "cronjob", "n", "", "Cronjob Name")
cronjobExternalSecretUpdateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
cronjobExternalSecretUpdateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "New reference to the secret in the secrets provider")
cronjobExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "New secret manager access ID")
cronjobExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "New secret manager access name")

_ = cronjobExternalSecretUpdateCmd.MarkFlagRequired("key")
_ = cronjobExternalSecretUpdateCmd.MarkFlagRequired("cronjob")
Expand Down
9 changes: 6 additions & 3 deletions cmd/environment_external_secret_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ var environmentExternalSecretCreateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.CreateServiceExternalSecret(client, project.Id, environment.Id, "", utils.EnvironmentScope, utils.Key, utils.Reference, utils.SecretManagerAccessId, utils.MountPath)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, environment.Id, utils.SecretManagerAccessName)
checkError(err)

err = utils.CreateServiceExternalSecret(client, project.Id, environment.Id, "", utils.EnvironmentScope, utils.Key, utils.Reference, secretManagerAccessId, utils.MountPath)
checkError(err)

utils.Println(fmt.Sprintf("External secret %s has been created", pterm.FgBlue.Sprintf("%s", utils.Key)))
Expand All @@ -61,13 +64,13 @@ func init() {
environmentExternalSecretCreateCmd.Flags().StringVarP(&environmentName, "environment", "", "", "Environment Name")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "Reference to the secret in the secrets provider")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "Secret manager access ID")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "Secret manager access name")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.EnvironmentScope, "scope", "", "ENVIRONMENT", "Scope of this external secret <PROJECT|ENVIRONMENT>")
environmentExternalSecretCreateCmd.Flags().StringVarP(&utils.MountPath, "mount-path", "", "", "Path where the secret will be mounted as a file")

_ = environmentExternalSecretCreateCmd.MarkFlagRequired("project")
_ = environmentExternalSecretCreateCmd.MarkFlagRequired("environment")
_ = environmentExternalSecretCreateCmd.MarkFlagRequired("key")
_ = environmentExternalSecretCreateCmd.MarkFlagRequired("reference")
_ = environmentExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-id")
_ = environmentExternalSecretCreateCmd.MarkFlagRequired("secret-manager-access-name")
}
7 changes: 5 additions & 2 deletions cmd/environment_external_secret_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ var environmentExternalSecretUpdateCmd = &cobra.Command{
panic("unreachable") // staticcheck false positive: https://staticcheck.io/docs/checks#SA5011
}

err = utils.UpdateEnvironmentExternalSecret(client, environment.Id, utils.Key, utils.Reference, utils.SecretManagerAccessId)
secretManagerAccessId, err := getSecretManagerAccessIdByName(client, organizationId, environment.Id, utils.SecretManagerAccessName)
checkError(err)

err = utils.UpdateEnvironmentExternalSecret(client, environment.Id, utils.Key, utils.Reference, secretManagerAccessId)
checkError(err)

utils.Println(fmt.Sprintf("External secret %s has been updated", pterm.FgBlue.Sprintf("%s", utils.Key)))
Expand All @@ -61,7 +64,7 @@ func init() {
environmentExternalSecretUpdateCmd.Flags().StringVarP(&environmentName, "environment", "", "", "Environment Name")
environmentExternalSecretUpdateCmd.Flags().StringVarP(&utils.Key, "key", "k", "", "External secret key")
environmentExternalSecretUpdateCmd.Flags().StringVarP(&utils.Reference, "reference", "r", "", "New reference to the secret in the secrets provider")
environmentExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessId, "secret-manager-access-id", "", "", "New secret manager access ID")
environmentExternalSecretUpdateCmd.Flags().StringVarP(&utils.SecretManagerAccessName, "secret-manager-access-name", "", "", "New secret manager access name")

_ = environmentExternalSecretUpdateCmd.MarkFlagRequired("project")
_ = environmentExternalSecretUpdateCmd.MarkFlagRequired("environment")
Expand Down
40 changes: 40 additions & 0 deletions cmd/external_secret_helpers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package cmd

import (
"context"
"fmt"

"github.com/qovery/qovery-client-go"
"github.com/qovery/qovery-cli/pkg/cluster"
"github.com/qovery/qovery-cli/pkg/promptuifactory"
)

func getSecretManagerAccessIdByName(client *qovery.APIClient, organizationId, envId, name string) (string, error) {
env, _, err := client.EnvironmentMainCallsAPI.GetEnvironment(context.Background(), envId).Execute()
if err != nil {
return "", fmt.Errorf("failed to get environment: %w", err)
}

clusters, err := cluster.NewClusterService(client, &promptuifactory.PromptUiFactoryImpl{}).ListClusters(organizationId)
if err != nil {
return "", fmt.Errorf("failed to list clusters: %w", err)
}

var matchedCluster *qovery.Cluster
for i, c := range clusters.GetResults() {
if c.Id == env.ClusterId {
matchedCluster = &clusters.GetResults()[i]
break
}
}
if matchedCluster == nil {
return "", fmt.Errorf("cluster %s not found in organization", env.ClusterId)
}

for _, sma := range matchedCluster.SecretManagerAccesses {
if sma.Name == name {
return sma.Id, nil
}
}
return "", fmt.Errorf("secret manager access %q not found in cluster %s", name, matchedCluster.Name)
}
Loading
Loading