Skip to content
This repository was archived by the owner on Jan 9, 2023. It is now read-only.
Open
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
12 changes: 12 additions & 0 deletions cmd/tarmak/cmd/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ func clusterPlanFlags(fs *flag.FlagSet) {
)
}

func clusterImagesDestroyFlags(fs *flag.FlagSet) {
store := &globalFlags.Cluster.Images.Destroy

fs.BoolVarP(
&store.All,
"all",
"A",
false,
"destroy all tarmak images for this cluster",
)
}

func clusterFlagDryRun(fs *flag.FlagSet, store *bool) {
fs.BoolVar(
store,
Expand Down
30 changes: 30 additions & 0 deletions cmd/tarmak/cmd/cluster_images_destroy.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright Jetstack Ltd. See LICENSE for details.
package cmd

import (
"errors"

"github.com/spf13/cobra"

"github.com/jetstack/tarmak/pkg/tarmak"
)

var clusterImagesDestroyCmd = &cobra.Command{
Use: "destroy [image ids]",
Short: "destroy remote tarmak images",
PreRunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 && !globalFlags.Cluster.Images.Destroy.All {
return errors.New("expecting at least a single image ID argument or --all")
}
return nil
},
Run: func(cmd *cobra.Command, args []string) {
t := tarmak.New(globalFlags)
t.CancellationContext().WaitOrCancel(t.NewCmdTarmak(cmd.Flags(), args).ImagesDestroy)
},
}

func init() {
clusterImagesDestroyFlags(clusterImagesDestroyCmd.PersistentFlags())
clusterImagesCmd.AddCommand(clusterImagesDestroyCmd)
}
5 changes: 5 additions & 0 deletions docs/cmd-docs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ Command line documentation for both tarmak and wing commands

generated/cmd/tarmak/tarmak_clusters_images_build

.. toctree::
:maxdepth: 1

generated/cmd/tarmak/tarmak_clusters_images_destroy

.. toctree::
:maxdepth: 1

Expand Down
1 change: 1 addition & 0 deletions docs/generated/cmd/tarmak/tarmak_clusters_images.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@ SEE ALSO

* `tarmak clusters <tarmak_clusters.html>`_ - Operations on clusters
* `tarmak clusters images build <tarmak_clusters_images_build.html>`_ - build specific or all images missing
* `tarmak clusters images destroy <tarmak_clusters_images_destroy.html>`_ - destroy remote tarmak images
* `tarmak clusters images list <tarmak_clusters_images_list.html>`_ - list images

43 changes: 43 additions & 0 deletions docs/generated/cmd/tarmak/tarmak_clusters_images_destroy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.. _tarmak_clusters_images_destroy:

tarmak clusters images destroy
------------------------------

destroy remote tarmak images

Synopsis
~~~~~~~~


destroy remote tarmak images

::

tarmak clusters images destroy [image ids] [flags]

Options
~~~~~~~

::

-A, --all destroy all tarmak images for this cluster
-h, --help help for destroy

Options inherited from parent commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

-c, --config-directory string config directory for tarmak's configuration (default "~/.tarmak")
--current-cluster string override the current cluster set in the config
--keep-containers do not clean-up terraform/packer containers after running them
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
--public-api-endpoint Override kubeconfig to point to cluster's public API endpoint
-v, --verbose enable verbose logging
--wing-dev-mode use a bundled wing version rather than a tagged release from GitHub

SEE ALSO
~~~~~~~~

* `tarmak clusters images <tarmak_clusters_images.html>`_ - Operations on images

45 changes: 44 additions & 1 deletion docs/generated/reference/output/api-docs.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<link rel="stylesheet" href="stylesheet.css" type="text/css">
</head>
<body>
<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="#clusterkubeconfigflags-v1alpha1" class="nav-item">ClusterKubeconfigFlags 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="#clusterplanflags-v1alpha1" class="nav-item">ClusterPlanFlags 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>
<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="#clusterkubeconfigflags-v1alpha1" class="nav-item">ClusterKubeconfigFlags 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="#clusterplanflags-v1alpha1" class="nav-item">ClusterPlanFlags 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>
<div id="wrapper">
<div id="code-tabs-wrapper" class="code-tabs"><ul class="code-tab-list"></ul></div>
<div id="page-content-wrapper" class="body-content container-fluid"><h1 id="-strong-tarmak-strong-"><strong>Tarmak</strong></h1>
Expand Down Expand Up @@ -681,6 +681,45 @@ <h2 id="clusterimagesbuildflags-v1alpha1">ClusterImagesBuildFlags v1alpha1</h2>
</tr>
</tbody>
</table>
<h2 id="clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags v1alpha1</h2>
<table>
<thead>
<tr>
<th>Group</th>
<th>Version</th>
<th>Kind</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>tarmak</code></td>
<td><code>v1alpha1</code></td>
<td><code>ClusterImagesDestroyFlags</code></td>
</tr>
</tbody>
</table>
<p>Contains the cluster images destroy flags</p>
<aside class="notice">
Appears In:

<ul>
<li><a href="#clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</a></li>
</ul></aside>

<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>all</code><br /> <em>boolean</em></td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</h2>
<table>
<thead>
Expand Down Expand Up @@ -718,6 +757,10 @@ <h2 id="clusterimagesflags-v1alpha1">ClusterImagesFlags v1alpha1</h2>
<td><code>build</code><br /> <em><a href="#clusterimagesbuildflags-v1alpha1">ClusterImagesBuildFlags</a></em></td>
<td></td>
</tr>
<tr>
<td><code>destroy</code><br /> <em><a href="#clusterimagesdestroyflags-v1alpha1">ClusterImagesDestroyFlags</a></em></td>
<td>flags for handling building images</td>
</tr>
</tbody>
</table>
<h2 id="clusterkubeconfigflags-v1alpha1">ClusterKubeconfigFlags v1alpha1</h2>
Expand Down
Loading