cluster

package
v0.1.1-0...-f02a436 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReportContainerResources

func ReportContainerResources(reportedNamespace *NamespaceReport, pod *k8sapicore.Pod)

ReportContainerResources create report about container resources

func ReportDaemonSets

func ReportDaemonSets(reporeportedNamespace *NamespaceReport, dsList *extv1b1.DaemonSetList)

ReportDaemonSets generate DaemonSet report

func ReportDeployments

func ReportDeployments(reportedNamespace *NamespaceReport, deploymentList *v1beta1.DeploymentList)

ReportDeployments generate Deployments report

func ReportNodeResources

func ReportNodeResources(repotedNode *NodeReport, nodeStatus k8sapicore.NodeStatus, apiResources api.Resources)

ReportNodeResources parse and insert info about consumed resources

func ReportPVCs

func ReportPVCs(reporeportedNamespace *NamespaceReport, pvcList *k8scorev1.PersistentVolumeClaimList, pvList []PVReport)

ReportPVCs generate PVC report

func ReportPods

func ReportPods(reportedNamespace *NamespaceReport, podList *k8sapicore.PodList)

ReportPods creates info about cluster pods

func ReportResourceQuotas

func ReportResourceQuotas(reportedNamespace *NamespaceReport, quotaList *k8sapicore.ResourceQuotaList)

ReportResourceQuotas creates report about quotas

func ReportResources

func ReportResources(reportedNamespace *NamespaceReport, podList *k8sapicore.PodList)

ReportResources create report about namespace resources

func ReportRoutes

func ReportRoutes(reportedNamespace *NamespaceReport, routeList *o7tapiroute.RouteList)

ReportRoutes create report about routes

Types

type ContainerResourcesReport

type ContainerResourcesReport struct {
	ContainerCount int                `json:"containerCount"`
	CPUTotal       *resource.Quantity `json:"cpuTotal"`
	MemoryTotal    *resource.Quantity `json:"memoryTotal"`
}

ContainerResourcesReport represents json report for aggregated container resources

type DaemonSetReport

type DaemonSetReport struct {
	Name         string       `json:"name"`
	LatestChange k8sMeta.Time `json:"latestChange,omitempty"`
}

DaemonSetReport represents json report of k8s DaemonSet relevant information

type DeploymentReport

type DeploymentReport struct {
	Name         string       `json:"name"`
	LatestChange k8sMeta.Time `json:"latestChange,omitempty"`
}

DeploymentReport represents json report of DeploymentReport resources

type NamespaceReport

type NamespaceReport struct {
	Name                       string                   `json:"name"`
	LatestChange               k8sMeta.Time             `json:"latestChange,omitempty"`
	Resources                  ContainerResourcesReport `json:"resources,omitempty"`
	Pods                       []PodReport              `json:"pods,omitempty"`
	Routes                     []RouteReport            `json:"routes,omitempty"`
	DaemonSets                 []DaemonSetReport        `json:"daemonSets,omitempty"`
	Deployments                []DeploymentReport       `json:"deployments,omitempty"`
	Quotas                     []ResourceQuotaReport    `json:"quotas,omitempty"`
	SecurityContextConstraints []string                 `json:"securityContextConstraints,omitempty"`
	PVCs                       []PVСReport              `json:"persistentVolumeClaims,omitempty"`
}

NamespaceReport represents json report of k8s namespaces

type NodeReport

type NodeReport struct {
	Name       string        `json:"name"`
	MasterNode bool          `json:"masterNode"`
	Resources  NodeResources `json:"resources"`
}

NodeReport represents json report of k8s nodes

type NodeResources

type NodeResources struct {
	CPU            *resource.Quantity `json:"cpu"`
	MemoryConsumed *resource.Quantity `json:"memoryConsumed"`
	MemoryCapacity *resource.Quantity `json:"memoryCapacity"`
	RunningPods    *resource.Quantity `json:"runningPods"`
	PodCapacity    *resource.Quantity `json:"podCapacity"`
}

