Skip to content
This repository was archived by the owner on Jan 9, 2023. It is now read-only.

Commit 1988674

Browse files
committed
Adds force flag
1 parent 50e3a5d commit 1988674

6 files changed

Lines changed: 46 additions & 23 deletions

File tree

cmd/tarmak/cmd/root.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,14 @@ func init() {
105105
"override the current cluster set in the config",
106106
)
107107

108+
RootCmd.PersistentFlags().BoolVarP(
109+
&globalFlags.Force,
110+
"force",
111+
"f",
112+
false,
113+
"skip all validation and verification checks",
114+
)
115+
108116
if version == "dev" {
109117
RootCmd.PersistentFlags().BoolVar(
110118
&globalFlags.WingDevMode,

pkg/apis/tarmak/v1alpha1/types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ type Flags struct {
127127
Version string // expose tarmak's build time version
128128

129129
WingDevMode bool // use a bundled wing version rather than a tagged release from GitHub
130+
131+
Force bool // skip all validations and verification
130132
}
131133

132134
// This contains the cluster specifc operation flags

pkg/tarmak/cluster/cluster.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ func NewFromConfig(environment interfaces.Environment, conf *clusterv1alpha1.Clu
5555
log: environment.Log().WithField("cluster", conf.Name),
5656
}
5757

58-
if err := cluster.Validate(); err != nil {
59-
return nil, err
58+
if !environment.Tarmak().Config().Force() {
59+
if err := cluster.Validate(); err != nil {
60+
return nil, err
61+
}
6062
}
6163

6264
cluster.roles = make(map[string]*role.Role)

pkg/tarmak/config/config.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,3 +351,7 @@ func (c *Config) Project() string {
351351
func (c *Config) WingDevMode() bool {
352352
return c.flags.WingDevMode
353353
}
354+
355+
func (c *Config) Force() bool {
356+
return c.flags.Force
357+
}

pkg/tarmak/interfaces/interfaces.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ type Config interface {
184184
Project() string
185185
WingDevMode() bool
186186
SetCurrentCluster(string) error
187+
Force() bool
187188
}
188189

189190
type Packer interface {

pkg/tarmak/terraform.go

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ func (t *Tarmak) Terraform() interfaces.Terraform {
1414
}
1515

1616
func (t *Tarmak) CmdTerraformPlan(args []string, ctx context.Context) error {
17-
t.cluster.Log().Info("validate steps")
18-
if err := t.Validate(); err != nil {
19-
return fmt.Errorf("failed to validate tarmak: %s", err)
20-
}
17+
if !t.Config().Force() {
18+
t.cluster.Log().Info("validate steps")
19+
if err := t.Validate(); err != nil {
20+
return fmt.Errorf("failed to validate tarmak: %s", err)
21+
}
2122

22-
t.cluster.Log().Info("verify steps")
23-
if err := t.Verify(); err != nil {
24-
return err
23+
t.cluster.Log().Info("verify steps")
24+
if err := t.Verify(); err != nil {
25+
return err
26+
}
2527
}
2628

2729
t.cluster.Log().Info("write SSH config")
@@ -39,14 +41,16 @@ func (t *Tarmak) CmdTerraformPlan(args []string, ctx context.Context) error {
3941
}
4042

4143
func (t *Tarmak) CmdTerraformApply(args []string, ctx context.Context) error {
42-
t.cluster.Log().Info("validate steps")
43-
if err := t.Validate(); err != nil {
44-
return fmt.Errorf("failed to validate tarmak: %s", err)
45-
}
44+
if !t.Config().Force() {
45+
t.cluster.Log().Info("validate steps")
46+
if err := t.Validate(); err != nil {
47+
return fmt.Errorf("failed to validate tarmak: %s", err)
48+
}
4649

47-
t.cluster.Log().Info("verify steps")
48-
if err := t.Verify(); err != nil {
49-
return err
50+
t.cluster.Log().Info("verify steps")
51+
if err := t.Verify(); err != nil {
52+
return err
53+
}
5054
}
5155

5256
t.cluster.Log().Info("write SSH config")
@@ -89,14 +93,16 @@ func (t *Tarmak) CmdTerraformApply(args []string, ctx context.Context) error {
8993
}
9094

9195
func (t *Tarmak) CmdTerraformDestroy(args []string, ctx context.Context) error {
92-
t.cluster.Log().Info("validate steps")
93-
if err := t.Validate(); err != nil {
94-
return fmt.Errorf("failed to validate tarmak: %s", err)
95-
}
96+
if !t.Config().Force() {
97+
t.cluster.Log().Info("validate steps")
98+
if err := t.Validate(); err != nil {
99+
return fmt.Errorf("failed to validate tarmak: %s", err)
100+
}
96101

97-
t.cluster.Log().Info("verify steps")
98-
if err := t.Verify(); err != nil {
99-
return err
102+
t.cluster.Log().Info("verify steps")
103+
if err := t.Verify(); err != nil {
104+
return err
105+
}
100106
}
101107

102108
t.cluster.Log().Info("write SSH config")

0 commit comments

Comments
 (0)