report

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package report generates a report from the state of a cluster

Code generated by go generate; DO NOT EDIT.

This file was generated by gen_list_converter.go at 2019-06-17 12:11:32.157784588 +0300 EEST m=+0.000644685

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClusterStateReport

type ClusterStateReport struct {
	Namespaces                   []NamespaceReport             `json:"namespaces"`
	Nodes                        []NodeReport                  `json:"nodes"`
	Services                     []ServiceReport               `json:"services"`
	Pods                         []PodReport                   `json:"pods"`
	PersistentVolumeReports      []PersistentVolumeReport      `json:"persistentVolumes"`
	PersistentVolumeClaimReports []PersistentVolumeClaimReport `json:"persistentVolumeClaims"`
	ConfigMapReports             []ConfigMapReport             `json:"configMaps"`
	SecretReports                []SecretReport                `json:"secrets"`
	Deployments                  []DeploymentReport            `json:"deployments"`
}

ClusterStateReport is the complete summary (so without all the details) for a cluster

func BuildReport

func BuildReport(contextName string) (*ClusterStateReport, error)

BuildReport builds a complete status report from a cluster status

type ConfigMapReport

type ConfigMapReport struct {
	ID        types.UID         `json:"id"`
	NameSpace string            `json:"namespace"`
	Name      string            `json:"name"`
	Data      map[string]string `json:"data"`
}

ConfigMapReport is the summary of the config maps in a cluster

type ContainerReport

type ContainerReport struct {
	ID        string          `json:"id"`
	NameSpace string          `json:"namespace"`
	Name      string          `json:"name"`
	Image     string          `json:"image"`
	Ports     []PodPortReport `json:"ports"`
	Ready     bool            `json:"ready"`
}

ContainerReport is the summary of the containers of a pod

type DeploymentReport

type DeploymentReport struct {
	ID        types.UID         `json:"id"`
	NameSpace string            `json:"namespace"`
	Name      string            `json:"name"`
	Labels    map[string]string `json:"labels"`
	Selector  map[string]string `json:"selector"`
	Volumes   []VolumeReport    `json:"volumes"`
}

DeploymentReport is the summary of the deployments in a cluster

type NamespaceReport

type NamespaceReport struct {
	ID            types.UID         `json:"id"`
	NameSpace     string            `json:"namespace"`
	Name          string            `json:"name"`
	Labels        map[string]string `json:"labels"`
	ServiceIds    []types.UID       `json:"serviceIds"`
	PodIds        []types.UID       `json:"podIds"`
	DeploymentIds []types.UID       `json:"deploymentsIds"`
}

NamespaceReport is the summary of the namespaces of the cluster

type NodeReport

type NodeReport struct {
	ID              types.UID         `json:"id"`
	NameSpace       string            `json:"namespace"`
	Name            string            `json:"name"`
	Labels          map[string]string `json:"labels"`
	Condition       string            `json:"condition"`
	AllowedCPUCores int               `json:"allowedCPUCores"`
	AllowedRAM      int               `json:"allowedRAM"`
	UsageCPUCores   *float64          `json:"usageCPUCores"`
	UsageRAM        *int              `json:"usageRAM"`
	PodIds          []types.UID       `json:"podIds"`
}

NodeReport is the summary of the nodes of the cluster

type PersistentVolumeClaimReport

type PersistentVolumeClaimReport struct {
	ID         types.UID `json:"id"`
	NameSpace  string    `json:"namespace"`
	Name       string    `json:"name"`
	VolumeName string    `json:"volumeName"`
}

PersistentVolumeClaimReport is the summary of the persistent volume claims in a cluster

type PersistentVolumeReport

type PersistentVolumeReport struct {
	ID          types.UID   `json:"id"`
	NameSpace   string      `json:"namespace"`
	Name        string      `json:"name"`
	StorageType StorageType `json:"type"`
	Capacity    *int        `json:"capacity"`
}

PersistentVolumeReport is the summary of the persistent volumes in a cluster

type PodPortReport