NodeResources represents a json report of Node resources

type OpenshiftClusterRole

type OpenshiftClusterRole struct {
	Name  string                  `json:"name"`
	Rules []o7tapiauth.PolicyRule `json:"rules,omitempty" protobuf:"bytes,2,rep,name=rules"`
}

OpenshiftClusterRole wrapper around cluster role

type OpenshiftClusterRoleBinding

type OpenshiftClusterRoleBinding struct {
	Name       string                      `json:"name"`
	UserNames  o7tapiauth.OptionalNames    `json:"userNames" protobuf:"bytes,2,rep,name=userNames"`
	GroupNames o7tapiauth.OptionalNames    `json:"groupNames" protobuf:"bytes,3,rep,name=groupNames"`
	Subjects   []k8scorev1.ObjectReference `json:"subjects" protobuf:"bytes,4,rep,name=subjects"`
	RoleRef    k8scorev1.ObjectReference   `json:"roleRef" protobuf:"bytes,5,opt,name=roleRef"`
}

OpenshiftClusterRoleBinding wrapper around openshift cluster role bindings

type OpenshiftGroup

type OpenshiftGroup struct {
	Name  string   `json:"name"`
	Users []string `json:"users" protobuf:"bytes,2,rep,name=users"`
}

OpenshiftGroup wrapper around openshift group

type OpenshiftNamespaceRole

type OpenshiftNamespaceRole struct {
	Namespace string          `json:"namespace"`
	Roles     []OpenshiftRole `json:"roles"`
}

OpenshiftNamespaceRole represent roles mapped to namespaces

type OpenshiftRole

type OpenshiftRole struct {
	Name  string                  `json:"name"`
	Rules []o7tapiauth.PolicyRule `json:"rules,omitempty" protobuf:"bytes,2,rep,name=rules"`
}

OpenshiftRole wrapper around openshift role

type OpenshiftSecurityContextConstraints

type OpenshiftSecurityContextConstraints struct {
	Name       string   `json:"name"`
	Users      []string `json:"users" protobuf:"bytes,18,rep,name=users"`
	Groups     []string `json:"groups" protobuf:"bytes,19,rep,name=groups"`
	Namespaces []string `json:"namespaces,omitempty"`
}

OpenshiftSecurityContextConstraints wrapper aroung opeshift scc

type OpenshiftUser

type OpenshiftUser struct {
	Name       string   `json:"name"`
	FullName   string   `json:"fullName,omitempty" protobuf:"bytes,2,opt,name=fullName"`
	Identities []string `json:"identities" protobuf:"bytes,3,rep,name=identities"`
	Groups     []string `json:"groups" protobuf:"bytes,4,rep,name=groups"`
}

OpenshiftUser wrapper around openshift user

type PVReport

type PVReport struct {
	Name          string                                   `json:"name"`
	Driver        k8sapicore.PersistentVolumeSource        `json:"driver"`
	StorageClass  string                                   `json:"storageClass,omitempty"`
	Capacity      k8sapicore.ResourceList                  `json:"capacity,omitempty"`
	Phase         k8sapicore.PersistentVolumePhase         `json:"phase,omitempty"`
	ReclaimPolicy k8sapicore.PersistentVolumeReclaimPolicy `` /* 143-byte string literal not displayed */
}

PVReport represents json report of k8s PVs

type PVСReport

type PVСReport struct {
	Name          string                                   `json:"name"`
	PVName        string                                   `json:"pvname"`
	AccessModes   []k8scorev1.PersistentVolumeAccessMode   `json:"accessModes,omitempty" protobuf:"bytes,1,rep,name=accessModes,casttype=PersistentVolumeAccessMode"`
	StorageClass  string                                   `json:"storageClass"`
	Capacity      k8sapicore.ResourceList                  `json:"capacity,omitempty"`
	ReclaimPolicy k8sapicore.PersistentVolumeReclaimPolicy `` /* 143-byte string literal not displayed */
}

