Merge pull request #1287 from SomtochiAma/get-all-cmd

Add get all command
pull/1264/head
Stefan Prodan 4 years ago committed by GitHub
commit 76ffd76bd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,91 @@
/*
Copyright 2021 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"strings"
"github.com/spf13/cobra"
helmv2 "github.com/fluxcd/helm-controller/api/v2beta1"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
)
var getAllCmd = &cobra.Command{
Use: "all",
Short: "Get all resources and statuses",
Long: "The get all command print the statuses of all resources.",
Example: ` # List all resources in a namespace
flux get all --namespace=flux-system
# List all resources in all namespaces
flux get all --all-namespaces`,
RunE: func(cmd *cobra.Command, args []string) error {
err := getSourceAllCmd.RunE(cmd, args)
if err != nil {
logError(err)
}
// all get command
var allCmd = []getCommand{
{
apiType: helmReleaseType,
list: &helmReleaseListAdapter{&helmv2.HelmReleaseList{}},
},
{
apiType: kustomizationType,
list: &kustomizationListAdapter{&kustomizev1.KustomizationList{}},
},
{
apiType: receiverType,
list: receiverListAdapter{&notificationv1.ReceiverList{}},
},
{
apiType: alertProviderType,
list: alertProviderListAdapter{&notificationv1.ProviderList{}},
},
{
apiType: alertType,
list: &alertListAdapter{&notificationv1.AlertList{}},
},
}
err = getImageAllCmd.RunE(cmd, args)
if err != nil {
logError(err)
}
for _, c := range allCmd {
if err := c.run(cmd, args); err != nil {
logError(err)
}
}
return nil
},
}
func logError(err error) {
if !strings.Contains(err.Error(), "no matches for kind") {
logger.Failuref(err.Error())
}
}
func init() {
getCmd.AddCommand(getAllCmd)
}

@ -17,6 +17,8 @@ limitations under the License.
package main
import (
"strings"
"github.com/spf13/cobra"
autov1 "github.com/fluxcd/image-automation-controller/api/v1alpha1"
@ -33,6 +35,20 @@ var getImageAllCmd = &cobra.Command{
# List all image objects in all namespaces
flux get images all --all-namespaces`,
RunE: func(cmd *cobra.Command, args []string) error {
var allImageCmd = []getCommand{
{
apiType: imageRepositoryType,
list: imageRepositoryListAdapter{&imagev1.ImageRepositoryList{}},
},
{
apiType: imagePolicyType,
list: &imagePolicyListAdapter{&imagev1.ImagePolicyList{}},
},
{
apiType: imageUpdateAutomationType,
list: &imageUpdateAutomationListAdapter{&autov1.ImageUpdateAutomationList{}},
},
}
c := getCommand{
apiType: imageRepositoryType,
list: imageRepositoryListAdapter{&imagev1.ImageRepositoryList{}},
@ -41,20 +57,12 @@ var getImageAllCmd = &cobra.Command{
logger.Failuref(err.Error())
}
c = getCommand{
apiType: imagePolicyType,
list: &imagePolicyListAdapter{&imagev1.ImagePolicyList{}},
}
for _, c := range allImageCmd {
if err := c.run(cmd, args); err != nil {
if !strings.Contains(err.Error(), "no matches for kind") {
logger.Failuref(err.Error())
}
c = getCommand{
apiType: imageUpdateAutomationType,
list: &imageUpdateAutomationListAdapter{&autov1.ImageUpdateAutomationList{}},
}
if err := c.run(cmd, args); err != nil {
logger.Failuref(err.Error())
}
return nil

@ -17,6 +17,8 @@ limitations under the License.
package main
import (
"strings"
"github.com/spf13/cobra"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
@ -32,37 +34,32 @@ var getSourceAllCmd = &cobra.Command{
# List all sources in all namespaces
flux get sources all --all-namespaces`,
RunE: func(cmd *cobra.Command, args []string) error {
c := getCommand{
var allSourceCmd = []getCommand{
{
apiType: bucketType,
list: &bucketListAdapter{&sourcev1.BucketList{}},
}
if err := c.run(cmd, args); err != nil {
logger.Failuref(err.Error())
}
c = getCommand{
},
{
apiType: gitRepositoryType,
list: &gitRepositoryListAdapter{&sourcev1.GitRepositoryList{}},
}
if err := c.run(cmd, args); err != nil {
logger.Failuref(err.Error())
}
c = getCommand{
},
{
apiType: helmRepositoryType,
list: &helmRepositoryListAdapter{&sourcev1.HelmRepositoryList{}},
}
if err := c.run(cmd, args); err != nil {
logger.Failuref(err.Error())
}
c = getCommand{
},
{
apiType: helmChartType,
list: &helmChartListAdapter{&sourcev1.HelmChartList{}},
},
}
for _, c := range allSourceCmd {
if err := c.run(cmd, args); err != nil {
if !strings.Contains(err.Error(), "no matches for kind") {
logger.Failuref(err.Error())
}
}
}
return nil
},

@ -31,6 +31,7 @@ The get sub-commands print the statuses of Flux resources.
* [flux](../flux/) - Command line utility for assembling Kubernetes CD pipelines
* [flux get alert-providers](../flux_get_alert-providers/) - Get Provider statuses
* [flux get alerts](../flux_get_alerts/) - Get Alert statuses
* [flux get all](../flux_get_all/) - Get all resources and statuses
* [flux get helmreleases](../flux_get_helmreleases/) - Get HelmRelease statuses
* [flux get images](../flux_get_images/) - Get image automation object status
* [flux get kustomizations](../flux_get_kustomizations/) - Get Kustomization statuses

@ -0,0 +1,46 @@
---
title: "flux get all command"
---
## flux get all
Get all resources and statuses
### Synopsis
The get all command print the statuses of all resources.
```
flux get all [flags]
```
### Examples
```
# List all resources in a namespace
flux get all --namespace=flux-system
# List all resources in all namespaces
flux get all --all-namespaces
```
### Options
```
-h, --help help for all
```
### Options inherited from parent commands
```
-A, --all-namespaces list the requested object(s) across all namespaces
--context string kubernetes context to use
--kubeconfig string absolute path to the kubeconfig file
-n, --namespace string the namespace scope for this operation (default "flux-system")
--timeout duration timeout for this operation (default 5m0s)
--verbose print generated objects
```
### SEE ALSO
* [flux get](../flux_get/) - Get the resources and their status

@ -147,6 +147,7 @@ nav:
- Export image repository: cmd/flux_export_image_repository.md
- Export image update: cmd/flux_export_image_update.md
- Get: cmd/flux_get.md
- Get all: cmd/flux_get_all.md
- Get kustomizations: cmd/flux_get_kustomizations.md
- Get helmreleases: cmd/flux_get_helmreleases.md
- Get sources: cmd/flux_get_sources.md

Loading…
Cancel
Save