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

Commit 8d34713

Browse files
committed
Adds force flag
1 parent dca5cb3 commit 8d34713

File tree

6 files changed

+46
-23
lines changed

6 files changed

+46
-23
lines changed

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
@@ -54,8 +54,10 @@ func NewFromConfig(environment interfaces.Environment, conf *clusterv1alpha1.Clu
5454
log: environment.Log().WithField("cluster", conf.Name),
5555
}
5656

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

6163
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
@@ -185,6 +185,7 @@ type Config interface {
185185
Project() string
186186
WingDevMode() bool
187187
SetCurrentCluster(string) error
188+
Force() bool
188189
}
189190

190191
type Packer interface {

pkg/tarmak/terraform.go

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,18 @@ func (t *Tarmak) CmdTerraformPlan(args []string, ctx context.Context) error {
1818
return err
1919
}
2020

21-
if err := t.verifyImageExists(); err != nil {
22-
return err
23-
}
21+
if !t.Config().Force() {
22+
if err := t.Validate(); err != nil {
23+
return fmt.Errorf("failed to validate tarmak: %s", err)
24+
}
2425

25-
if err := t.Validate(); err != nil {
26-
return fmt.Errorf("failed to validate tarmak: %s", err)
27-
}
26+
if err := t.verifyImageExists(); err != nil {
27+
return err
28+
}
2829

29-
if err := t.Cluster().Verify(); err != nil {
30-
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
30+
if err := t.Cluster().Verify(); err != nil {
31+
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
32+
}
3133
}
3234

3335
t.cluster.Log().Info("running plan")
@@ -44,16 +46,18 @@ func (t *Tarmak) CmdTerraformApply(args []string, ctx context.Context) error {
4446
return err
4547
}
4648

47-
if err := t.verifyImageExists(); err != nil {
48-
return err
49-
}
49+
if !t.Config().Force() {
50+
if err := t.Validate(); err != nil {
51+
return fmt.Errorf("failed to validate tarmak: %s", err)
52+
}
5053

51-
if err := t.Validate(); err != nil {
52-
return fmt.Errorf("failed to validate tarmak: %s", err)
53-
}
54+
if err := t.verifyImageExists(); err != nil {
55+
return err
56+
}
5457

55-
if err := t.Cluster().Verify(); err != nil {
56-
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
58+
if err := t.Cluster().Verify(); err != nil {
59+
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
60+
}
5761
}
5862

5963
t.cluster.Log().Info("running apply")
@@ -95,12 +99,14 @@ func (t *Tarmak) CmdTerraformDestroy(args []string, ctx context.Context) error {
9599
return err
96100
}
97101

98-
if err := t.Validate(); err != nil {
99-
return fmt.Errorf("failed to validate tarmak: %s", err)
100-
}
102+
if !t.Config().Force() {
103+
if err := t.Validate(); err != nil {
104+
return fmt.Errorf("failed to validate tarmak: %s", err)
105+
}
101106

102-
if err := t.Cluster().Verify(); err != nil {
103-
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
107+
if err := t.Cluster().Verify(); err != nil {
108+
return fmt.Errorf("failed to validate tarmak cluster: %s", err)
109+
}
104110
}
105111

106112
t.cluster.Log().Info("running destroy")

0 commit comments

Comments
 (0)