Skip to content
This repository was archived by the owner on Nov 20, 2024. It is now read-only.
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
3 changes: 3 additions & 0 deletions api/v1alpha1/workspace_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,9 @@ type WorkspaceSpec struct {
// Notification configuration
// +optional
Notifications []*Notification `json:"notifications,omitempty"`
// Omit namespace prefix in workspace name
// +optional
OmitNamespacePrefix bool `json:"omitNamespacePrefix,omitempty"`
}

// WorkspaceStatus defines the observed state of Workspace
Expand Down
3 changes: 3 additions & 0 deletions config/crd/bases/app.terraform.io_workspaces.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ spec:
- type
type: object
type: array
omitNamespacePrefix:
description: Omit namespace prefix in workspace name
type: boolean
organization:
description: Terraform Cloud organization
type: string
Expand Down
10 changes: 10 additions & 0 deletions workspacehelper/workspace_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ func (r *WorkspaceHelper) initializeReconciliation(request reconcile.Request) (*

func (r *WorkspaceHelper) reconcileWorkspace(instance *appv1alpha1.Workspace) error {
workspace := fmt.Sprintf("%s-%s", instance.Namespace, instance.Name)
if instance.Spec.OmitNamespacePrefix {
workspace = fmt.Sprintf("%s", instance.Name)
}

organization := instance.Spec.Organization

ws, err := r.tfclient.CheckWorkspace(workspace, instance)
Expand Down Expand Up @@ -280,6 +284,9 @@ func (r *WorkspaceHelper) updateTerraformTemplate(instance *appv1alpha1.Workspac

func (r *WorkspaceHelper) updateVariables(instance *appv1alpha1.Workspace) (bool, error) {
workspace := fmt.Sprintf("%s-%s", instance.Namespace, instance.Name)
if instance.Spec.OmitNamespacePrefix {
workspace = fmt.Sprintf("%s", instance.Name)
}

for _, variable := range instance.Spec.Variables {
err := r.GetConfigMapForVariable(instance.Namespace, variable)
Expand All @@ -300,6 +307,9 @@ func (r *WorkspaceHelper) updateVariables(instance *appv1alpha1.Workspace) (bool

func (r *WorkspaceHelper) updateRunTriggers(instance *appv1alpha1.Workspace) (bool, error) {
workspace := fmt.Sprintf("%s-%s", instance.Namespace, instance.Name)
if instance.Spec.OmitNamespacePrefix {
workspace = fmt.Sprintf("%s", instance.Name)
}

updatedRunTriggers, err := r.tfclient.CheckRunTriggers(workspace, instance.Spec.RunTriggers)
if err != nil {
Expand Down