PVСReport represents json report of k8s PVs

type PodReport

type PodReport struct {
	Name string `json:"name"`
}

PodReport represents json report of k8s pods

type QuotaReport

type QuotaReport struct {
	Name     string                                   `json:"name"`
	Quota    k8sapicore.ResourceQuotaSpec             `json:"quota,omitempty"`
	Selector o7tapiquota.ClusterResourceQuotaSelector `json:"selector,omitempty"`
}

QuotaReport represents json report of o7t cluster quotas

type RBACReport

type RBACReport struct {
	Users                      []OpenshiftUser                       `json:"users"`
	Groups                     []OpenshiftGroup                      `json:"group"`
	Roles                      []OpenshiftNamespaceRole              `json:"roles"`
	ClusterRoles               []OpenshiftClusterRole                `json:"clusterRoles"`
	ClusterRoleBindings        []OpenshiftClusterRoleBinding         `json:"clusterRoleBindings"`
	SecurityContextConstraints []OpenshiftSecurityContextConstraints `json:"securityContextConstraints"`
}

RBACReport contains RBAC report

type Report

type Report struct {
	Nodes          []NodeReport         `json:"nodes"`
	Quotas         []QuotaReport        `json:"quotas"`
	Namespaces     []NamespaceReport    `json:"namespaces,omitempty"`
	PVs            []PVReport           `json:"pvs,omitempty"`
	StorageClasses []StorageClassReport `json:"storageClasses,omitempty"`
	RBACReport     RBACReport           `json:"rbacreport,omitempty"`
}

Report represents json report of k8s resources

func GenClusterReport

func GenClusterReport(apiResources api.Resources) (clusterReport Report)

GenClusterReport inserts report values into structures for json output

func (*Report) ReportNamespaces

func (clusterReport *Report) ReportNamespaces(apiResources api.Resources)

ReportNamespaces fills in information about Namespaces

func (*Report) ReportNodes

func (clusterReport *Report) ReportNodes(apiResources api.Resources)

ReportNodes fills in information about nodes

func (*Report) ReportPVs

func (clusterReport *Report) ReportPVs(apiResources api.Resources)

ReportPVs create report oabout pvs

func (*Report) ReportQuotas

func (clusterReport *Report) ReportQuotas(apiResources api.Resources)

ReportQuotas creates report about cluster quotas

func (*Report) ReportRBAC

func (clusterReport *Report) ReportRBAC(apiResources api.Resources)

ReportRBAC create report about RBAC policy

func (*Report) ReportStorageClasses

func (clusterReport *Report) ReportStorageClasses(apiResources api.Resources)

ReportStorageClasses create report about storage classes

type ResourceQuotaReport

type ResourceQuotaReport struct {
	Name          string                          `json:"name"`
	Hard          k8scorev1.ResourceList          `json:"hard,omitempty"`
	ScopeSelector *k8sapicore.ScopeSelector       `json:"selector,omitempty"`
	Scopes        []k8sapicore.ResourceQuotaScope `json:"scopes,omitempty"`
}

ResourceQuotaReport represents json report of Quota resources

type RouteReport

type RouteReport struct {
	Name              string                             `json:"name"`
	Host              string                             `json:"host"`
	Path              string                             `json:"path,omitempty"`
	AlternateBackends []o7tapiroute.RouteTargetReference `json:"alternateBackends,omitempty"`
	TLS               *o7tapiroute.TLSConfig             `json:"tls,omitempty"`
	To                o7tapiroute.RouteTargetReference   `json:"to"`
	WildcardPolicy    o7tapiroute.WildcardPolicyType     `json:"wildcardPolicy"`
}

RouteReport represents json report of k8s pods

type StorageClassReport

type StorageClassReport struct {
	Name        string `json:"name"`
	Provisioner string `json:"provisioner"`
}

StorageClassReport represents json report of k8s storage classes

Jump to

Keyboard shortcuts

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