checkpoint

mine
derailed 2019-11-15 19:39:19 -07:00
parent ef0aab3f4c
commit 85970d8525
2 changed files with 189 additions and 84 deletions

28
.codebeatsettings Normal file
View File

@ -0,0 +1,28 @@
{
"GOLANG": {
"TOO_MANY_IVARS": [
8,
10,
14,
20
],
"LOC": [
50,
60,
80,
100
],
"TOTAL_LOC": [
300,
400,
600,
1000
],
"TOO_MANY_FUNCTIONS": [
30,
40,
50,
60
]
}
}

View File

@ -17,11 +17,7 @@ type (
enterFn func(app *App, ns, resource, selection string)
decorateFn func(resource.TableData) resource.TableData
viewer struct {
gvr string
kind string
namespaced bool
verbs metav1.Verbs
viewerCapability struct {
viewFn viewFn
listFn listFn
enterFn enterFn
@ -29,6 +25,15 @@ type (
decorateFn decorateFn
}
viewer struct {
viewerCapability
gvr string
kind string
namespaced bool
verbs metav1.Verbs
}
viewers map[string]viewer
)
@ -71,8 +76,10 @@ func allCRDs(c k8s.Connection, vv viewers) {
vv[gvrs] = viewer{
gvr: gvrs,
kind: meta.Kind,
viewerCapability: viewerCapability{
viewFn: listFunc(resource.NewCustomList(c, meta.Namespaced, "", gvrs)),
colorerFn: ui.DefaultColorer,
},
}
}
}
@ -170,172 +177,242 @@ func resourceViews(c k8s.Connection, m viewers) {
func coreRes(vv viewers) {
vv["v1/nodes"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewNode,
listFn: resource.NewNodeList,
colorerFn: nsColorer,
},
}
vv["v1/namespaces"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewNamespace,
listFn: resource.NewNamespaceList,
colorerFn: nsColorer,
},
}
vv["v1/pods"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewPod,
listFn: resource.NewPodList,
colorerFn: podColorer,
},
}
vv["v1/serviceaccounts"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewServiceAccountList,
enterFn: showSAPolicy,
},
}
vv["v1/services"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewService,
listFn: resource.NewServiceList,
},
}
vv["v1/configmaps"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewConfigMapList,
},
}
vv["v1/persistentvolumes"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewPersistentVolumeList,
colorerFn: pvColorer,
},
}
vv["v1/persistentvolumeclaims"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewPersistentVolumeClaimList,
colorerFn: pvcColorer,
},
}
vv["v1/secrets"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewSecret,
listFn: resource.NewSecretList,
},
}
vv["v1/endpoints"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewEndpointsList,
},
}
vv["v1/events"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewEventList,
colorerFn: evColorer,
},
}
vv["v1/replicationcontrollers"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewScalableResource,
listFn: resource.NewReplicationControllerList,
colorerFn: rsColorer,
},
}
}
func miscRes(vv viewers) {
vv["storage.k8s.io/v1/storageclasses"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewStorageClassList,
},
}
vv["contexts"] = viewer{
gvr: "contexts",
kind: "Contexts",
viewerCapability: viewerCapability{
viewFn: NewContext,
listFn: resource.NewContextList,
colorerFn: ctxColorer,
},
}
vv["users"] = viewer{
gvr: "users",
viewerCapability: viewerCapability{
viewFn: NewSubject,
},
}
vv["groups"] = viewer{
gvr: "groups",
viewerCapability: viewerCapability{
viewFn: NewSubject,
},
}
vv["portforwards"] = viewer{
gvr: "portforwards",
viewerCapability: viewerCapability{
viewFn: NewPortForward,
},
}
vv["benchmarks"] = viewer{
gvr: "benchmarks",
viewerCapability: viewerCapability{
viewFn: NewBench,
},
}
vv["screendumps"] = viewer{
gvr: "screendumps",
viewerCapability: viewerCapability{
viewFn: NewScreenDump,
},
}
}
func appsRes(vv viewers) {
vv["apps/v1/deployments"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewDeploy,
listFn: resource.NewDeploymentList,
colorerFn: dpColorer,
},
}
vv["apps/v1/replicasets"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewReplicaSet,
listFn: resource.NewReplicaSetList,
colorerFn: rsColorer,
},
}
vv["apps/v1/statefulsets"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewStatefulSet,
listFn: resource.NewStatefulSetList,
colorerFn: stsColorer,
},
}
vv["apps/v1/daemonsets"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewDaemonSet,
listFn: resource.NewDaemonSetList,
colorerFn: dpColorer,
},
}
}
func authRes(vv viewers) {
vv["rbac.authorization.k8s.io/v1/clusterroles"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewClusterRoleList,
enterFn: showRBAC,
},
}
vv["rbac.authorization.k8s.io/v1/clusterrolebindings"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewClusterRoleBindingList,
enterFn: showClusterRole,
},
}
vv["rbac.authorization.k8s.io/v1/rolebindings"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewRoleBindingList,
enterFn: showRole,
},
}
vv["rbac.authorization.k8s.io/v1/roles"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewRoleList,
enterFn: showRBAC,
},
}
}
func extRes(vv viewers) {
vv["apiextensions.k8s.io/v1/customresourcedefinitions"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewCustomResourceDefinitionList,
enterFn: showCRD,
},
}
vv["apiextensions.k8s.io/v1beta1/customresourcedefinitions"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewCustomResourceDefinitionList,
enterFn: showCRD,
},
}
}
func netRes(vv viewers) {
vv["networking.k8s.io/v1/networkpolicies"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewNetworkPolicyList,
},
}
vv["extensions/v1beta1/ingresses"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewIngressList,
},
}
}
func batchRes(vv viewers) {
vv["batch/v1beta1/cronjobs"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewCronJob,
listFn: resource.NewCronJobList,
},
}
vv["batch/v1/jobs"] = viewer{
viewerCapability: viewerCapability{
viewFn: NewJob,
listFn: resource.NewJobList,
},
}
}
func policyRes(vv viewers) {
vv["policy/v1beta1/poddisruptionbudgets"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewPDBList,
colorerFn: pdbColorer,
},
}
}
func hpaRes(vv viewers) {
vv["autoscaling/v1/horizontalpodautoscalers"] = viewer{
viewerCapability: viewerCapability{
listFn: resource.NewHorizontalPodAutoscalerV1List,
},
}
}