type PodPortReport struct {
	Protocol      string  `json:"protocol"`
	ContainerPort int32   `json:"containerPort"`
	Name          *string `json:"name"`
}

PodPortReport is the summary of the ports of a pod

type PodReport

type PodReport struct {
	ID            types.UID         `json:"id"`
	NameSpace     string            `json:"namespace"`
	Name          string            `json:"name"`
	Labels        map[string]string `json:"labels"`
	Condition     string            `json:"condition"`
	IP            string            `json:"ip"`
	UsageCPUCores *float64          `json:"usageCPUCores"`
	UsageRAM      *int              `json:"usageRAM"`
	Containers    []ContainerReport `json:"containers"`
	Volumes       []VolumeReport    `json:"volumes"`
}

PodReport is the summary of the pods in a cluster

type SecretReport

type SecretReport struct {
	ID        types.UID         `json:"id"`
	NameSpace string            `json:"namespace"`
	Name      string            `json:"name"`
	Data      map[string][]byte `json:"data"`
}

SecretReport is the summary of the secrets in a cluster

type ServicePortReport

type ServicePortReport struct {
	Protocol         string  `json:"protocol"`
	InternalPort     int32   `json:"internalPort"`
	InternalPortName *string `json:"internalPortName"`
	NodePort         *int32  `json:"nodePort"`
}

ServicePortReport is the summary of the port used by a service

type ServiceReport

type ServiceReport struct {
	ID          types.UID           `json:"id"`
	NameSpace   string              `json:"namespace"`
	Name        string              `json:"name"`
	ClusterIP   string              `json:"clusterIP"`
	ExternalIPs []string            `json:"externalIP"`
	Ports       []ServicePortReport `json:"ports"`
	Labels      map[string]string   `json:"labels"`
	Selector    map[string]string   `json:"selector"`
	PodIds      []types.UID         `json:"podIds"`
}

ServiceReport is the summary of the services of the cluster

type StorageType

type StorageType string

StorageType is a list of all possible storage for volumes and persistent volumes

const (

	// AWSElasticBlockStore is storage in Amazon
	AWSElasticBlockStore StorageType = "AWSElasticBlockStore"
	AzureDisk            StorageType = "AzureDisk"
	AzureFile            StorageType = "AzureFile"
	CephFS               StorageType = "CephFS"
	Cinder               StorageType = "Cinder"
	FC                   StorageType = "FC"
	Flocker              StorageType = "Flocker"
	FlexVolume           StorageType = "FlexVolume"
	GCEPersistentDisk    StorageType = "GCEPersistentDisk"
	Glusterfs            StorageType = "Glusterfs"
	HostPath             StorageType = "HostPath"
	ISCSI                StorageType = "ISCSI"
	NFS                  StorageType = "NFS"
	Quobyte              StorageType = "Quobyte"
	RBD                  StorageType = "RBD"
	ScaleIO              StorageType = "ScaleIO"
	StorageOS            StorageType = "StorageOS"
	VsphereVolume        StorageType = "VsphereVolume"

	// CSI is storage in CSI
	CSI   StorageType = "CSI"
	Local StorageType = "Local"

	// ConfigMap is storage in ConfigMap
	ConfigMap             StorageType = "ConfigMap"
	DownwardAPI           StorageType = "DownwardAPI"
	EmptyDir              StorageType = "EmptyDir"
	PersistentVolumeClaim StorageType = "PersistentVolumeClaim"
	PhotonPersistentDisk  StorageType = "PhotonPersistentDisk"
	PortworxVolume        StorageType = "PortworxVolume"
	Projected             StorageType = "Projected"
	Secret                StorageType = "Secret"

	// Unknown is an unknown storage, not good...
	Unknown StorageType = "Unknown"
)

These are valid address type of node.

type VolumeReport

type VolumeReport struct {
	Name                      string      `json:"name"`
	StorageType               StorageType `json:"type"`
	PersistentVolumeClaimName *string     `json:"persistentVolumeClaimName"`
}

VolumeReport is the summary of the volumes in a cluster

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL