Skip to content

Commit

Permalink
Add additional API Kinds
Browse files Browse the repository at this point in the history
  • Loading branch information
lblackstone committed Jan 16, 2019
1 parent eddd396 commit 381c38a
Showing 1 changed file with 85 additions and 7 deletions.
92 changes: 85 additions & 7 deletions pkg/clients/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,32 @@ import (
type Kind string

const (
APIService Kind = "APIService"
CertificateSigningRequest Kind = "CertificateSigningRequest"
ClusterRole Kind = "ClusterRole"
ClusterRoleBinding Kind = "ClusterRoleBinding"
ControllerRevision Kind = "ControllerRevision"
CustomResourceDefinition Kind = "CustomResourceDefinition"
ConfigMap Kind = "ConfigMap"
CronJob Kind = "CronJob"
DaemonSet Kind = "DaemonSet"
Deployment Kind = "Deployment"
Endpoints Kind = "Endpoints"
Event Kind = "Event"
HorizontalPodAutoscaler Kind = "HorizontalPodAutoscaler"
Ingress Kind = "Ingress"
Job Kind = "Job"
LimitRange Kind = "LimitRange"
MutatingWebhookConfiguration Kind = "MutatingWebhookConfiguration"
Namespace Kind = "Namespace"
NetworkPolicy Kind = "NetworkPolicy"
PersistentVolume Kind = "PersistentVolume"
PersistentVolumeClaim Kind = "PersistentVolumeClaim"
Pod Kind = "Pod"
PodDisruptionBudget Kind = "PodDisruptionBudget"
PodSecurityPolicy Kind = "PodSecurityPolicy"
PodTemplate Kind = "PodTemplate"
PriorityClass Kind = "PriorityClass"
ReplicaSet Kind = "ReplicaSet"
ReplicationController Kind = "ReplicationController"
ResourceQuota Kind = "ResourceQuota"
Expand All @@ -60,8 +71,9 @@ const (

func namespacedKind(k Kind) bool {
switch k {
case ClusterRole, ClusterRoleBinding, CustomResourceDefinition, MutatingWebhookConfiguration, Namespace,
PersistentVolume, StorageClass, ValidatingWebhookConfiguration:
case APIService, CertificateSigningRequest, ClusterRole, ClusterRoleBinding, CustomResourceDefinition,
MutatingWebhookConfiguration, Namespace, PersistentVolume, PodSecurityPolicy, PriorityClass,
StorageClass, ValidatingWebhookConfiguration:
return false
}

Expand All @@ -71,6 +83,18 @@ func namespacedKind(k Kind) bool {
func ResourceClient(kind Kind, namespace string, client *DynamicClientSet) (dynamic.ResourceInterface, error) {
var gvk schema.GroupVersionKind
switch kind {
case APIService:
gvk = schema.GroupVersionKind{
Group: "apiregistration.k8s.io",
Version: "v1",
Kind: string(APIService),
}
case CertificateSigningRequest:
gvk = schema.GroupVersionKind{
Group: "certificates.k8s.io",
Version: "v1beta1",
Kind: string(CertificateSigningRequest),
}
case ClusterRole:
gvk = schema.GroupVersionKind{
Group: "rbac.authorization.k8s.io",
Expand All @@ -83,23 +107,41 @@ func ResourceClient(kind Kind, namespace string, client *DynamicClientSet) (dyna
Version: "v1",
Kind: string(ClusterRoleBinding),
}
case ConfigMap:
gvk = schema.GroupVersionKind{
Group: "",
Version: "v1",
Kind: string(ConfigMap),
}
case ControllerRevision:
gvk = schema.GroupVersionKind{
Group: "apps",
Version: "v1",
Kind: string(ControllerRevision),
}
case CronJob:
gvk = schema.GroupVersionKind{
Group: "batch",
Version: "v1beta1",
Kind: string(CronJob),
}
case CustomResourceDefinition:
gvk = schema.GroupVersionKind{
Group: "apiextensions.k8s.io",
Version: "v1beta1",
Kind: string(CustomResourceDefinition),
}
case ConfigMap:
case Deployment:
gvk = schema.GroupVersionKind{
Group: "",
Group: "apps",
Version: "v1",
Kind: string(ConfigMap),
Kind: string(Deployment),
}
case Deployment:
case DaemonSet:
gvk = schema.GroupVersionKind{
Group: "apps",
Version: "v1",
Kind: string(Deployment),
Kind: string(DaemonSet),
}
case Endpoints:
gvk = schema.GroupVersionKind{
Expand All @@ -125,6 +167,12 @@ func ResourceClient(kind Kind, namespace string, client *DynamicClientSet) (dyna
Version: "v1beta1",
Kind: string(Ingress),
}
case Job:
gvk = schema.GroupVersionKind{
Group: "batch",
Version: "v1",
Kind: string(Job),
}
case LimitRange:
gvk = schema.GroupVersionKind{
Group: "",
Expand All @@ -143,6 +191,12 @@ func ResourceClient(kind Kind, namespace string, client *DynamicClientSet) (dyna
Version: "v1",
Kind: string(Namespace),
}
case NetworkPolicy:
gvk = schema.GroupVersionKind{
Group: "networking.k8s.io",
Version: "v1",
Kind: string(NetworkPolicy),
}
case PersistentVolume:
gvk = schema.GroupVersionKind{
Group: "",
Expand All @@ -161,6 +215,30 @@ func ResourceClient(kind Kind, namespace string, client *DynamicClientSet) (dyna
Version: "v1",
Kind: string(Pod),
}
case PodDisruptionBudget:
gvk = schema.GroupVersionKind{
Group: "policy",
Version: "v1beta1",
Kind: string(PodDisruptionBudget),
}
case PodSecurityPolicy:
gvk = schema.GroupVersionKind{
Group: "extensions",
Version: "v1beta1",
Kind: string(PodSecurityPolicy),
}
case PodTemplate:
gvk = schema.GroupVersionKind{
Group: "",
Version: "v1",
Kind: string(PodTemplate),
}
case PriorityClass:
gvk = schema.GroupVersionKind{
Group: "scheduling.k8s.io",
Version: "v1beta1",
Kind: string(PriorityClass),
}
case ReplicaSet:
gvk = schema.GroupVersionKind{
Group: "apps",
Expand Down

0 comments on commit 381c38a

Please sign in to comment.