crd client

This commit is contained in:
Marc Campbell
2019-07-17 22:09:26 +00:00
parent f693073aaf
commit 6fc6db0549
+34 -6
View File
@@ -5,18 +5,21 @@ import (
"fmt"
corev1 "k8s.io/api/core/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsv1beta1clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"sigs.k8s.io/controller-runtime/pkg/client/config"
)
type ClusterResourcesOutput struct {
Namespaces []byte `json:"cluster-resources/namespaces.json,omitempty"`
Pods map[string][]byte `json:"cluster-resources/pods,omitempty"`
Services map[string][]byte `json:"cluster-resources/services,omitempty"`
Deployments map[string][]byte `json:"cluster-resources/deployments,omitempty"`
Ingress map[string][]byte `json:"cluster-resources/ingress,omitempty"`
StorageClasses []byte `json:"cluster-resources/storage-classes.json,omitempty"`
Namespaces []byte `json:"cluster-resources/namespaces.json,omitempty"`
Pods map[string][]byte `json:"cluster-resources/pods,omitempty"`
Services map[string][]byte `json:"cluster-resources/services,omitempty"`
Deployments map[string][]byte `json:"cluster-resources/deployments,omitempty"`
Ingress map[string][]byte `json:"cluster-resources/ingress,omitempty"`
StorageClasses []byte `json:"cluster-resources/storage-classes.json,omitempty"`
CustomResourceDefinitions []byte `json:"cluster-resources/custom-resource-definitions.json,omitempty"`
}
func ClusterResources() error {
@@ -78,6 +81,17 @@ func ClusterResources() error {
}
clusterResourcesOutput.StorageClasses = storageClasses
// crds
crdClient, err := apiextensionsv1beta1.NewForConfig(cfg)
if err != nil {
return err
}
customResourceDefinitions, err := crds(crdClient)
if err != nil {
return err
}
clusterResourcesOutput.CustomResourceDefinitions = customResourceDefinitions
b, err := json.MarshalIndent(clusterResourcesOutput, "", " ")
if err != nil {
return err
@@ -195,3 +209,17 @@ func storageClasses(client *kubernetes.Clientset) ([]byte, error) {
return b, nil
}
func crds(client *apiextensionsv1beta1clientset.ApiextensionsV1beta1Client) ([]byte, error) {
crds, err := client.CustomResourceDefinitions().List(metav1.ListOptions{})
if err != nil {
return nil, err
}
b, err := json.MarshalIndent(crds.Items, "", " ")
if err != nil {
return nil, err
}
return b, nil
}