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

Commit 04bf381

Browse files
committed
Includes --all flag to cluster images destroy
Signed-off-by: JoshVanL <[email protected]>
1 parent 27023a2 commit 04bf381

File tree

9 files changed

+106
-11
lines changed

9 files changed

+106
-11
lines changed

cmd/tarmak/cmd/cluster.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@ func clusterImagesBuildFlags(fs *flag.FlagSet) {
5050
)
5151
}
5252

53+
func clusterImagesDestroyFlags(fs *flag.FlagSet) {
54+
store := &globalFlags.Cluster.Images.Destroy
55+
56+
fs.BoolVarP(
57+
&store.All,
58+
"all",
59+
"A",
60+
false,
61+
"destroy all tarmak images for this cluster",
62+
)
63+
}
64+
5365
func clusterFlagDryRun(fs *flag.FlagSet, store *bool) {
5466
fs.BoolVar(
5567
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 specific or all images missing
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: 44 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="#clusterimagesbuildflags-v1alpha1" class="nav-item">ClusterImagesBuildFlags 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>
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="#clusterimagesbuildflags-v1alpha1" class="nav-item">ClusterImagesBuildFlags 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>
@@ -653,6 +653,45 @@ <h2 id="clusterimagesbuildflags-v1alpha1">ClusterImagesBuildFlags v1alpha1</h2>
653653
</tr>
654654
</tbody>
655655
</table>
656+
<h2 id="clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags 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>ClusterImagesDestroyFlags</code></td>
670+
</tr>
671+
</tbody>
672+
</table>
673+
<p>Contains the cluster images destroy flags</p>
674+
<aside class="notice">
675+
Appears In:
676+
677+
<ul>
678+
<li><a href="#clusterimagesflags-v1alpha1">ClusterImagesFlags 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>all</code><br /> <em>boolean</em></td>
691+
<td></td>
692+
</tr>
693+
</tbody>
694+
</table>
656695
<h2 id="clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</h2>
657696
<table>
658697
<thead>
@@ -690,6 +729,10 @@ <h2 id="clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</h2>
690729
<td><code>build</code><br /> <em><a href="#clusterimagesbuildflags-v1alpha1">ClusterImagesBuildFlags</a></em></td>
691730
<td></td>
692731
</tr>
732+
<tr>
733+
<td><code>destroy</code><br /> <em><a href="#clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags</a></em></td>
734+
<td>flags for handling building images</td>
735+
</tr>
693736
</tbody>
694737
</table>
695738
<h2 id="clusterkubernetes-v1alpha1">ClusterKubernetes v1alpha1</h2>

0 commit comments

Comments
 (0)