github.com/pulumi/pulumi-kubernetes/sdk/v3@v3.30.2/go/kubernetes/yaml/yaml.go (about) 1 // Copyright 2016-2021, Pulumi Corporation. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // *** WARNING: this file was generated by pulumigen. *** 16 // *** Do not edit by hand unless you're certain you know what you are doing! *** 17 18 package yaml 19 20 import ( 21 "fmt" 22 "io" 23 "net/http" 24 "net/url" 25 "os" 26 "path/filepath" 27 28 "github.com/pkg/errors" 29 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes" 30 admissionregistrationv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/admissionregistration/v1" 31 admissionregistrationv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/admissionregistration/v1alpha1" 32 admissionregistrationv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/admissionregistration/v1beta1" 33 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apiextensions" 34 apiextensionsv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apiextensions/v1" 35 apiextensionsv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apiextensions/v1beta1" 36 apiregistrationv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apiregistration/v1" 37 apiregistrationv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apiregistration/v1beta1" 38 appsv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apps/v1" 39 appsv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apps/v1beta1" 40 appsv1beta2 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apps/v1beta2" 41 auditregistrationv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/auditregistration/v1alpha1" 42 autoscalingv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/autoscaling/v1" 43 autoscalingv2 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/autoscaling/v2" 44 autoscalingv2beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/autoscaling/v2beta1" 45 autoscalingv2beta2 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/autoscaling/v2beta2" 46 batchv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/batch/v1" 47 batchv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/batch/v1beta1" 48 batchv2alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/batch/v2alpha1" 49 certificatesv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/certificates/v1" 50 certificatesv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/certificates/v1alpha1" 51 certificatesv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/certificates/v1beta1" 52 coordinationv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/coordination/v1" 53 coordinationv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/coordination/v1beta1" 54 corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1" 55 discoveryv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/discovery/v1" 56 discoveryv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/discovery/v1beta1" 57 eventsv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/events/v1" 58 eventsv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/events/v1beta1" 59 extensionsv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/extensions/v1beta1" 60 flowcontrolv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/flowcontrol/v1alpha1" 61 flowcontrolv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/flowcontrol/v1beta1" 62 flowcontrolv1beta2 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/flowcontrol/v1beta2" 63 flowcontrolv1beta3 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/flowcontrol/v1beta3" 64 metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/meta/v1" 65 networkingv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/networking/v1" 66 networkingv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/networking/v1alpha1" 67 networkingv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/networking/v1beta1" 68 nodev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/node/v1" 69 nodev1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/node/v1alpha1" 70 nodev1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/node/v1beta1" 71 policyv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/policy/v1" 72 policyv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/policy/v1beta1" 73 rbacv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/rbac/v1" 74 rbacv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/rbac/v1alpha1" 75 rbacv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/rbac/v1beta1" 76 resourcev1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/resource/v1alpha1" 77 resourcev1alpha2 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/resource/v1alpha2" 78 schedulingv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/scheduling/v1" 79 schedulingv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/scheduling/v1alpha1" 80 schedulingv1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/scheduling/v1beta1" 81 settingsv1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/settings/v1alpha1" 82 storagev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/storage/v1" 83 storagev1alpha1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/storage/v1alpha1" 84 storagev1beta1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/storage/v1beta1" 85 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 86 ) 87 88 func parseDecodeYamlFiles(ctx *pulumi.Context, args *ConfigGroupArgs, glob bool, opts ...pulumi.ResourceOption, 89 ) (map[string]pulumi.Resource, error) { 90 91 // Start with the provided objects and YAML arrays, if any, and we'll append to them. 92 objs := args.Objs 93 yamls := args.YAML 94 95 // Start by gathering up any other YAML from files provided. 96 for _, file := range args.Files { 97 // Read the raw YAML file(s) specified in the input file parameter. It might be a URL or a file path. 98 var yaml []byte 99 u, err := url.Parse(file) 100 if err == nil && u.IsAbs() { 101 // If the string looks like a URL, in that it begins with a scheme, fetch it over the network. 102 resp, err := http.Get(file) 103 if err != nil { 104 return nil, errors.Wrapf(err, "fetching YAML over network") 105 } 106 defer resp.Body.Close() 107 yaml, err = io.ReadAll(resp.Body) 108 if err != nil { 109 return nil, errors.Wrapf(err, "reading YAML over network") 110 } 111 yamls = append(yamls, string(yaml)) 112 } else { 113 // Otherwise, assume this is a path to a file on disk. If globbing is enabled, we might have 114 // multiple files -- otherwise just read a singular file. 115 var files []string 116 if glob { 117 files, err = filepath.Glob(file) 118 if err != nil { 119 return nil, errors.Wrapf(err, "expanding glob") 120 } 121 } else { 122 files = []string{file} 123 } 124 for _, f := range files { 125 yaml, err = os.ReadFile(f) 126 if err != nil { 127 return nil, errors.Wrapf(err, "reading YAML file from disk") 128 } 129 yamls = append(yamls, string(yaml)) 130 } 131 } 132 } 133 134 // Find options which are also Invoke options, and prepare them to pass to Invoke functions 135 var invokeOpts []pulumi.InvokeOption 136 for _, opt := range opts { 137 if invokeOpt, ok := opt.(pulumi.InvokeOption); ok { 138 invokeOpts = append(invokeOpts, invokeOpt) 139 } 140 } 141 142 // Next parse all YAML documents into objects. 143 for _, yaml := range yamls { 144 // Parse the resulting YAML bytes and turn them into raw Kubernetes objects. 145 dec, err := yamlDecode(ctx, yaml, invokeOpts...) 146 if err != nil { 147 return nil, errors.Wrapf(err, "decoding YAML") 148 } 149 objs = append(objs, dec...) 150 } 151 152 transformations := args.Transformations 153 if args.SkipAwait { 154 transformations = AddSkipAwaitTransformation(transformations) 155 } 156 157 // Now process the resulting list of Kubernetes objects. 158 return ParseYamlObjects(ctx, objs, transformations, args.ResourcePrefix, opts...) 159 } 160 161 // AddSkipAwaitTransformation adds a transformation to set the "pulumi.com/skipAwait" annotation 162 func AddSkipAwaitTransformation(transformations []Transformation) []Transformation { 163 transformations = append(transformations, func(obj map[string]interface{}, opts ...pulumi.ResourceOption) { 164 metadata := obj["metadata"].(map[string]interface{}) 165 if annotations, ok := metadata["annotations"].(map[string]interface{}); ok { 166 annotations["pulumi.com/skipAwait"] = "true" 167 } else { 168 metadata["annotations"] = map[string]string{"pulumi.com/skipAwait": "true"} 169 } 170 }) 171 172 return transformations 173 } 174 175 // yamlDecode invokes the function to decode a single YAML file and decompose it into object structures. 176 func yamlDecode(ctx *pulumi.Context, text string, opts ...pulumi.InvokeOption) ([]map[string]interface{}, error) { 177 args := struct { 178 Text string `pulumi:"text"` 179 }{Text: text} 180 var ret struct { 181 Result []map[string]interface{} `pulumi:"result"` 182 } 183 184 if err := ctx.Invoke("kubernetes:yaml:decode", &args, &ret, opts...); err != nil { 185 return nil, err 186 } 187 return ret.Result, nil 188 } 189 190 func ParseYamlObjects(ctx *pulumi.Context, objs []map[string]interface{}, transformations []Transformation, 191 resourcePrefix string, opts ...pulumi.ResourceOption, 192 ) (map[string]pulumi.Resource, error) { 193 var intermediates []resourceTuple 194 for _, obj := range objs { 195 res, err := parseYamlObject(ctx, obj, transformations, resourcePrefix, opts...) 196 if err != nil { 197 return nil, err 198 } 199 for _, r := range res { 200 intermediates = append(intermediates, r) 201 } 202 } 203 204 resources := map[string]pulumi.Resource{} 205 for _, r := range intermediates { 206 resources[r.Name] = r.Resource 207 } 208 return resources, nil 209 } 210 211 type resourceTuple struct { 212 Name string 213 Resource pulumi.Resource 214 } 215 216 func parseYamlObject(ctx *pulumi.Context, obj map[string]interface{}, transformations []Transformation, 217 resourcePrefix string, opts ...pulumi.ResourceOption, 218 ) ([]resourceTuple, error) { 219 220 // Allow users to change API objects before any validation. 221 for _, t := range transformations { 222 t(obj, opts...) 223 } 224 225 // Ensure there is a kind and API version. 226 kind, hasKind := obj["kind"] 227 apiVersion, hasAPIVersion := obj["apiVersion"] 228 if !hasKind || !hasAPIVersion { 229 return nil, errors.Errorf("Kubernetes resources require a kind and apiVersion: %+v", obj) 230 } 231 fullKind := fmt.Sprintf("%s/%s", apiVersion, kind) 232 233 // Recursively traverse built-in Kubernetes list types into a single set of "naked" resource 234 // definitions that we can register with the Pulumi engine. 235 // 236 // Kubernetes does not instantiate list types like `v1.List`. When the API server receives 237 // a list, it will recursively traverse it and perform the necessary operations on the 238 // each "instantiable" resource it finds. For example, `kubectl apply` on a 239 // `v1.ConfigMapList` will cause the API server to traverse the list, and `apply` each 240 // `v1.ConfigMap` it finds. 241 // 242 // Since Kubernetes does not instantiate list types directly, Pulumi also traverses lists 243 // for resource definitions that can be managed by Kubernetes, and registers those with the 244 // engine instead. 245 switch fullKind { 246 case "v1/List", 247 "admissionregistration.k8s.io/v1/MutatingWebhookConfigurationList", 248 "admissionregistration.k8s.io/v1/ValidatingWebhookConfigurationList", 249 "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBindingList", 250 "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyList", 251 "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfigurationList", 252 "admissionregistration.k8s.io/v1beta1/ValidatingWebhookConfigurationList", 253 "apiextensions.k8s.io/v1/CustomResourceDefinitionList", 254 "apiextensions.k8s.io/v1beta1/CustomResourceDefinitionList", 255 "apiregistration.k8s.io/v1/APIServiceList", 256 "apiregistration.k8s.io/v1beta1/APIServiceList", 257 "apps/v1/ControllerRevisionList", 258 "apps/v1/DaemonSetList", 259 "apps/v1/DeploymentList", 260 "apps/v1/ReplicaSetList", 261 "apps/v1/StatefulSetList", 262 "apps/v1beta1/ControllerRevisionList", 263 "apps/v1beta1/DeploymentList", 264 "apps/v1beta1/StatefulSetList", 265 "apps/v1beta2/ControllerRevisionList", 266 "apps/v1beta2/DaemonSetList", 267 "apps/v1beta2/DeploymentList", 268 "apps/v1beta2/ReplicaSetList", 269 "apps/v1beta2/StatefulSetList", 270 "auditregistration.k8s.io/v1alpha1/AuditSinkList", 271 "autoscaling/v1/HorizontalPodAutoscalerList", 272 "autoscaling/v2/HorizontalPodAutoscalerList", 273 "autoscaling/v2beta1/HorizontalPodAutoscalerList", 274 "autoscaling/v2beta2/HorizontalPodAutoscalerList", 275 "batch/v1/CronJobList", 276 "batch/v1/JobList", 277 "batch/v1beta1/CronJobList", 278 "batch/v2alpha1/CronJobList", 279 "certificates.k8s.io/v1/CertificateSigningRequestList", 280 "certificates.k8s.io/v1alpha1/ClusterTrustBundleList", 281 "certificates.k8s.io/v1beta1/CertificateSigningRequestList", 282 "coordination.k8s.io/v1/LeaseList", 283 "coordination.k8s.io/v1beta1/LeaseList", 284 "v1/ConfigMapList", 285 "v1/EndpointsList", 286 "v1/EventList", 287 "v1/LimitRangeList", 288 "v1/NamespaceList", 289 "v1/NodeList", 290 "v1/PersistentVolumeClaimList", 291 "v1/PersistentVolumeList", 292 "v1/PodList", 293 "v1/PodTemplateList", 294 "v1/ReplicationControllerList", 295 "v1/ResourceQuotaList", 296 "v1/SecretList", 297 "v1/ServiceAccountList", 298 "v1/ServiceList", 299 "discovery.k8s.io/v1/EndpointSliceList", 300 "discovery.k8s.io/v1beta1/EndpointSliceList", 301 "events.k8s.io/v1/EventList", 302 "events.k8s.io/v1beta1/EventList", 303 "extensions/v1beta1/DaemonSetList", 304 "extensions/v1beta1/DeploymentList", 305 "extensions/v1beta1/IngressList", 306 "extensions/v1beta1/NetworkPolicyList", 307 "extensions/v1beta1/PodSecurityPolicyList", 308 "extensions/v1beta1/ReplicaSetList", 309 "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", 310 "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", 311 "flowcontrol.apiserver.k8s.io/v1beta1/FlowSchemaList", 312 "flowcontrol.apiserver.k8s.io/v1beta1/PriorityLevelConfigurationList", 313 "flowcontrol.apiserver.k8s.io/v1beta2/FlowSchemaList", 314 "flowcontrol.apiserver.k8s.io/v1beta2/PriorityLevelConfigurationList", 315 "flowcontrol.apiserver.k8s.io/v1beta3/FlowSchemaList", 316 "flowcontrol.apiserver.k8s.io/v1beta3/PriorityLevelConfigurationList", 317 "networking.k8s.io/v1/IngressClassList", 318 "networking.k8s.io/v1/IngressList", 319 "networking.k8s.io/v1/NetworkPolicyList", 320 "networking.k8s.io/v1alpha1/ClusterCIDRList", 321 "networking.k8s.io/v1alpha1/IPAddressList", 322 "networking.k8s.io/v1beta1/IngressClassList", 323 "networking.k8s.io/v1beta1/IngressList", 324 "node.k8s.io/v1/RuntimeClassList", 325 "node.k8s.io/v1alpha1/RuntimeClassList", 326 "node.k8s.io/v1beta1/RuntimeClassList", 327 "policy/v1/PodDisruptionBudgetList", 328 "policy/v1beta1/PodDisruptionBudgetList", 329 "policy/v1beta1/PodSecurityPolicyList", 330 "rbac.authorization.k8s.io/v1/ClusterRoleBindingList", 331 "rbac.authorization.k8s.io/v1/ClusterRoleList", 332 "rbac.authorization.k8s.io/v1/RoleBindingList", 333 "rbac.authorization.k8s.io/v1/RoleList", 334 "rbac.authorization.k8s.io/v1alpha1/ClusterRoleBindingList", 335 "rbac.authorization.k8s.io/v1alpha1/ClusterRoleList", 336 "rbac.authorization.k8s.io/v1alpha1/RoleBindingList", 337 "rbac.authorization.k8s.io/v1alpha1/RoleList", 338 "rbac.authorization.k8s.io/v1beta1/ClusterRoleBindingList", 339 "rbac.authorization.k8s.io/v1beta1/ClusterRoleList", 340 "rbac.authorization.k8s.io/v1beta1/RoleBindingList", 341 "rbac.authorization.k8s.io/v1beta1/RoleList", 342 "resource.k8s.io/v1alpha1/PodSchedulingList", 343 "resource.k8s.io/v1alpha1/ResourceClaimList", 344 "resource.k8s.io/v1alpha1/ResourceClaimTemplateList", 345 "resource.k8s.io/v1alpha1/ResourceClassList", 346 "resource.k8s.io/v1alpha2/PodSchedulingContextList", 347 "resource.k8s.io/v1alpha2/ResourceClaimList", 348 "resource.k8s.io/v1alpha2/ResourceClaimTemplateList", 349 "resource.k8s.io/v1alpha2/ResourceClassList", 350 "scheduling.k8s.io/v1/PriorityClassList", 351 "scheduling.k8s.io/v1alpha1/PriorityClassList", 352 "scheduling.k8s.io/v1beta1/PriorityClassList", 353 "settings.k8s.io/v1alpha1/PodPresetList", 354 "storage.k8s.io/v1/CSIDriverList", 355 "storage.k8s.io/v1/CSINodeList", 356 "storage.k8s.io/v1/CSIStorageCapacityList", 357 "storage.k8s.io/v1/StorageClassList", 358 "storage.k8s.io/v1/VolumeAttachmentList", 359 "storage.k8s.io/v1alpha1/VolumeAttachmentList", 360 "storage.k8s.io/v1beta1/CSIDriverList", 361 "storage.k8s.io/v1beta1/CSINodeList", 362 "storage.k8s.io/v1beta1/CSIStorageCapacityList", 363 "storage.k8s.io/v1beta1/StorageClassList", 364 "storage.k8s.io/v1beta1/VolumeAttachmentList": 365 var resources []resourceTuple 366 if rawItems, hasItems := obj["items"]; hasItems { 367 if items, ok := rawItems.([]interface{}); ok { 368 for _, item := range items { 369 if obj, ok := item.(map[string]interface{}); ok { 370 rs, err := parseYamlObject(ctx, obj, transformations, resourcePrefix, opts...) 371 if err != nil { 372 return nil, err 373 } 374 for _, r := range rs { 375 resources = append(resources, r) 376 } 377 } 378 } 379 } 380 } 381 return resources, nil 382 } 383 384 // If we got here, it's not a recursively traversed type, so process it directly. 385 // First, validate that it has the requisite metadata and name properties. 386 meta, hasMeta := obj["metadata"] 387 if !hasMeta { 388 return nil, errors.Errorf("YAML object does not have a .metadata field: %s %+v", fullKind, obj) 389 } 390 metaDict, hasMetaDict := meta.(map[string]interface{}) 391 if !hasMetaDict { 392 return nil, errors.Errorf("YAML object does not have a .metadata dictionary: %s %+v", fullKind, obj) 393 } 394 metaName, hasMetaName := metaDict["name"].(string) 395 if !hasMetaName || metaName == "" { 396 return nil, errors.Errorf("YAML object does not have a .metadata.name: %s %+v", fullKind, obj) 397 } 398 399 // Manufacture a name as appropriate, out of the meta name, namespace, and optional prefix. 400 if ns, hasNS := metaDict["namespace"]; hasNS { 401 metaName = fmt.Sprintf("%s/%s", ns, metaName) 402 } 403 if resourcePrefix != "" { 404 metaName = fmt.Sprintf("%s-%s", resourcePrefix, metaName) 405 } 406 407 key := fmt.Sprintf("%s::%s", fullKind, metaName) 408 409 if fullKind == "v1/Secret" { 410 // Always mark these fields as secret to avoid leaking sensitive values from raw YAML. 411 for _, key := range []string{"data", "stringData"} { 412 if _, ok := obj[key]; ok { 413 obj[key] = pulumi.ToSecret(obj[key]) 414 } 415 } 416 } 417 418 // Finally allocate a resource of the correct type. 419 switch fullKind { 420 case "admissionregistration.k8s.io/v1/MutatingWebhookConfiguration": 421 var res admissionregistrationv1.MutatingWebhookConfiguration 422 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1:MutatingWebhookConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 423 if err != nil { 424 return nil, err 425 } 426 return []resourceTuple{{Name: key, Resource: &res}}, nil 427 case "admissionregistration.k8s.io/v1/ValidatingWebhookConfiguration": 428 var res admissionregistrationv1.ValidatingWebhookConfiguration 429 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1:ValidatingWebhookConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 430 if err != nil { 431 return nil, err 432 } 433 return []resourceTuple{{Name: key, Resource: &res}}, nil 434 case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicy": 435 var res admissionregistrationv1alpha1.ValidatingAdmissionPolicy 436 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 437 if err != nil { 438 return nil, err 439 } 440 return []resourceTuple{{Name: key, Resource: &res}}, nil 441 case "admissionregistration.k8s.io/v1alpha1/ValidatingAdmissionPolicyBinding": 442 var res admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding 443 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:ValidatingAdmissionPolicyBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 444 if err != nil { 445 return nil, err 446 } 447 return []resourceTuple{{Name: key, Resource: &res}}, nil 448 case "admissionregistration.k8s.io/v1beta1/MutatingWebhookConfiguration": 449 var res admissionregistrationv1beta1.MutatingWebhookConfiguration 450 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingWebhookConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 451 if err != nil { 452 return nil, err 453 } 454 return []resourceTuple{{Name: key, Resource: &res}}, nil 455 case "admissionregistration.k8s.io/v1beta1/ValidatingWebhookConfiguration": 456 var res admissionregistrationv1beta1.ValidatingWebhookConfiguration 457 err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:ValidatingWebhookConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 458 if err != nil { 459 return nil, err 460 } 461 return []resourceTuple{{Name: key, Resource: &res}}, nil 462 case "apiextensions.k8s.io/v1/CustomResourceDefinition": 463 var res apiextensionsv1.CustomResourceDefinition 464 err := ctx.RegisterResource("kubernetes:apiextensions.k8s.io/v1:CustomResourceDefinition", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 465 if err != nil { 466 return nil, err 467 } 468 return []resourceTuple{{Name: key, Resource: &res}}, nil 469 case "apiextensions.k8s.io/v1beta1/CustomResourceDefinition": 470 var res apiextensionsv1beta1.CustomResourceDefinition 471 err := ctx.RegisterResource("kubernetes:apiextensions.k8s.io/v1beta1:CustomResourceDefinition", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 472 if err != nil { 473 return nil, err 474 } 475 return []resourceTuple{{Name: key, Resource: &res}}, nil 476 case "apiregistration.k8s.io/v1/APIService": 477 var res apiregistrationv1.APIService 478 err := ctx.RegisterResource("kubernetes:apiregistration.k8s.io/v1:APIService", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 479 if err != nil { 480 return nil, err 481 } 482 return []resourceTuple{{Name: key, Resource: &res}}, nil 483 case "apiregistration.k8s.io/v1beta1/APIService": 484 var res apiregistrationv1beta1.APIService 485 err := ctx.RegisterResource("kubernetes:apiregistration.k8s.io/v1beta1:APIService", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 486 if err != nil { 487 return nil, err 488 } 489 return []resourceTuple{{Name: key, Resource: &res}}, nil 490 case "apps/v1/ControllerRevision": 491 var res appsv1.ControllerRevision 492 err := ctx.RegisterResource("kubernetes:apps/v1:ControllerRevision", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 493 if err != nil { 494 return nil, err 495 } 496 return []resourceTuple{{Name: key, Resource: &res}}, nil 497 case "apps/v1/DaemonSet": 498 var res appsv1.DaemonSet 499 err := ctx.RegisterResource("kubernetes:apps/v1:DaemonSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 500 if err != nil { 501 return nil, err 502 } 503 return []resourceTuple{{Name: key, Resource: &res}}, nil 504 case "apps/v1/Deployment": 505 var res appsv1.Deployment 506 err := ctx.RegisterResource("kubernetes:apps/v1:Deployment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 507 if err != nil { 508 return nil, err 509 } 510 return []resourceTuple{{Name: key, Resource: &res}}, nil 511 case "apps/v1/ReplicaSet": 512 var res appsv1.ReplicaSet 513 err := ctx.RegisterResource("kubernetes:apps/v1:ReplicaSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 514 if err != nil { 515 return nil, err 516 } 517 return []resourceTuple{{Name: key, Resource: &res}}, nil 518 case "apps/v1/StatefulSet": 519 var res appsv1.StatefulSet 520 err := ctx.RegisterResource("kubernetes:apps/v1:StatefulSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 521 if err != nil { 522 return nil, err 523 } 524 return []resourceTuple{{Name: key, Resource: &res}}, nil 525 case "apps/v1beta1/ControllerRevision": 526 var res appsv1beta1.ControllerRevision 527 err := ctx.RegisterResource("kubernetes:apps/v1beta1:ControllerRevision", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 528 if err != nil { 529 return nil, err 530 } 531 return []resourceTuple{{Name: key, Resource: &res}}, nil 532 case "apps/v1beta1/Deployment": 533 var res appsv1beta1.Deployment 534 err := ctx.RegisterResource("kubernetes:apps/v1beta1:Deployment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 535 if err != nil { 536 return nil, err 537 } 538 return []resourceTuple{{Name: key, Resource: &res}}, nil 539 case "apps/v1beta1/StatefulSet": 540 var res appsv1beta1.StatefulSet 541 err := ctx.RegisterResource("kubernetes:apps/v1beta1:StatefulSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 542 if err != nil { 543 return nil, err 544 } 545 return []resourceTuple{{Name: key, Resource: &res}}, nil 546 case "apps/v1beta2/ControllerRevision": 547 var res appsv1beta2.ControllerRevision 548 err := ctx.RegisterResource("kubernetes:apps/v1beta2:ControllerRevision", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 549 if err != nil { 550 return nil, err 551 } 552 return []resourceTuple{{Name: key, Resource: &res}}, nil 553 case "apps/v1beta2/DaemonSet": 554 var res appsv1beta2.DaemonSet 555 err := ctx.RegisterResource("kubernetes:apps/v1beta2:DaemonSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 556 if err != nil { 557 return nil, err 558 } 559 return []resourceTuple{{Name: key, Resource: &res}}, nil 560 case "apps/v1beta2/Deployment": 561 var res appsv1beta2.Deployment 562 err := ctx.RegisterResource("kubernetes:apps/v1beta2:Deployment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 563 if err != nil { 564 return nil, err 565 } 566 return []resourceTuple{{Name: key, Resource: &res}}, nil 567 case "apps/v1beta2/ReplicaSet": 568 var res appsv1beta2.ReplicaSet 569 err := ctx.RegisterResource("kubernetes:apps/v1beta2:ReplicaSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 570 if err != nil { 571 return nil, err 572 } 573 return []resourceTuple{{Name: key, Resource: &res}}, nil 574 case "apps/v1beta2/StatefulSet": 575 var res appsv1beta2.StatefulSet 576 err := ctx.RegisterResource("kubernetes:apps/v1beta2:StatefulSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 577 if err != nil { 578 return nil, err 579 } 580 return []resourceTuple{{Name: key, Resource: &res}}, nil 581 case "auditregistration.k8s.io/v1alpha1/AuditSink": 582 var res auditregistrationv1alpha1.AuditSink 583 err := ctx.RegisterResource("kubernetes:auditregistration.k8s.io/v1alpha1:AuditSink", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 584 if err != nil { 585 return nil, err 586 } 587 return []resourceTuple{{Name: key, Resource: &res}}, nil 588 case "autoscaling/v1/HorizontalPodAutoscaler": 589 var res autoscalingv1.HorizontalPodAutoscaler 590 err := ctx.RegisterResource("kubernetes:autoscaling/v1:HorizontalPodAutoscaler", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 591 if err != nil { 592 return nil, err 593 } 594 return []resourceTuple{{Name: key, Resource: &res}}, nil 595 case "autoscaling/v2/HorizontalPodAutoscaler": 596 var res autoscalingv2.HorizontalPodAutoscaler 597 err := ctx.RegisterResource("kubernetes:autoscaling/v2:HorizontalPodAutoscaler", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 598 if err != nil { 599 return nil, err 600 } 601 return []resourceTuple{{Name: key, Resource: &res}}, nil 602 case "autoscaling/v2beta1/HorizontalPodAutoscaler": 603 var res autoscalingv2beta1.HorizontalPodAutoscaler 604 err := ctx.RegisterResource("kubernetes:autoscaling/v2beta1:HorizontalPodAutoscaler", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 605 if err != nil { 606 return nil, err 607 } 608 return []resourceTuple{{Name: key, Resource: &res}}, nil 609 case "autoscaling/v2beta2/HorizontalPodAutoscaler": 610 var res autoscalingv2beta2.HorizontalPodAutoscaler 611 err := ctx.RegisterResource("kubernetes:autoscaling/v2beta2:HorizontalPodAutoscaler", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 612 if err != nil { 613 return nil, err 614 } 615 return []resourceTuple{{Name: key, Resource: &res}}, nil 616 case "batch/v1/CronJob": 617 var res batchv1.CronJob 618 err := ctx.RegisterResource("kubernetes:batch/v1:CronJob", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 619 if err != nil { 620 return nil, err 621 } 622 return []resourceTuple{{Name: key, Resource: &res}}, nil 623 case "batch/v1/Job": 624 var res batchv1.Job 625 err := ctx.RegisterResource("kubernetes:batch/v1:Job", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 626 if err != nil { 627 return nil, err 628 } 629 return []resourceTuple{{Name: key, Resource: &res}}, nil 630 case "batch/v1beta1/CronJob": 631 var res batchv1beta1.CronJob 632 err := ctx.RegisterResource("kubernetes:batch/v1beta1:CronJob", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 633 if err != nil { 634 return nil, err 635 } 636 return []resourceTuple{{Name: key, Resource: &res}}, nil 637 case "batch/v2alpha1/CronJob": 638 var res batchv2alpha1.CronJob 639 err := ctx.RegisterResource("kubernetes:batch/v2alpha1:CronJob", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 640 if err != nil { 641 return nil, err 642 } 643 return []resourceTuple{{Name: key, Resource: &res}}, nil 644 case "certificates.k8s.io/v1/CertificateSigningRequest": 645 var res certificatesv1.CertificateSigningRequest 646 err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1:CertificateSigningRequest", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 647 if err != nil { 648 return nil, err 649 } 650 return []resourceTuple{{Name: key, Resource: &res}}, nil 651 case "certificates.k8s.io/v1alpha1/ClusterTrustBundle": 652 var res certificatesv1alpha1.ClusterTrustBundle 653 err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1alpha1:ClusterTrustBundle", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 654 if err != nil { 655 return nil, err 656 } 657 return []resourceTuple{{Name: key, Resource: &res}}, nil 658 case "certificates.k8s.io/v1beta1/CertificateSigningRequest": 659 var res certificatesv1beta1.CertificateSigningRequest 660 err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1beta1:CertificateSigningRequest", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 661 if err != nil { 662 return nil, err 663 } 664 return []resourceTuple{{Name: key, Resource: &res}}, nil 665 case "coordination.k8s.io/v1/Lease": 666 var res coordinationv1.Lease 667 err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1:Lease", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 668 if err != nil { 669 return nil, err 670 } 671 return []resourceTuple{{Name: key, Resource: &res}}, nil 672 case "coordination.k8s.io/v1beta1/Lease": 673 var res coordinationv1beta1.Lease 674 err := ctx.RegisterResource("kubernetes:coordination.k8s.io/v1beta1:Lease", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 675 if err != nil { 676 return nil, err 677 } 678 return []resourceTuple{{Name: key, Resource: &res}}, nil 679 case "v1/Binding": 680 var res corev1.Binding 681 err := ctx.RegisterResource("kubernetes:core/v1:Binding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 682 if err != nil { 683 return nil, err 684 } 685 return []resourceTuple{{Name: key, Resource: &res}}, nil 686 case "v1/ConfigMap": 687 var res corev1.ConfigMap 688 err := ctx.RegisterResource("kubernetes:core/v1:ConfigMap", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 689 if err != nil { 690 return nil, err 691 } 692 return []resourceTuple{{Name: key, Resource: &res}}, nil 693 case "v1/Endpoints": 694 var res corev1.Endpoints 695 err := ctx.RegisterResource("kubernetes:core/v1:Endpoints", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 696 if err != nil { 697 return nil, err 698 } 699 return []resourceTuple{{Name: key, Resource: &res}}, nil 700 case "v1/Event": 701 var res corev1.Event 702 err := ctx.RegisterResource("kubernetes:core/v1:Event", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 703 if err != nil { 704 return nil, err 705 } 706 return []resourceTuple{{Name: key, Resource: &res}}, nil 707 case "v1/LimitRange": 708 var res corev1.LimitRange 709 err := ctx.RegisterResource("kubernetes:core/v1:LimitRange", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 710 if err != nil { 711 return nil, err 712 } 713 return []resourceTuple{{Name: key, Resource: &res}}, nil 714 case "v1/Namespace": 715 var res corev1.Namespace 716 err := ctx.RegisterResource("kubernetes:core/v1:Namespace", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 717 if err != nil { 718 return nil, err 719 } 720 return []resourceTuple{{Name: key, Resource: &res}}, nil 721 case "v1/Node": 722 var res corev1.Node 723 err := ctx.RegisterResource("kubernetes:core/v1:Node", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 724 if err != nil { 725 return nil, err 726 } 727 return []resourceTuple{{Name: key, Resource: &res}}, nil 728 case "v1/PersistentVolume": 729 var res corev1.PersistentVolume 730 err := ctx.RegisterResource("kubernetes:core/v1:PersistentVolume", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 731 if err != nil { 732 return nil, err 733 } 734 return []resourceTuple{{Name: key, Resource: &res}}, nil 735 case "v1/PersistentVolumeClaim": 736 var res corev1.PersistentVolumeClaim 737 err := ctx.RegisterResource("kubernetes:core/v1:PersistentVolumeClaim", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 738 if err != nil { 739 return nil, err 740 } 741 return []resourceTuple{{Name: key, Resource: &res}}, nil 742 case "v1/Pod": 743 var res corev1.Pod 744 err := ctx.RegisterResource("kubernetes:core/v1:Pod", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 745 if err != nil { 746 return nil, err 747 } 748 return []resourceTuple{{Name: key, Resource: &res}}, nil 749 case "v1/PodTemplate": 750 var res corev1.PodTemplate 751 err := ctx.RegisterResource("kubernetes:core/v1:PodTemplate", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 752 if err != nil { 753 return nil, err 754 } 755 return []resourceTuple{{Name: key, Resource: &res}}, nil 756 case "v1/ReplicationController": 757 var res corev1.ReplicationController 758 err := ctx.RegisterResource("kubernetes:core/v1:ReplicationController", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 759 if err != nil { 760 return nil, err 761 } 762 return []resourceTuple{{Name: key, Resource: &res}}, nil 763 case "v1/ResourceQuota": 764 var res corev1.ResourceQuota 765 err := ctx.RegisterResource("kubernetes:core/v1:ResourceQuota", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 766 if err != nil { 767 return nil, err 768 } 769 return []resourceTuple{{Name: key, Resource: &res}}, nil 770 case "v1/Secret": 771 var res corev1.Secret 772 err := ctx.RegisterResource("kubernetes:core/v1:Secret", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 773 if err != nil { 774 return nil, err 775 } 776 return []resourceTuple{{Name: key, Resource: &res}}, nil 777 case "v1/Service": 778 var res corev1.Service 779 err := ctx.RegisterResource("kubernetes:core/v1:Service", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 780 if err != nil { 781 return nil, err 782 } 783 return []resourceTuple{{Name: key, Resource: &res}}, nil 784 case "v1/ServiceAccount": 785 var res corev1.ServiceAccount 786 err := ctx.RegisterResource("kubernetes:core/v1:ServiceAccount", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 787 if err != nil { 788 return nil, err 789 } 790 return []resourceTuple{{Name: key, Resource: &res}}, nil 791 case "discovery.k8s.io/v1/EndpointSlice": 792 var res discoveryv1.EndpointSlice 793 err := ctx.RegisterResource("kubernetes:discovery.k8s.io/v1:EndpointSlice", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 794 if err != nil { 795 return nil, err 796 } 797 return []resourceTuple{{Name: key, Resource: &res}}, nil 798 case "discovery.k8s.io/v1beta1/EndpointSlice": 799 var res discoveryv1beta1.EndpointSlice 800 err := ctx.RegisterResource("kubernetes:discovery.k8s.io/v1beta1:EndpointSlice", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 801 if err != nil { 802 return nil, err 803 } 804 return []resourceTuple{{Name: key, Resource: &res}}, nil 805 case "events.k8s.io/v1/Event": 806 var res eventsv1.Event 807 err := ctx.RegisterResource("kubernetes:events.k8s.io/v1:Event", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 808 if err != nil { 809 return nil, err 810 } 811 return []resourceTuple{{Name: key, Resource: &res}}, nil 812 case "events.k8s.io/v1beta1/Event": 813 var res eventsv1beta1.Event 814 err := ctx.RegisterResource("kubernetes:events.k8s.io/v1beta1:Event", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 815 if err != nil { 816 return nil, err 817 } 818 return []resourceTuple{{Name: key, Resource: &res}}, nil 819 case "extensions/v1beta1/DaemonSet": 820 var res extensionsv1beta1.DaemonSet 821 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:DaemonSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 822 if err != nil { 823 return nil, err 824 } 825 return []resourceTuple{{Name: key, Resource: &res}}, nil 826 case "extensions/v1beta1/Deployment": 827 var res extensionsv1beta1.Deployment 828 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:Deployment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 829 if err != nil { 830 return nil, err 831 } 832 return []resourceTuple{{Name: key, Resource: &res}}, nil 833 case "extensions/v1beta1/Ingress": 834 var res extensionsv1beta1.Ingress 835 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:Ingress", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 836 if err != nil { 837 return nil, err 838 } 839 return []resourceTuple{{Name: key, Resource: &res}}, nil 840 case "extensions/v1beta1/NetworkPolicy": 841 var res extensionsv1beta1.NetworkPolicy 842 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:NetworkPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 843 if err != nil { 844 return nil, err 845 } 846 return []resourceTuple{{Name: key, Resource: &res}}, nil 847 case "extensions/v1beta1/PodSecurityPolicy": 848 var res extensionsv1beta1.PodSecurityPolicy 849 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:PodSecurityPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 850 if err != nil { 851 return nil, err 852 } 853 return []resourceTuple{{Name: key, Resource: &res}}, nil 854 case "extensions/v1beta1/ReplicaSet": 855 var res extensionsv1beta1.ReplicaSet 856 err := ctx.RegisterResource("kubernetes:extensions/v1beta1:ReplicaSet", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 857 if err != nil { 858 return nil, err 859 } 860 return []resourceTuple{{Name: key, Resource: &res}}, nil 861 case "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema": 862 var res flowcontrolv1alpha1.FlowSchema 863 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchema", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 864 if err != nil { 865 return nil, err 866 } 867 return []resourceTuple{{Name: key, Resource: &res}}, nil 868 case "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration": 869 var res flowcontrolv1alpha1.PriorityLevelConfiguration 870 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 871 if err != nil { 872 return nil, err 873 } 874 return []resourceTuple{{Name: key, Resource: &res}}, nil 875 case "flowcontrol.apiserver.k8s.io/v1beta1/FlowSchema": 876 var res flowcontrolv1beta1.FlowSchema 877 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta1:FlowSchema", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 878 if err != nil { 879 return nil, err 880 } 881 return []resourceTuple{{Name: key, Resource: &res}}, nil 882 case "flowcontrol.apiserver.k8s.io/v1beta1/PriorityLevelConfiguration": 883 var res flowcontrolv1beta1.PriorityLevelConfiguration 884 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta1:PriorityLevelConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 885 if err != nil { 886 return nil, err 887 } 888 return []resourceTuple{{Name: key, Resource: &res}}, nil 889 case "flowcontrol.apiserver.k8s.io/v1beta2/FlowSchema": 890 var res flowcontrolv1beta2.FlowSchema 891 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta2:FlowSchema", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 892 if err != nil { 893 return nil, err 894 } 895 return []resourceTuple{{Name: key, Resource: &res}}, nil 896 case "flowcontrol.apiserver.k8s.io/v1beta2/PriorityLevelConfiguration": 897 var res flowcontrolv1beta2.PriorityLevelConfiguration 898 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta2:PriorityLevelConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 899 if err != nil { 900 return nil, err 901 } 902 return []resourceTuple{{Name: key, Resource: &res}}, nil 903 case "flowcontrol.apiserver.k8s.io/v1beta3/FlowSchema": 904 var res flowcontrolv1beta3.FlowSchema 905 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta3:FlowSchema", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 906 if err != nil { 907 return nil, err 908 } 909 return []resourceTuple{{Name: key, Resource: &res}}, nil 910 case "flowcontrol.apiserver.k8s.io/v1beta3/PriorityLevelConfiguration": 911 var res flowcontrolv1beta3.PriorityLevelConfiguration 912 err := ctx.RegisterResource("kubernetes:flowcontrol.apiserver.k8s.io/v1beta3:PriorityLevelConfiguration", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 913 if err != nil { 914 return nil, err 915 } 916 return []resourceTuple{{Name: key, Resource: &res}}, nil 917 case "meta/v1/Status": 918 var res metav1.Status 919 err := ctx.RegisterResource("kubernetes:meta/v1:Status", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 920 if err != nil { 921 return nil, err 922 } 923 return []resourceTuple{{Name: key, Resource: &res}}, nil 924 case "networking.k8s.io/v1/Ingress": 925 var res networkingv1.Ingress 926 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1:Ingress", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 927 if err != nil { 928 return nil, err 929 } 930 return []resourceTuple{{Name: key, Resource: &res}}, nil 931 case "networking.k8s.io/v1/IngressClass": 932 var res networkingv1.IngressClass 933 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1:IngressClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 934 if err != nil { 935 return nil, err 936 } 937 return []resourceTuple{{Name: key, Resource: &res}}, nil 938 case "networking.k8s.io/v1/NetworkPolicy": 939 var res networkingv1.NetworkPolicy 940 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1:NetworkPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 941 if err != nil { 942 return nil, err 943 } 944 return []resourceTuple{{Name: key, Resource: &res}}, nil 945 case "networking.k8s.io/v1alpha1/ClusterCIDR": 946 var res networkingv1alpha1.ClusterCIDR 947 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1alpha1:ClusterCIDR", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 948 if err != nil { 949 return nil, err 950 } 951 return []resourceTuple{{Name: key, Resource: &res}}, nil 952 case "networking.k8s.io/v1alpha1/IPAddress": 953 var res networkingv1alpha1.IPAddress 954 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1alpha1:IPAddress", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 955 if err != nil { 956 return nil, err 957 } 958 return []resourceTuple{{Name: key, Resource: &res}}, nil 959 case "networking.k8s.io/v1beta1/Ingress": 960 var res networkingv1beta1.Ingress 961 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1beta1:Ingress", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 962 if err != nil { 963 return nil, err 964 } 965 return []resourceTuple{{Name: key, Resource: &res}}, nil 966 case "networking.k8s.io/v1beta1/IngressClass": 967 var res networkingv1beta1.IngressClass 968 err := ctx.RegisterResource("kubernetes:networking.k8s.io/v1beta1:IngressClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 969 if err != nil { 970 return nil, err 971 } 972 return []resourceTuple{{Name: key, Resource: &res}}, nil 973 case "node.k8s.io/v1/RuntimeClass": 974 var res nodev1.RuntimeClass 975 err := ctx.RegisterResource("kubernetes:node.k8s.io/v1:RuntimeClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 976 if err != nil { 977 return nil, err 978 } 979 return []resourceTuple{{Name: key, Resource: &res}}, nil 980 case "node.k8s.io/v1alpha1/RuntimeClass": 981 var res nodev1alpha1.RuntimeClass 982 err := ctx.RegisterResource("kubernetes:node.k8s.io/v1alpha1:RuntimeClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 983 if err != nil { 984 return nil, err 985 } 986 return []resourceTuple{{Name: key, Resource: &res}}, nil 987 case "node.k8s.io/v1beta1/RuntimeClass": 988 var res nodev1beta1.RuntimeClass 989 err := ctx.RegisterResource("kubernetes:node.k8s.io/v1beta1:RuntimeClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 990 if err != nil { 991 return nil, err 992 } 993 return []resourceTuple{{Name: key, Resource: &res}}, nil 994 case "policy/v1/PodDisruptionBudget": 995 var res policyv1.PodDisruptionBudget 996 err := ctx.RegisterResource("kubernetes:policy/v1:PodDisruptionBudget", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 997 if err != nil { 998 return nil, err 999 } 1000 return []resourceTuple{{Name: key, Resource: &res}}, nil 1001 case "policy/v1beta1/PodDisruptionBudget": 1002 var res policyv1beta1.PodDisruptionBudget 1003 err := ctx.RegisterResource("kubernetes:policy/v1beta1:PodDisruptionBudget", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1004 if err != nil { 1005 return nil, err 1006 } 1007 return []resourceTuple{{Name: key, Resource: &res}}, nil 1008 case "policy/v1beta1/PodSecurityPolicy": 1009 var res policyv1beta1.PodSecurityPolicy 1010 err := ctx.RegisterResource("kubernetes:policy/v1beta1:PodSecurityPolicy", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1011 if err != nil { 1012 return nil, err 1013 } 1014 return []resourceTuple{{Name: key, Resource: &res}}, nil 1015 case "rbac.authorization.k8s.io/v1/ClusterRole": 1016 var res rbacv1.ClusterRole 1017 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1:ClusterRole", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1018 if err != nil { 1019 return nil, err 1020 } 1021 return []resourceTuple{{Name: key, Resource: &res}}, nil 1022 case "rbac.authorization.k8s.io/v1/ClusterRoleBinding": 1023 var res rbacv1.ClusterRoleBinding 1024 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1:ClusterRoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1025 if err != nil { 1026 return nil, err 1027 } 1028 return []resourceTuple{{Name: key, Resource: &res}}, nil 1029 case "rbac.authorization.k8s.io/v1/Role": 1030 var res rbacv1.Role 1031 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1:Role", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1032 if err != nil { 1033 return nil, err 1034 } 1035 return []resourceTuple{{Name: key, Resource: &res}}, nil 1036 case "rbac.authorization.k8s.io/v1/RoleBinding": 1037 var res rbacv1.RoleBinding 1038 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1:RoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1039 if err != nil { 1040 return nil, err 1041 } 1042 return []resourceTuple{{Name: key, Resource: &res}}, nil 1043 case "rbac.authorization.k8s.io/v1alpha1/ClusterRole": 1044 var res rbacv1alpha1.ClusterRole 1045 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1alpha1:ClusterRole", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1046 if err != nil { 1047 return nil, err 1048 } 1049 return []resourceTuple{{Name: key, Resource: &res}}, nil 1050 case "rbac.authorization.k8s.io/v1alpha1/ClusterRoleBinding": 1051 var res rbacv1alpha1.ClusterRoleBinding 1052 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1alpha1:ClusterRoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1053 if err != nil { 1054 return nil, err 1055 } 1056 return []resourceTuple{{Name: key, Resource: &res}}, nil 1057 case "rbac.authorization.k8s.io/v1alpha1/Role": 1058 var res rbacv1alpha1.Role 1059 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1alpha1:Role", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1060 if err != nil { 1061 return nil, err 1062 } 1063 return []resourceTuple{{Name: key, Resource: &res}}, nil 1064 case "rbac.authorization.k8s.io/v1alpha1/RoleBinding": 1065 var res rbacv1alpha1.RoleBinding 1066 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1alpha1:RoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1067 if err != nil { 1068 return nil, err 1069 } 1070 return []resourceTuple{{Name: key, Resource: &res}}, nil 1071 case "rbac.authorization.k8s.io/v1beta1/ClusterRole": 1072 var res rbacv1beta1.ClusterRole 1073 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1beta1:ClusterRole", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1074 if err != nil { 1075 return nil, err 1076 } 1077 return []resourceTuple{{Name: key, Resource: &res}}, nil 1078 case "rbac.authorization.k8s.io/v1beta1/ClusterRoleBinding": 1079 var res rbacv1beta1.ClusterRoleBinding 1080 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1beta1:ClusterRoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1081 if err != nil { 1082 return nil, err 1083 } 1084 return []resourceTuple{{Name: key, Resource: &res}}, nil 1085 case "rbac.authorization.k8s.io/v1beta1/Role": 1086 var res rbacv1beta1.Role 1087 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1beta1:Role", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1088 if err != nil { 1089 return nil, err 1090 } 1091 return []resourceTuple{{Name: key, Resource: &res}}, nil 1092 case "rbac.authorization.k8s.io/v1beta1/RoleBinding": 1093 var res rbacv1beta1.RoleBinding 1094 err := ctx.RegisterResource("kubernetes:rbac.authorization.k8s.io/v1beta1:RoleBinding", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1095 if err != nil { 1096 return nil, err 1097 } 1098 return []resourceTuple{{Name: key, Resource: &res}}, nil 1099 case "resource.k8s.io/v1alpha1/PodScheduling": 1100 var res resourcev1alpha1.PodScheduling 1101 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha1:PodScheduling", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1102 if err != nil { 1103 return nil, err 1104 } 1105 return []resourceTuple{{Name: key, Resource: &res}}, nil 1106 case "resource.k8s.io/v1alpha1/ResourceClaim": 1107 var res resourcev1alpha1.ResourceClaim 1108 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha1:ResourceClaim", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1109 if err != nil { 1110 return nil, err 1111 } 1112 return []resourceTuple{{Name: key, Resource: &res}}, nil 1113 case "resource.k8s.io/v1alpha1/ResourceClaimTemplate": 1114 var res resourcev1alpha1.ResourceClaimTemplate 1115 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha1:ResourceClaimTemplate", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1116 if err != nil { 1117 return nil, err 1118 } 1119 return []resourceTuple{{Name: key, Resource: &res}}, nil 1120 case "resource.k8s.io/v1alpha1/ResourceClass": 1121 var res resourcev1alpha1.ResourceClass 1122 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha1:ResourceClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1123 if err != nil { 1124 return nil, err 1125 } 1126 return []resourceTuple{{Name: key, Resource: &res}}, nil 1127 case "resource.k8s.io/v1alpha2/PodSchedulingContext": 1128 var res resourcev1alpha2.PodSchedulingContext 1129 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha2:PodSchedulingContext", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1130 if err != nil { 1131 return nil, err 1132 } 1133 return []resourceTuple{{Name: key, Resource: &res}}, nil 1134 case "resource.k8s.io/v1alpha2/ResourceClaim": 1135 var res resourcev1alpha2.ResourceClaim 1136 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha2:ResourceClaim", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1137 if err != nil { 1138 return nil, err 1139 } 1140 return []resourceTuple{{Name: key, Resource: &res}}, nil 1141 case "resource.k8s.io/v1alpha2/ResourceClaimTemplate": 1142 var res resourcev1alpha2.ResourceClaimTemplate 1143 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha2:ResourceClaimTemplate", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1144 if err != nil { 1145 return nil, err 1146 } 1147 return []resourceTuple{{Name: key, Resource: &res}}, nil 1148 case "resource.k8s.io/v1alpha2/ResourceClass": 1149 var res resourcev1alpha2.ResourceClass 1150 err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1alpha2:ResourceClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1151 if err != nil { 1152 return nil, err 1153 } 1154 return []resourceTuple{{Name: key, Resource: &res}}, nil 1155 case "scheduling.k8s.io/v1/PriorityClass": 1156 var res schedulingv1.PriorityClass 1157 err := ctx.RegisterResource("kubernetes:scheduling.k8s.io/v1:PriorityClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1158 if err != nil { 1159 return nil, err 1160 } 1161 return []resourceTuple{{Name: key, Resource: &res}}, nil 1162 case "scheduling.k8s.io/v1alpha1/PriorityClass": 1163 var res schedulingv1alpha1.PriorityClass 1164 err := ctx.RegisterResource("kubernetes:scheduling.k8s.io/v1alpha1:PriorityClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1165 if err != nil { 1166 return nil, err 1167 } 1168 return []resourceTuple{{Name: key, Resource: &res}}, nil 1169 case "scheduling.k8s.io/v1beta1/PriorityClass": 1170 var res schedulingv1beta1.PriorityClass 1171 err := ctx.RegisterResource("kubernetes:scheduling.k8s.io/v1beta1:PriorityClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1172 if err != nil { 1173 return nil, err 1174 } 1175 return []resourceTuple{{Name: key, Resource: &res}}, nil 1176 case "settings.k8s.io/v1alpha1/PodPreset": 1177 var res settingsv1alpha1.PodPreset 1178 err := ctx.RegisterResource("kubernetes:settings.k8s.io/v1alpha1:PodPreset", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1179 if err != nil { 1180 return nil, err 1181 } 1182 return []resourceTuple{{Name: key, Resource: &res}}, nil 1183 case "storage.k8s.io/v1/CSIDriver": 1184 var res storagev1.CSIDriver 1185 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1:CSIDriver", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1186 if err != nil { 1187 return nil, err 1188 } 1189 return []resourceTuple{{Name: key, Resource: &res}}, nil 1190 case "storage.k8s.io/v1/CSINode": 1191 var res storagev1.CSINode 1192 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1:CSINode", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1193 if err != nil { 1194 return nil, err 1195 } 1196 return []resourceTuple{{Name: key, Resource: &res}}, nil 1197 case "storage.k8s.io/v1/CSIStorageCapacity": 1198 var res storagev1.CSIStorageCapacity 1199 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1:CSIStorageCapacity", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1200 if err != nil { 1201 return nil, err 1202 } 1203 return []resourceTuple{{Name: key, Resource: &res}}, nil 1204 case "storage.k8s.io/v1/StorageClass": 1205 var res storagev1.StorageClass 1206 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1:StorageClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1207 if err != nil { 1208 return nil, err 1209 } 1210 return []resourceTuple{{Name: key, Resource: &res}}, nil 1211 case "storage.k8s.io/v1/VolumeAttachment": 1212 var res storagev1.VolumeAttachment 1213 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1:VolumeAttachment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1214 if err != nil { 1215 return nil, err 1216 } 1217 return []resourceTuple{{Name: key, Resource: &res}}, nil 1218 case "storage.k8s.io/v1alpha1/VolumeAttachment": 1219 var res storagev1alpha1.VolumeAttachment 1220 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1alpha1:VolumeAttachment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1221 if err != nil { 1222 return nil, err 1223 } 1224 return []resourceTuple{{Name: key, Resource: &res}}, nil 1225 case "storage.k8s.io/v1beta1/CSIDriver": 1226 var res storagev1beta1.CSIDriver 1227 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1beta1:CSIDriver", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1228 if err != nil { 1229 return nil, err 1230 } 1231 return []resourceTuple{{Name: key, Resource: &res}}, nil 1232 case "storage.k8s.io/v1beta1/CSINode": 1233 var res storagev1beta1.CSINode 1234 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1beta1:CSINode", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1235 if err != nil { 1236 return nil, err 1237 } 1238 return []resourceTuple{{Name: key, Resource: &res}}, nil 1239 case "storage.k8s.io/v1beta1/CSIStorageCapacity": 1240 var res storagev1beta1.CSIStorageCapacity 1241 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1beta1:CSIStorageCapacity", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1242 if err != nil { 1243 return nil, err 1244 } 1245 return []resourceTuple{{Name: key, Resource: &res}}, nil 1246 case "storage.k8s.io/v1beta1/StorageClass": 1247 var res storagev1beta1.StorageClass 1248 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1beta1:StorageClass", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1249 if err != nil { 1250 return nil, err 1251 } 1252 return []resourceTuple{{Name: key, Resource: &res}}, nil 1253 case "storage.k8s.io/v1beta1/VolumeAttachment": 1254 var res storagev1beta1.VolumeAttachment 1255 err := ctx.RegisterResource("kubernetes:storage.k8s.io/v1beta1:VolumeAttachment", metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1256 if err != nil { 1257 return nil, err 1258 } 1259 return []resourceTuple{{Name: key, Resource: &res}}, nil 1260 default: 1261 var res apiextensions.CustomResource 1262 err := ctx.RegisterResource(fmt.Sprintf("kubernetes:%s:%s", apiVersion, kind), metaName, kubernetes.UntypedArgs(obj), &res, opts...) 1263 if err != nil { 1264 return nil, err 1265 } 1266 return []resourceTuple{{Name: key, Resource: &res}}, nil 1267 } 1268 }