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

Commit 0825a01

Browse files
committed
Includes --all flag to cluster images destroy
Signed-off-by: JoshVanL <[email protected]>
1 parent 2f57eda commit 0825a01

File tree

9 files changed

+165
-9
lines changed

9 files changed

+165
-9
lines changed

cmd/tarmak/cmd/cluster.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ func clusterDestroyFlags(fs *flag.FlagSet) {
3838
clusterFlagDryRun(fs, &store.DryRun)
3939
}
4040

41+
func clusterImagesDestroyFlags(fs *flag.FlagSet) {
42+
store := &globalFlags.Cluster.Images.Destroy
43+
44+
fs.BoolVarP(
45+
&store.All,
46+
"all",
47+
"A",
48+
false,
49+
"destroy all tarmak images for this cluster",
50+
)
51+
}
52+
4153
func clusterFlagDryRun(fs *flag.FlagSet, store *bool) {
4254
fs.BoolVar(
4355
store,

cmd/tarmak/cmd/cluster_images_destroy.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import (
1111

1212
var clusterImagesDestroyCmd = &cobra.Command{
1313
Use: "destroy [image ids]",
14-
Short: "destroy images",
14+
Short: "destroy remote tarmak images",
1515
PreRunE: func(cmd *cobra.Command, args []string) error {
16-
if len(args) == 0 {
17-
return errors.New("expecting at least a single image ID argument")
16+
if len(args) == 0 && !globalFlags.Cluster.Images.Destroy.All {
17+
return errors.New("expecting at least a single image ID argument or --all")
1818
}
1919
return nil
2020
},
@@ -25,5 +25,6 @@ var clusterImagesDestroyCmd = &cobra.Command{
2525
}
2626

2727
func init() {
28+
clusterImagesDestroyFlags(clusterImagesDestroyCmd.PersistentFlags())
2829
clusterImagesCmd.AddCommand(clusterImagesDestroyCmd)
2930
}

docs/generated/cmd/tarmak/tarmak_clusters_images.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ SEE ALSO
3535

3636
* `tarmak clusters <tarmak_clusters.html>`_ - Operations on clusters
3737
* `tarmak clusters images build <tarmak_clusters_images_build.html>`_ - build images
38-
* `tarmak clusters images destroy <tarmak_clusters_images_destroy.html>`_ - destroy images
38+
* `tarmak clusters images destroy <tarmak_clusters_images_destroy.html>`_ - destroy remote tarmak images
3939
* `tarmak clusters images list <tarmak_clusters_images_list.html>`_ - list images
4040

docs/generated/cmd/tarmak/tarmak_clusters_images_destroy.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
tarmak clusters images destroy
44
------------------------------
55

6-
destroy images
6+
destroy remote tarmak images
77

88
Synopsis
99
~~~~~~~~
1010

1111

12-
destroy images
12+
destroy remote tarmak images
1313

1414
::
1515

@@ -20,6 +20,7 @@ Options
2020

2121
::
2222

23+
-A, --all destroy all tarmak images for this cluster
2324
-h, --help help for destroy
2425

2526
Options inherited from parent commands

docs/generated/reference/output/api-docs.html

Lines changed: 83 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<link rel="stylesheet" href="stylesheet.css" type="text/css">
1212
</head>
1313
<body>
14-
<div id="sidebar-wrapper" class="side-nav side-bar-nav"><ul><li class="nav-level-1 strong-nav"><a href="#-strong-tarmak-strong-" class="nav-item"><strong>Tarmak</strong></a></li></ul><ul><li class="nav-level-1"><a href="#config-v1alpha1" class="nav-item">Config v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#image-v1alpha1" class="nav-item">Image v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#flags-v1alpha1" class="nav-item">Flags v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#cluster-v1alpha1" class="nav-item">Cluster v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#instance-v1alpha1" class="nav-item">Instance v1alpha1</a></li></ul><ul><li class="nav-level-1 strong-nav"><a href="#-strong-old-api-versions-strong-" class="nav-item"><strong>Old API Versions</strong></a></li></ul><ul><li class="nav-level-1 strong-nav"><a href="#-strong-field-definitions-strong-" class="nav-item"><strong>Field Definitions</strong></a></li><ul id="-strong-field-definitions-strong--nav" style="display: none;"><li class="nav-level-2"><a href="#amazonesproxy-v1alpha1" class="nav-item">AmazonESProxy v1alpha1</a></li><li class="nav-level-2"><a href="#clusteramazon-v1alpha1" class="nav-item">ClusterAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#clusterapplyflags-v1alpha1" class="nav-item">ClusterApplyFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterdestroyflags-v1alpha1" class="nav-item">ClusterDestroyFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterflags-v1alpha1" class="nav-item">ClusterFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetes-v1alpha1" class="nav-item">ClusterKubernetes v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserver-v1alpha1" class="nav-item">ClusterKubernetesAPIServer v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveramazon-v1alpha1" class="nav-item">ClusterKubernetesAPIServerAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveramazonaccesslogs-v1alpha1" class="nav-item">ClusterKubernetesAPIServerAmazonAccessLogs v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveroidc-v1alpha1" class="nav-item">ClusterKubernetesAPIServerOIDC v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesclusterautoscaler-v1alpha1" class="nav-item">ClusterKubernetesClusterAutoscaler v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1" class="nav-item">ClusterKubernetesClusterAutoscalerOverprovisioning v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesdashboard-v1alpha1" class="nav-item">ClusterKubernetesDashboard v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesprometheus-v1alpha1" class="nav-item">ClusterKubernetesPrometheus v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetestiller-v1alpha1" class="nav-item">ClusterKubernetesTiller v1alpha1</a></li><li class="nav-level-2"><a href="#clusterpodsecuritypolicy-v1alpha1" class="nav-item">ClusterPodSecurityPolicy v1alpha1</a></li><li class="nav-level-2"><a href="#egressrule-v1alpha1" class="nav-item">EgressRule v1alpha1</a></li><li class="nav-level-2"><a href="#environment-v1alpha1" class="nav-item">Environment v1alpha1</a></li><li class="nav-level-2"><a href="#firewall-v1alpha1" class="nav-item">Firewall v1alpha1</a></li><li class="nav-level-2"><a href="#httpbasicauth-v1alpha1" class="nav-item">HTTPBasicAuth v1alpha1</a></li><li class="nav-level-2"><a href="#ingressrule-v1alpha1" class="nav-item">IngressRule v1alpha1</a></li><li class="nav-level-2"><a href="#instancepool-v1alpha1" class="nav-item">InstancePool v1alpha1</a></li><li class="nav-level-2"><a href="#instancepoolamazon-v1alpha1" class="nav-item">InstancePoolAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#instancepoolkubernetes-v1alpha1" class="nav-item">InstancePoolKubernetes v1alpha1</a></li><li class="nav-level-2"><a href="#instancespecmanifest-v1alpha1" class="nav-item">InstanceSpecManifest v1alpha1</a></li><li class="nav-level-2"><a href="#instancestatusmanifest-v1alpha1" class="nav-item">InstanceStatusManifest v1alpha1</a></li><li class="nav-level-2"><a href="#internetgw-v1alpha1" class="nav-item">InternetGW v1alpha1</a></li><li class="nav-level-2"><a href="#kubernetesapi-v1alpha1" class="nav-item">KubernetesAPI v1alpha1</a></li><li class="nav-level-2"><a href="#label-v1alpha1" class="nav-item">Label v1alpha1</a></li><li class="nav-level-2"><a href="#loggingsink-v1alpha1" class="nav-item">LoggingSink v1alpha1</a></li><li class="nav-level-2"><a href="#loggingsinkelasticsearch-v1alpha1" class="nav-item">LoggingSinkElasticsearch v1alpha1</a></li><li class="nav-level-2"><a href="#network-v1alpha1" class="nav-item">Network v1alpha1</a></li><li class="nav-level-2"><a href="#provider-v1alpha1" class="nav-item">Provider v1alpha1</a></li><li class="nav-level-2"><a href="#provideramazon-v1alpha1" class="nav-item">ProviderAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#providerazure-v1alpha1" class="nav-item">ProviderAzure v1alpha1</a></li><li class="nav-level-2"><a href="#providergcp-v1alpha1" class="nav-item">ProviderGCP v1alpha1</a></li><li class="nav-level-2"><a href="#ssh-v1alpha1" class="nav-item">SSH v1alpha1</a></li><li class="nav-level-2"><a href="#subnet-v1alpha1" class="nav-item">Subnet v1alpha1</a></li><li class="nav-level-2"><a href="#taint-v1alpha1" class="nav-item">Taint v1alpha1</a></li><li class="nav-level-2"><a href="#values-v1alpha1" class="nav-item">Values v1alpha1</a></li><li class="nav-level-2"><a href="#volume-v1alpha1" class="nav-item">Volume v1alpha1</a></li></ul></ul><br/><div class="copyright"><a href="https://jetstack.io">Copyright 2018 Jetstack Ltd.</a></div></div>
14+
<div id="sidebar-wrapper" class="side-nav side-bar-nav"><ul><li class="nav-level-1 strong-nav"><a href="#-strong-tarmak-strong-" class="nav-item"><strong>Tarmak</strong></a></li></ul><ul><li class="nav-level-1"><a href="#config-v1alpha1" class="nav-item">Config v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#image-v1alpha1" class="nav-item">Image v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#flags-v1alpha1" class="nav-item">Flags v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#cluster-v1alpha1" class="nav-item">Cluster v1alpha1</a></li></ul><ul><li class="nav-level-1"><a href="#instance-v1alpha1" class="nav-item">Instance v1alpha1</a></li></ul><ul><li class="nav-level-1 strong-nav"><a href="#-strong-old-api-versions-strong-" class="nav-item"><strong>Old API Versions</strong></a></li></ul><ul><li class="nav-level-1 strong-nav"><a href="#-strong-field-definitions-strong-" class="nav-item"><strong>Field Definitions</strong></a></li><ul id="-strong-field-definitions-strong--nav" style="display: none;"><li class="nav-level-2"><a href="#amazonesproxy-v1alpha1" class="nav-item">AmazonESProxy v1alpha1</a></li><li class="nav-level-2"><a href="#clusteramazon-v1alpha1" class="nav-item">ClusterAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#clusterapplyflags-v1alpha1" class="nav-item">ClusterApplyFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterdestroyflags-v1alpha1" class="nav-item">ClusterDestroyFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterflags-v1alpha1" class="nav-item">ClusterFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterimagesdestroyflags-v1alpha1" class="nav-item">ClusterImagesDestroyFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterimagesflags-v1alpha1" class="nav-item">ClusterImagesFlags v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetes-v1alpha1" class="nav-item">ClusterKubernetes v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserver-v1alpha1" class="nav-item">ClusterKubernetesAPIServer v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveramazon-v1alpha1" class="nav-item">ClusterKubernetesAPIServerAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveramazonaccesslogs-v1alpha1" class="nav-item">ClusterKubernetesAPIServerAmazonAccessLogs v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesapiserveroidc-v1alpha1" class="nav-item">ClusterKubernetesAPIServerOIDC v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesclusterautoscaler-v1alpha1" class="nav-item">ClusterKubernetesClusterAutoscaler v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1" class="nav-item">ClusterKubernetesClusterAutoscalerOverprovisioning v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesdashboard-v1alpha1" class="nav-item">ClusterKubernetesDashboard v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetesprometheus-v1alpha1" class="nav-item">ClusterKubernetesPrometheus v1alpha1</a></li><li class="nav-level-2"><a href="#clusterkubernetestiller-v1alpha1" class="nav-item">ClusterKubernetesTiller v1alpha1</a></li><li class="nav-level-2"><a href="#clusterpodsecuritypolicy-v1alpha1" class="nav-item">ClusterPodSecurityPolicy v1alpha1</a></li><li class="nav-level-2"><a href="#egressrule-v1alpha1" class="nav-item">EgressRule v1alpha1</a></li><li class="nav-level-2"><a href="#environment-v1alpha1" class="nav-item">Environment v1alpha1</a></li><li class="nav-level-2"><a href="#firewall-v1alpha1" class="nav-item">Firewall v1alpha1</a></li><li class="nav-level-2"><a href="#httpbasicauth-v1alpha1" class="nav-item">HTTPBasicAuth v1alpha1</a></li><li class="nav-level-2"><a href="#ingressrule-v1alpha1" class="nav-item">IngressRule v1alpha1</a></li><li class="nav-level-2"><a href="#instancepool-v1alpha1" class="nav-item">InstancePool v1alpha1</a></li><li class="nav-level-2"><a href="#instancepoolamazon-v1alpha1" class="nav-item">InstancePoolAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#instancepoolkubernetes-v1alpha1" class="nav-item">InstancePoolKubernetes v1alpha1</a></li><li class="nav-level-2"><a href="#instancespecmanifest-v1alpha1" class="nav-item">InstanceSpecManifest v1alpha1</a></li><li class="nav-level-2"><a href="#instancestatusmanifest-v1alpha1" class="nav-item">InstanceStatusManifest v1alpha1</a></li><li class="nav-level-2"><a href="#internetgw-v1alpha1" class="nav-item">InternetGW v1alpha1</a></li><li class="nav-level-2"><a href="#kubernetesapi-v1alpha1" class="nav-item">KubernetesAPI v1alpha1</a></li><li class="nav-level-2"><a href="#label-v1alpha1" class="nav-item">Label v1alpha1</a></li><li class="nav-level-2"><a href="#loggingsink-v1alpha1" class="nav-item">LoggingSink v1alpha1</a></li><li class="nav-level-2"><a href="#loggingsinkelasticsearch-v1alpha1" class="nav-item">LoggingSinkElasticsearch v1alpha1</a></li><li class="nav-level-2"><a href="#network-v1alpha1" class="nav-item">Network v1alpha1</a></li><li class="nav-level-2"><a href="#provider-v1alpha1" class="nav-item">Provider v1alpha1</a></li><li class="nav-level-2"><a href="#provideramazon-v1alpha1" class="nav-item">ProviderAmazon v1alpha1</a></li><li class="nav-level-2"><a href="#providerazure-v1alpha1" class="nav-item">ProviderAzure v1alpha1</a></li><li class="nav-level-2"><a href="#providergcp-v1alpha1" class="nav-item">ProviderGCP v1alpha1</a></li><li class="nav-level-2"><a href="#ssh-v1alpha1" class="nav-item">SSH v1alpha1</a></li><li class="nav-level-2"><a href="#subnet-v1alpha1" class="nav-item">Subnet v1alpha1</a></li><li class="nav-level-2"><a href="#taint-v1alpha1" class="nav-item">Taint v1alpha1</a></li><li class="nav-level-2"><a href="#values-v1alpha1" class="nav-item">Values v1alpha1</a></li><li class="nav-level-2"><a href="#volume-v1alpha1" class="nav-item">Volume v1alpha1</a></li></ul></ul><br/><div class="copyright"><a href="https://jetstack.io">Copyright 2018 Jetstack Ltd.</a></div></div>
1515
<div id="wrapper">
1616
<div id="code-tabs-wrapper" class="code-tabs"><ul class="code-tab-list"></ul></div>
1717
<div id="page-content-wrapper" class="body-content container-fluid"><h1 id="-strong-tarmak-strong-"><strong>Tarmak</strong></h1>
@@ -608,6 +608,88 @@ <h2 id="clusterflags-v1alpha1">ClusterFlags v1alpha1</h2>
608608
<td><code>destroy</code><br /> <em><a href="#clusterdestroyflags-v1alpha1">ClusterDestroyFlags</a></em></td>
609609
<td>flags for applying clusters</td>
610610
</tr>
611+
<tr>
612+
<td><code>images</code><br /> <em><a href="#clusterimagesflags-v1alpha1">ClusterImagesFlags</a></em></td>
613+
<td>flags for destroying clusters</td>
614+
</tr>
615+
</tbody>
616+
</table>
617+
<h2 id="clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags v1alpha1</h2>
618+
<table>
619+
<thead>
620+
<tr>
621+
<th>Group</th>
622+
<th>Version</th>
623+
<th>Kind</th>
624+
</tr>
625+
</thead>
626+
<tbody>
627+
<tr>
628+
<td><code>tarmak</code></td>
629+
<td><code>v1alpha1</code></td>
630+
<td><code>ClusterImagesDestroyFlags</code></td>
631+
</tr>
632+
</tbody>
633+
</table>
634+
<p>Contains the cluster images destroy flags</p>
635+
<aside class="notice">
636+
Appears In:
637+
638+
<ul>
639+
<li><a href="#clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</a></li>
640+
</ul></aside>
641+
642+
<table>
643+
<thead>
644+
<tr>
645+
<th>Field</th>
646+
<th>Description</th>
647+
</tr>
648+
</thead>
649+
<tbody>
650+
<tr>
651+
<td><code>all</code><br /> <em>boolean</em></td>
652+
<td></td>
653+
</tr>
654+
</tbody>
655+
</table>
656+
<h2 id="clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</h2>
657+
<table>
658+
<thead>
659+
<tr>
660+
<th>Group</th>
661+
<th>Version</th>
662+
<th>Kind</th>
663+
</tr>
664+
</thead>
665+
<tbody>
666+
<tr>
667+
<td><code>tarmak</code></td>
668+
<td><code>v1alpha1</code></td>
669+
<td><code>ClusterImagesFlags</code></td>
670+
</tr>
671+
</tbody>
672+
</table>
673+
<p>Contains the cluster images flags</p>
674+
<aside class="notice">
675+
Appears In:
676+
677+
<ul>
678+
<li><a href="#clusterflags-v1alpha1">ClusterFlags v1alpha1</a></li>
679+
</ul></aside>
680+
681+
<table>
682+
<thead>
683+
<tr>
684+
<th>Field</th>
685+
<th>Description</th>
686+
</tr>
687+
</thead>
688+
<tbody>
689+
<tr>
690+
<td><code>destroy</code><br /> <em><a href="#clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags</a></em></td>
691+
<td></td>
692+
</tr>
611693
</tbody>
612694
</table>
613695
<h2 id="clusterkubernetes-v1alpha1">ClusterKubernetes v1alpha1</h2>

0 commit comments

Comments
 (0)