Skip to content
Closed
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
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,11 @@ func ListOldDeployments(ctx context.Context) ([]string, error) {
}

func DeleteDeployment(ctx context.Context, deploymentName string) error {
client := activity.GetClient(ctx)
tClient := activity.GetClient(ctx)
ns := activity.GetInfo(ctx).WorkflowNamespace

deploymentInfo, err := client.WorkflowService().DescribeWorkerDeployment(
// Describe to get version summaries
deploymentInfo, err := tClient.WorkflowService().DescribeWorkerDeployment(
ctx,
&workflowservice.DescribeWorkerDeploymentRequest{
Namespace: ns,
Expand All @@ -81,55 +82,10 @@ func DeleteDeployment(ctx context.Context, deploymentName string) error {
if err != nil {
return fmt.Errorf("failed to describe worker deployment %s: %w", deploymentName, err)
}
// Unset current/ramping versions so things can be deleted
_, err = client.WorkflowService().SetWorkerDeploymentCurrentVersion(ctx, &workflowservice.SetWorkerDeploymentCurrentVersionRequest{
Namespace: ns,
DeploymentName: deploymentName,
Identity: "feature-deployment-deleter",
IgnoreMissingTaskQueues: true,
AllowNoPollers: true,
})
if err != nil {
// Try using unversioned string (needed if deployment was very old)
_, err = client.WorkflowService().SetWorkerDeploymentCurrentVersion(ctx, &workflowservice.SetWorkerDeploymentCurrentVersionRequest{
Namespace: ns,
DeploymentName: deploymentName,
Version: "__unversioned__",
BuildId: "__unversioned__",
Identity: "feature-deployment-deleter",
IgnoreMissingTaskQueues: true,
AllowNoPollers: true,
})
if err != nil {
return fmt.Errorf("failed to unset current version for deployment %s: %w", deploymentName, err)
}
}
_, err = client.WorkflowService().SetWorkerDeploymentRampingVersion(ctx, &workflowservice.SetWorkerDeploymentRampingVersionRequest{
Namespace: ns,
DeploymentName: deploymentName,
Identity: "feature-deployment-deleter",
IgnoreMissingTaskQueues: true,
AllowNoPollers: true,
})
if err != nil {
// Try using unversioned string (needed if deployment was very old)
_, err = client.WorkflowService().SetWorkerDeploymentRampingVersion(ctx, &workflowservice.SetWorkerDeploymentRampingVersionRequest{
Namespace: ns,
DeploymentName: deploymentName,
Version: "__unversioned__",
BuildId: "__unversioned__",
Identity: "feature-deployment-deleter",
IgnoreMissingTaskQueues: true,
AllowNoPollers: true,
})
if err != nil {
return fmt.Errorf("failed to unset ramping version for deployment %s: %w", deploymentName, err)
}
return fmt.Errorf("failed to unset ramping version for deployment %s: %w", deploymentName, err)
}

// Delete all versions (with SkipDrainage to force delete)
for _, version := range deploymentInfo.WorkerDeploymentInfo.VersionSummaries {
_, err = client.WorkflowService().DeleteWorkerDeploymentVersion(ctx,
_, err = tClient.WorkflowService().DeleteWorkerDeploymentVersion(ctx,
&workflowservice.DeleteWorkerDeploymentVersionRequest{
Namespace: ns,
DeploymentVersion: version.DeploymentVersion,
Expand All @@ -143,12 +99,16 @@ func DeleteDeployment(ctx context.Context, deploymentName string) error {
}
}

client.WorkflowService().DeleteWorkerDeployment(ctx,
// Delete the deployment itself
_, err = tClient.WorkflowService().DeleteWorkerDeployment(ctx,
&workflowservice.DeleteWorkerDeploymentRequest{
Namespace: ns,
DeploymentName: deploymentName,
Identity: "features-deployment-deleter",
},
)
if err != nil {
return fmt.Errorf("failed to delete deployment %s: %w", deploymentName, err)
}
return nil
}
Loading