master a867f19bb96a cached
3691 files
43.5 MB
11.6M tokens
154712 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (46,526K chars total). Download the full file to get everything.
Repository: GoogleCloudPlatform/container-engine-accelerators
Branch: master
Commit: a867f19bb96a
Files: 3691
Total size: 43.5 MB

Directory structure:
gitextract_9dxzhgnv/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       └── go_tests.yml
├── .prow.yaml
├── .travis.yml
├── CONTRIBUTING.md
├── Dockerfile
├── Gopkg.toml
├── LICENSE
├── Makefile
├── README.md
├── VERSION
├── asapd-lite-installer/
│   └── asapd-lite-installer-a4x-max-bm-cos.yaml
├── build/
│   ├── boilerplate/
│   │   ├── boilerplate.go.txt
│   │   ├── boilerplate.py
│   │   ├── boilerplate.py.txt
│   │   └── boilerplate.sh.txt
│   ├── check_boilerplate.sh
│   ├── check_errorf.sh
│   └── check_gofmt.sh
├── cmd/
│   └── nvidia_gpu/
│       ├── README.md
│       ├── device-plugin.yaml
│       ├── nvidia_gpu.go
│       └── rbac.yaml
├── daemonset.yaml
├── demo/
│   ├── device-plugin-health-monitoring-enabled.yaml
│   ├── gpu-error/
│   │   └── illegal-memory-access/
│   │       ├── Dockerfile
│   │       ├── README
│   │       └── vectorAdd.cu
│   ├── gpu-training/
│   │   └── generate_job.sh
│   ├── image-prepull-ds.yaml
│   ├── minikube/
│   │   ├── pv.yaml
│   │   ├── pvc.yaml
│   │   └── resnet-gpu.yaml
│   ├── serving/
│   │   ├── load_generator.yaml
│   │   └── tensorflow-serving.yaml
│   └── tpu-training/
│       ├── inception-v3-tpu.yaml
│       └── resnet-tpu.yaml
├── example/
│   ├── cuda-mps/
│   │   ├── Dockerfile
│   │   ├── Makefile
│   │   └── cuda_mem_and_sm_count.c
│   └── tensorflow-notebook/
│       ├── README.md
│       └── tensorflow-notebook.yaml
├── fast-socket-installer/
│   ├── README.md
│   ├── fast-socket-installer.yaml
│   └── image/
│       ├── Dockerfile
│       └── README.md
├── gke-topology-scheduler/
│   ├── README.md
│   ├── label-nodes-daemon.py
│   ├── label-nodes-daemon.yaml
│   ├── schedule-daemon.py
│   ├── schedule-daemon.yaml
│   └── service-account.yaml
├── go.mod
├── go.sum
├── gpudirect-rdma/
│   ├── nccl-rdma-installer-a4x.yaml
│   ├── nccl-rdma-installer-autopilot.yaml
│   ├── nccl-rdma-installer.yaml
│   ├── nccl-test-a4-autopilot.yaml
│   ├── nccl-test-a4.yaml
│   ├── nccl-test-a4x-max-jobset.yaml
│   ├── nccl-test-a4x-max.yaml
│   ├── nccl-test-autopilot.yaml
│   ├── nccl-test-imex-a4x-max.yaml
│   ├── nccl-test-imex-a4x.yaml
│   ├── nccl-test-managed-rdma.yaml
│   └── nccl-test.yaml
├── gpudirect-tcpx/
│   ├── nccl-config.yaml
│   ├── nccl-tcpx-installer-autopilot.yaml
│   ├── nccl-tcpx-installer.yaml
│   ├── nccl-test-latest-autopilot.yaml
│   ├── nccl-test-latest.yaml
│   ├── nccl-test-unprivileged-without-hostnetwork.yaml
│   ├── nccl-test-without-hostnetwork.yaml
│   ├── nccl-test.yaml
│   ├── optmem-max-ds.yaml
│   └── tcpx-metrics-server.yaml
├── gpudirect-tcpxo/
│   ├── README.md
│   ├── best-practice.md
│   ├── cos-enable-kdump.yaml
│   ├── fix-hostname.yaml
│   ├── nccl-tcpxo-installer-autopilot.yaml
│   ├── nccl-tcpxo-installer.yaml
│   ├── nccl-test-latest-autopilot.yaml
│   ├── nccl-test-latest.yaml
│   ├── nccl-test-unprivileged-without-hostnetwork.yaml
│   ├── nccl-test.yaml
│   └── topology-scheduler/
│       ├── README.md
│       ├── label-nodes-daemon.py
│       ├── label-nodes-daemon.yaml
│       ├── schedule-daemon.py
│       ├── schedule-daemon.yaml
│       └── service-account.yaml
├── nri_device_injector/
│   ├── Dockerfile
│   ├── README.md
│   ├── nri-device-injector-autopilot.yaml
│   ├── nri-device-injector.yaml
│   ├── nri_device_injector.go
│   └── nri_device_injector_test.go
├── nvidia-driver-installer/
│   ├── cos/
│   │   ├── daemonset-confidential-latest.yaml
│   │   ├── daemonset-confidential.yaml
│   │   ├── daemonset-nvidia-mig.yaml
│   │   ├── daemonset-preloaded-latest-a4x.yaml
│   │   ├── daemonset-preloaded-latest.yaml
│   │   ├── daemonset-preloaded.yaml
│   │   ├── daemonset-vgpu-latest.yaml
│   │   └── kustomization.yaml
│   ├── minikube/
│   │   ├── Dockerfile
│   │   ├── Makefile
│   │   ├── daemonset.yaml
│   │   └── entrypoint.sh
│   └── ubuntu/
│       ├── Dockerfile
│       ├── Makefile
│       ├── README.md
│       ├── daemonset-preloaded-R525.yaml
│       ├── daemonset-preloaded-R535.yaml
│       ├── daemonset-preloaded-R550.yaml
│       ├── daemonset-preloaded-R570.yaml
│       ├── daemonset-preloaded.yaml
│       ├── daemonset.yaml
│       └── entrypoint.sh
├── nvidia-persistenced-installer/
│   ├── Dockerfile
│   ├── README.md
│   ├── nvidia_persistenced_installer.go
│   └── nvidia_persistenced_installer_test.go
├── partition_gpu/
│   ├── Dockerfile
│   ├── README.md
│   ├── partition_gpu.go
│   ├── partition_gpu.yaml
│   └── partition_gpu_test.go
├── pkg/
│   └── gpu/
│       └── nvidia/
│           ├── beta_plugin.go
│           ├── beta_plugin_test.go
│           ├── gpusharing/
│           │   ├── gpusharing.go
│           │   └── gpusharing_test.go
│           ├── health_check/
│           │   ├── health_checker.go
│           │   └── health_checker_test.go
│           ├── manager.go
│           ├── manager_test.go
│           ├── metrics/
│           │   ├── devices.go
│           │   ├── metrics.go
│           │   ├── metrics_test.go
│           │   └── util.go
│           ├── mig/
│           │   ├── mig.go
│           │   └── mig_test.go
│           ├── nvmlutil/
│           │   ├── nvml_mock.go
│           │   └── nvmlutil.go
│           ├── util/
│           │   ├── util.go
│           │   └── util_test.go
│           └── version_visibility/
│               ├── version_visibility.go
│               └── version_visibility_test.go
├── test/
│   └── nvidia_gpu/
│       ├── daemonset-nvidia-mig-test.yaml
│       ├── daemonset-nvidia-preloaded-test.yaml
│       ├── daemonset-ubuntu-preloaded.yaml
│       ├── device-plugin-test.yaml
│       └── xid-config.yaml
└── vendor/
    ├── cloud.google.com/
    │   └── go/
    │       └── compute/
    │           └── metadata/
    │               ├── CHANGES.md
    │               ├── LICENSE
    │               ├── README.md
    │               ├── log.go
    │               ├── metadata.go
    │               ├── retry.go
    │               ├── retry_linux.go
    │               ├── syscheck.go
    │               ├── syscheck_linux.go
    │               └── syscheck_windows.go
    ├── github.com/
    │   ├── NVIDIA/
    │   │   ├── go-nvml/
    │   │   │   ├── LICENSE
    │   │   │   └── pkg/
    │   │   │       ├── dl/
    │   │   │       │   ├── dl.go
    │   │   │       │   └── dl_linux.go
    │   │   │       └── nvml/
    │   │   │           ├── api.go
    │   │   │           ├── cgo_helpers.go
    │   │   │           ├── cgo_helpers.h
    │   │   │           ├── const.go
    │   │   │           ├── const_gen.go
    │   │   │           ├── device.go
    │   │   │           ├── doc.go
    │   │   │           ├── dynamicLibrary_mock.go
    │   │   │           ├── event_set.go
    │   │   │           ├── gpm.go
    │   │   │           ├── init.go
    │   │   │           ├── lib.go
    │   │   │           ├── nvml.go
    │   │   │           ├── nvml.h
    │   │   │           ├── return.go
    │   │   │           ├── system.go
    │   │   │           ├── types_gen.go
    │   │   │           ├── unit.go
    │   │   │           └── vgpu.go
    │   │   └── gpu-monitoring-tools/
    │   │       ├── LICENSE
    │   │       └── bindings/
    │   │           └── go/
    │   │               └── nvml/
    │   │                   ├── bindings.go
    │   │                   ├── mig.go
    │   │                   ├── nvml.go
    │   │                   ├── nvml.h
    │   │                   ├── nvml_dl.go
    │   │                   └── nvml_dl_windows.go
    │   ├── beorn7/
    │   │   └── perks/
    │   │       ├── LICENSE
    │   │       └── quantile/
    │   │           ├── exampledata.txt
    │   │           └── stream.go
    │   ├── cespare/
    │   │   └── xxhash/
    │   │       └── v2/
    │   │           ├── LICENSE.txt
    │   │           ├── README.md
    │   │           ├── testall.sh
    │   │           ├── xxhash.go
    │   │           ├── xxhash_amd64.s
    │   │           ├── xxhash_arm64.s
    │   │           ├── xxhash_asm.go
    │   │           ├── xxhash_other.go
    │   │           ├── xxhash_safe.go
    │   │           └── xxhash_unsafe.go
    │   ├── containerd/
    │   │   ├── nri/
    │   │   │   ├── LICENSE
    │   │   │   └── pkg/
    │   │   │       ├── api/
    │   │   │       │   ├── adjustment.go
    │   │   │       │   ├── api.pb.go
    │   │   │       │   ├── api.proto
    │   │   │       │   ├── api_ttrpc.pb.go
    │   │   │       │   ├── device.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── env.go
    │   │   │       │   ├── event.go
    │   │   │       │   ├── helpers.go
    │   │   │       │   ├── hooks.go
    │   │   │       │   ├── mount.go
    │   │   │       │   ├── namespace.go
    │   │   │       │   ├── optional.go
    │   │   │       │   ├── plugin.go
    │   │   │       │   ├── resources.go
    │   │   │       │   └── update.go
    │   │   │       ├── log/
    │   │   │       │   └── log.go
    │   │   │       ├── net/
    │   │   │       │   ├── conn.go
    │   │   │       │   ├── multiplex/
    │   │   │       │   │   ├── mux.go
    │   │   │       │   │   └── ttrpc.go
    │   │   │       │   ├── socketpair_unix.go
    │   │   │       │   └── socketpair_windows.go
    │   │   │       └── stub/
    │   │   │           └── stub.go
    │   │   └── ttrpc/
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── PROTOCOL.md
    │   │       ├── Protobuild.toml
    │   │       ├── README.md
    │   │       ├── channel.go
    │   │       ├── client.go
    │   │       ├── codec.go
    │   │       ├── config.go
    │   │       ├── doc.go
    │   │       ├── errors.go
    │   │       ├── handshake.go
    │   │       ├── interceptor.go
    │   │       ├── metadata.go
    │   │       ├── request.pb.go
    │   │       ├── request.proto
    │   │       ├── server.go
    │   │       ├── services.go
    │   │       ├── stream.go
    │   │       ├── stream_server.go
    │   │       ├── test.proto
    │   │       └── unixcreds_linux.go
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── json.go
    │   │           ├── jsoniter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── evanphx/
    │   │   └── json-patch/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── merge.go
    │   │       └── patch.go
    │   ├── fsnotify/
    │   │   └── fsnotify/
    │   │       ├── .cirrus.yml
    │   │       ├── .editorconfig
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .mailmap
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── backend_fen.go
    │   │       ├── backend_inotify.go
    │   │       ├── backend_kqueue.go
    │   │       ├── backend_other.go
    │   │       ├── backend_windows.go
    │   │       ├── fsnotify.go
    │   │       ├── mkdoc.zsh
    │   │       ├── system_bsd.go
    │   │       └── system_darwin.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── gogoproto/
    │   │       │   ├── Makefile
    │   │       │   ├── doc.go
    │   │       │   ├── gogo.pb.go
    │   │       │   ├── gogo.pb.golden
    │   │       │   ├── gogo.proto
    │   │       │   └── helper.go
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       ├── protoc-gen-gogo/
    │   │       │   └── descriptor/
    │   │       │       ├── Makefile
    │   │       │       ├── descriptor.go
    │   │       │       ├── descriptor.pb.go
    │   │       │       ├── descriptor_gostring.gen.go
    │   │       │       └── helper.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── golang/
    │   │   ├── glog/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── glog.go
    │   │   │   ├── glog_file.go
    │   │   │   ├── glog_file_linux.go
    │   │   │   ├── glog_file_nonwindows.go
    │   │   │   ├── glog_file_other.go
    │   │   │   ├── glog_file_posix.go
    │   │   │   ├── glog_file_windows.go
    │   │   │   ├── glog_flags.go
    │   │   │   └── internal/
    │   │   │       ├── logsink/
    │   │   │       │   ├── logsink.go
    │   │   │       │   └── logsink_fatal.go
    │   │   │       └── stackdump/
    │   │   │           └── stackdump.go
    │   │   ├── groupcache/
    │   │   │   ├── LICENSE
    │   │   │   └── lru/
    │   │   │       └── lru.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           ├── any/
    │   │           │   └── any.pb.go
    │   │           ├── any.go
    │   │           ├── doc.go
    │   │           ├── duration/
    │   │           │   └── duration.pb.go
    │   │           ├── duration.go
    │   │           ├── timestamp/
    │   │           │   └── timestamp.pb.go
    │   │           └── timestamp.go
    │   ├── google/
    │   │   ├── gnostic/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       ├── document.go
    │   │   │       ├── openapi-3.0.json
    │   │   │       └── openapi-3.1.json
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── matttproud/
    │   │   └── golang_protobuf_extensions/
    │   │       ├── LICENSE
    │   │       ├── NOTICE
    │   │       └── pbutil/
    │   │           ├── .gitignore
    │   │           ├── Makefile
    │   │           ├── decode.go
    │   │           ├── doc.go
    │   │           └── encode.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── opencontainers/
    │   │   └── runtime-spec/
    │   │       ├── LICENSE
    │   │       └── specs-go/
    │   │           ├── config.go
    │   │           ├── state.go
    │   │           └── version.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── pmezard/
    │   │   └── go-difflib/
    │   │       ├── LICENSE
    │   │       └── difflib/
    │   │           └── difflib.go
    │   ├── prometheus/
    │   │   ├── client_golang/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── prometheus/
    │   │   │       ├── .gitignore
    │   │   │       ├── README.md
    │   │   │       ├── build_info_collector.go
    │   │   │       ├── collector.go
    │   │   │       ├── counter.go
    │   │   │       ├── desc.go
    │   │   │       ├── doc.go
    │   │   │       ├── expvar_collector.go
    │   │   │       ├── fnv.go
    │   │   │       ├── gauge.go
    │   │   │       ├── get_pid.go
    │   │   │       ├── get_pid_gopherjs.go
    │   │   │       ├── go_collector.go
    │   │   │       ├── go_collector_go116.go
    │   │   │       ├── go_collector_latest.go
    │   │   │       ├── histogram.go
    │   │   │       ├── internal/
    │   │   │       │   ├── almost_equal.go
    │   │   │       │   ├── difflib.go
    │   │   │       │   ├── go_collector_options.go
    │   │   │       │   ├── go_runtime_metrics.go
    │   │   │       │   └── metric.go
    │   │   │       ├── labels.go
    │   │   │       ├── metric.go
    │   │   │       ├── num_threads.go
    │   │   │       ├── num_threads_gopherjs.go
    │   │   │       ├── observer.go
    │   │   │       ├── process_collector.go
    │   │   │       ├── process_collector_js.go
    │   │   │       ├── process_collector_other.go
    │   │   │       ├── process_collector_windows.go
    │   │   │       ├── promauto/
    │   │   │       │   └── auto.go
    │   │   │       ├── promhttp/
    │   │   │       │   ├── delegator.go
    │   │   │       │   ├── http.go
    │   │   │       │   ├── instrument_client.go
    │   │   │       │   ├── instrument_server.go
    │   │   │       │   └── option.go
    │   │   │       ├── registry.go
    │   │   │       ├── summary.go
    │   │   │       ├── testutil/
    │   │   │       │   ├── lint.go
    │   │   │       │   ├── promlint/
    │   │   │       │   │   └── promlint.go
    │   │   │       │   └── testutil.go
    │   │   │       ├── timer.go
    │   │   │       ├── untyped.go
    │   │   │       ├── value.go
    │   │   │       ├── vec.go
    │   │   │       ├── vnext.go
    │   │   │       └── wrap.go
    │   │   ├── client_model/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── go/
    │   │   │       └── metrics.pb.go
    │   │   ├── common/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── expfmt/
    │   │   │   │   ├── decode.go
    │   │   │   │   ├── encode.go
    │   │   │   │   ├── expfmt.go
    │   │   │   │   ├── fuzz.go
    │   │   │   │   ├── openmetrics_create.go
    │   │   │   │   ├── text_create.go
    │   │   │   │   └── text_parse.go
    │   │   │   ├── internal/
    │   │   │   │   └── bitbucket.org/
    │   │   │   │       └── ww/
    │   │   │   │           └── goautoneg/
    │   │   │   │               ├── README.txt
    │   │   │   │               └── autoneg.go
    │   │   │   └── model/
    │   │   │       ├── alert.go
    │   │   │       ├── fingerprinting.go
    │   │   │       ├── fnv.go
    │   │   │       ├── labels.go
    │   │   │       ├── labelset.go
    │   │   │       ├── metric.go
    │   │   │       ├── model.go
    │   │   │       ├── signature.go
    │   │   │       ├── silence.go
    │   │   │       ├── time.go
    │   │   │       ├── value.go
    │   │   │       ├── value_float.go
    │   │   │       ├── value_histogram.go
    │   │   │       └── value_type.go
    │   │   └── procfs/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── MAINTAINERS.md
    │   │       ├── Makefile
    │   │       ├── Makefile.common
    │   │       ├── NOTICE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── arp.go
    │   │       ├── buddyinfo.go
    │   │       ├── cmdline.go
    │   │       ├── cpuinfo.go
    │   │       ├── cpuinfo_armx.go
    │   │       ├── cpuinfo_loong64.go
    │   │       ├── cpuinfo_mipsx.go
    │   │       ├── cpuinfo_others.go
    │   │       ├── cpuinfo_ppcx.go
    │   │       ├── cpuinfo_riscvx.go
    │   │       ├── cpuinfo_s390x.go
    │   │       ├── cpuinfo_x86.go
    │   │       ├── crypto.go
    │   │       ├── doc.go
    │   │       ├── fs.go
    │   │       ├── fs_statfs_notype.go
    │   │       ├── fs_statfs_type.go
    │   │       ├── fscache.go
    │   │       ├── internal/
    │   │       │   ├── fs/
    │   │       │   │   └── fs.go
    │   │       │   └── util/
    │   │       │       ├── parse.go
    │   │       │       ├── readfile.go
    │   │       │       ├── sysreadfile.go
    │   │       │       ├── sysreadfile_compat.go
    │   │       │       └── valueparser.go
    │   │       ├── ipvs.go
    │   │       ├── kernel_random.go
    │   │       ├── loadavg.go
    │   │       ├── mdstat.go
    │   │       ├── meminfo.go
    │   │       ├── mountinfo.go
    │   │       ├── mountstats.go
    │   │       ├── net_conntrackstat.go
    │   │       ├── net_dev.go
    │   │       ├── net_ip_socket.go
    │   │       ├── net_protocols.go
    │   │       ├── net_sockstat.go
    │   │       ├── net_softnet.go
    │   │       ├── net_tcp.go
    │   │       ├── net_udp.go
    │   │       ├── net_unix.go
    │   │       ├── net_wireless.go
    │   │       ├── net_xfrm.go
    │   │       ├── netstat.go
    │   │       ├── proc.go
    │   │       ├── proc_cgroup.go
    │   │       ├── proc_cgroups.go
    │   │       ├── proc_environ.go
    │   │       ├── proc_fdinfo.go
    │   │       ├── proc_interrupts.go
    │   │       ├── proc_io.go
    │   │       ├── proc_limits.go
    │   │       ├── proc_maps.go
    │   │       ├── proc_netstat.go
    │   │       ├── proc_ns.go
    │   │       ├── proc_psi.go
    │   │       ├── proc_smaps.go
    │   │       ├── proc_snmp.go
    │   │       ├── proc_snmp6.go
    │   │       ├── proc_stat.go
    │   │       ├── proc_status.go
    │   │       ├── proc_sys.go
    │   │       ├── schedstat.go
    │   │       ├── slab.go
    │   │       ├── softirqs.go
    │   │       ├── stat.go
    │   │       ├── swaps.go
    │   │       ├── thread.go
    │   │       ├── ttar
    │   │       ├── vm.go
    │   │       └── zoneinfo.go
    │   └── stretchr/
    │       └── testify/
    │           ├── LICENSE
    │           └── assert/
    │               ├── assertion_compare.go
    │               ├── assertion_compare_can_convert.go
    │               ├── assertion_compare_legacy.go
    │               ├── assertion_format.go
    │               ├── assertion_format.go.tmpl
    │               ├── assertion_forward.go
    │               ├── assertion_forward.go.tmpl
    │               ├── assertion_order.go
    │               ├── assertions.go
    │               ├── doc.go
    │               ├── errors.go
    │               ├── forward_assertions.go
    │               └── http_assertions.go
    ├── golang.org/
    │   └── x/
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── context/
    │       │   │   └── context.go
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go125.go
    │       │   │   ├── config_go126.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority_rfc7540.go
    │       │   │   ├── writesched_priority_rfc9218.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   ├── internal/
    │       │   │   ├── httpcommon/
    │       │   │   │   ├── ascii.go
    │       │   │   │   ├── headermap.go
    │       │   │   │   └── request.go
    │       │   │   └── timeseries/
    │       │   │       └── timeseries.go
    │       │   └── trace/
    │       │       ├── events.go
    │       │       ├── histogram.go
    │       │       └── trace.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── registry/
    │       │       │   ├── key.go
    │       │       │   ├── mksyscall.go
    │       │       │   ├── syscall.go
    │       │       │   ├── value.go
    │       │       │   └── zsyscall_windows.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │   ├── term.go
    │       │   ├── term_plan9.go
    │       │   ├── term_unix.go
    │       │   ├── term_unix_bsd.go
    │       │   ├── term_unix_other.go
    │       │   ├── term_unsupported.go
    │       │   ├── term_windows.go
    │       │   └── terminal.go
    │       ├── text/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── secure/
    │       │   │   └── bidirule/
    │       │   │       ├── bidirule.go
    │       │   │       ├── bidirule10.0.0.go
    │       │   │       └── bidirule9.0.0.go
    │       │   ├── transform/
    │       │   │   └── transform.go
    │       │   └── unicode/
    │       │       ├── bidi/
    │       │       │   ├── bidi.go
    │       │       │   ├── bracket.go
    │       │       │   ├── core.go
    │       │       │   ├── prop.go
    │       │       │   ├── tables10.0.0.go
    │       │       │   ├── tables11.0.0.go
    │       │       │   ├── tables12.0.0.go
    │       │       │   ├── tables13.0.0.go
    │       │       │   ├── tables15.0.0.go
    │       │       │   ├── tables9.0.0.go
    │       │       │   └── trieval.go
    │       │       └── norm/
    │       │           ├── composition.go
    │       │           ├── forminfo.go
    │       │           ├── input.go
    │       │           ├── iter.go
    │       │           ├── normalize.go
    │       │           ├── readwriter.go
    │       │           ├── tables10.0.0.go
    │       │           ├── tables11.0.0.go
    │       │           ├── tables12.0.0.go
    │       │           ├── tables13.0.0.go
    │       │           ├── tables15.0.0.go
    │       │           ├── tables9.0.0.go
    │       │           ├── transform.go
    │       │           └── trie.go
    │       └── time/
    │           ├── AUTHORS
    │           ├── CONTRIBUTORS
    │           ├── LICENSE
    │           ├── PATENTS
    │           └── rate/
    │               └── rate.go
    ├── google.golang.org/
    │   ├── genproto/
    │   │   └── googleapis/
    │   │       └── rpc/
    │   │           ├── LICENSE
    │   │           └── status/
    │   │               └── status.pb.go
    │   ├── grpc/
    │   │   ├── AUTHORS
    │   │   ├── CODE-OF-CONDUCT.md
    │   │   ├── CONTRIBUTING.md
    │   │   ├── GOVERNANCE.md
    │   │   ├── LICENSE
    │   │   ├── MAINTAINERS.md
    │   │   ├── Makefile
    │   │   ├── NOTICE.txt
    │   │   ├── README.md
    │   │   ├── SECURITY.md
    │   │   ├── attributes/
    │   │   │   └── attributes.go
    │   │   ├── backoff/
    │   │   │   └── backoff.go
    │   │   ├── backoff.go
    │   │   ├── balancer/
    │   │   │   ├── balancer.go
    │   │   │   ├── base/
    │   │   │   │   ├── balancer.go
    │   │   │   │   └── base.go
    │   │   │   ├── conn_state_evaluator.go
    │   │   │   ├── endpointsharding/
    │   │   │   │   └── endpointsharding.go
    │   │   │   ├── grpclb/
    │   │   │   │   └── state/
    │   │   │   │       └── state.go
    │   │   │   ├── pickfirst/
    │   │   │   │   ├── internal/
    │   │   │   │   │   └── internal.go
    │   │   │   │   └── pickfirst.go
    │   │   │   ├── roundrobin/
    │   │   │   │   └── roundrobin.go
    │   │   │   └── subconn.go
    │   │   ├── balancer_wrapper.go
    │   │   ├── binarylog/
    │   │   │   └── grpc_binarylog_v1/
    │   │   │       └── binarylog.pb.go
    │   │   ├── call.go
    │   │   ├── channelz/
    │   │   │   └── channelz.go
    │   │   ├── clientconn.go
    │   │   ├── codec.go
    │   │   ├── codes/
    │   │   │   ├── code_string.go
    │   │   │   └── codes.go
    │   │   ├── connectivity/
    │   │   │   └── connectivity.go
    │   │   ├── credentials/
    │   │   │   ├── credentials.go
    │   │   │   ├── insecure/
    │   │   │   │   └── insecure.go
    │   │   │   └── tls.go
    │   │   ├── dialoptions.go
    │   │   ├── doc.go
    │   │   ├── encoding/
    │   │   │   ├── encoding.go
    │   │   │   ├── encoding_v2.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   └── proto/
    │   │   │       └── proto.go
    │   │   ├── experimental/
    │   │   │   └── stats/
    │   │   │       ├── metricregistry.go
    │   │   │       └── metrics.go
    │   │   ├── grpclog/
    │   │   │   ├── component.go
    │   │   │   ├── grpclog.go
    │   │   │   ├── internal/
    │   │   │   │   ├── grpclog.go
    │   │   │   │   ├── logger.go
    │   │   │   │   └── loggerv2.go
    │   │   │   ├── logger.go
    │   │   │   └── loggerv2.go
    │   │   ├── interceptor.go
    │   │   ├── internal/
    │   │   │   ├── backoff/
    │   │   │   │   └── backoff.go
    │   │   │   ├── balancer/
    │   │   │   │   ├── gracefulswitch/
    │   │   │   │   │   ├── config.go
    │   │   │   │   │   └── gracefulswitch.go
    │   │   │   │   └── weight/
    │   │   │   │       └── weight.go
    │   │   │   ├── balancerload/
    │   │   │   │   └── load.go
    │   │   │   ├── binarylog/
    │   │   │   │   ├── binarylog.go
    │   │   │   │   ├── binarylog_testutil.go
    │   │   │   │   ├── env_config.go
    │   │   │   │   ├── method_logger.go
    │   │   │   │   └── sink.go
    │   │   │   ├── buffer/
    │   │   │   │   └── unbounded.go
    │   │   │   ├── channelz/
    │   │   │   │   ├── channel.go
    │   │   │   │   ├── channelmap.go
    │   │   │   │   ├── funcs.go
    │   │   │   │   ├── logging.go
    │   │   │   │   ├── server.go
    │   │   │   │   ├── socket.go
    │   │   │   │   ├── subchannel.go
    │   │   │   │   ├── syscall_linux.go
    │   │   │   │   ├── syscall_nonlinux.go
    │   │   │   │   └── trace.go
    │   │   │   ├── credentials/
    │   │   │   │   ├── credentials.go
    │   │   │   │   ├── spiffe.go
    │   │   │   │   ├── syscallconn.go
    │   │   │   │   └── util.go
    │   │   │   ├── envconfig/
    │   │   │   │   ├── envconfig.go
    │   │   │   │   ├── observability.go
    │   │   │   │   └── xds.go
    │   │   │   ├── experimental.go
    │   │   │   ├── grpclog/
    │   │   │   │   └── prefix_logger.go
    │   │   │   ├── grpcsync/
    │   │   │   │   ├── callback_serializer.go
    │   │   │   │   ├── event.go
    │   │   │   │   └── pubsub.go
    │   │   │   ├── grpcutil/
    │   │   │   │   ├── compressor.go
    │   │   │   │   ├── encode_duration.go
    │   │   │   │   ├── grpcutil.go
    │   │   │   │   ├── metadata.go
    │   │   │   │   ├── method.go
    │   │   │   │   └── regex.go
    │   │   │   ├── idle/
    │   │   │   │   └── idle.go
    │   │   │   ├── internal.go
    │   │   │   ├── metadata/
    │   │   │   │   └── metadata.go
    │   │   │   ├── pretty/
    │   │   │   │   └── pretty.go
    │   │   │   ├── proxyattributes/
    │   │   │   │   └── proxyattributes.go
    │   │   │   ├── resolver/
    │   │   │   │   ├── config_selector.go
    │   │   │   │   ├── delegatingresolver/
    │   │   │   │   │   └── delegatingresolver.go
    │   │   │   │   ├── dns/
    │   │   │   │   │   ├── dns_resolver.go
    │   │   │   │   │   └── internal/
    │   │   │   │   │       └── internal.go
    │   │   │   │   ├── passthrough/
    │   │   │   │   │   └── passthrough.go
    │   │   │   │   └── unix/
    │   │   │   │       └── unix.go
    │   │   │   ├── serviceconfig/
    │   │   │   │   ├── duration.go
    │   │   │   │   └── serviceconfig.go
    │   │   │   ├── stats/
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── metrics_recorder_list.go
    │   │   │   │   └── stats.go
    │   │   │   ├── status/
    │   │   │   │   └── status.go
    │   │   │   ├── syscall/
    │   │   │   │   ├── syscall_linux.go
    │   │   │   │   └── syscall_nonlinux.go
    │   │   │   ├── tcp_keepalive_others.go
    │   │   │   ├── tcp_keepalive_unix.go
    │   │   │   ├── tcp_keepalive_windows.go
    │   │   │   └── transport/
    │   │   │       ├── bdp_estimator.go
    │   │   │       ├── client_stream.go
    │   │   │       ├── controlbuf.go
    │   │   │       ├── defaults.go
    │   │   │       ├── flowcontrol.go
    │   │   │       ├── handler_server.go
    │   │   │       ├── http2_client.go
    │   │   │       ├── http2_server.go
    │   │   │       ├── http_util.go
    │   │   │       ├── logging.go
    │   │   │       ├── networktype/
    │   │   │       │   └── networktype.go
    │   │   │       ├── proxy.go
    │   │   │       ├── server_stream.go
    │   │   │       └── transport.go
    │   │   ├── keepalive/
    │   │   │   └── keepalive.go
    │   │   ├── mem/
    │   │   │   ├── buffer_pool.go
    │   │   │   ├── buffer_slice.go
    │   │   │   └── buffers.go
    │   │   ├── metadata/
    │   │   │   └── metadata.go
    │   │   ├── peer/
    │   │   │   └── peer.go
    │   │   ├── picker_wrapper.go
    │   │   ├── preloader.go
    │   │   ├── resolver/
    │   │   │   ├── dns/
    │   │   │   │   └── dns_resolver.go
    │   │   │   ├── map.go
    │   │   │   └── resolver.go
    │   │   ├── resolver_wrapper.go
    │   │   ├── rpc_util.go
    │   │   ├── server.go
    │   │   ├── service_config.go
    │   │   ├── serviceconfig/
    │   │   │   └── serviceconfig.go
    │   │   ├── stats/
    │   │   │   ├── handlers.go
    │   │   │   ├── metrics.go
    │   │   │   └── stats.go
    │   │   ├── status/
    │   │   │   └── status.go
    │   │   ├── stream.go
    │   │   ├── stream_interfaces.go
    │   │   ├── tap/
    │   │   │   └── tap.go
    │   │   ├── trace.go
    │   │   ├── trace_notrace.go
    │   │   ├── trace_withtrace.go
    │   │   └── version.go
    │   └── protobuf/
    │       ├── LICENSE
    │       ├── PATENTS
    │       ├── encoding/
    │       │   ├── protojson/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   ├── encode.go
    │       │   │   └── well_known_types.go
    │       │   ├── prototext/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   └── encode.go
    │       │   └── protowire/
    │       │       └── wire.go
    │       ├── internal/
    │       │   ├── descfmt/
    │       │   │   └── stringer.go
    │       │   ├── descopts/
    │       │   │   └── options.go
    │       │   ├── detrand/
    │       │   │   └── rand.go
    │       │   ├── editiondefaults/
    │       │   │   ├── defaults.go
    │       │   │   └── editions_defaults.binpb
    │       │   ├── editionssupport/
    │       │   │   └── editions.go
    │       │   ├── encoding/
    │       │   │   ├── defval/
    │       │   │   │   └── default.go
    │       │   │   ├── json/
    │       │   │   │   ├── decode.go
    │       │   │   │   ├── decode_number.go
    │       │   │   │   ├── decode_string.go
    │       │   │   │   ├── decode_token.go
    │       │   │   │   └── encode.go
    │       │   │   ├── messageset/
    │       │   │   │   └── messageset.go
    │       │   │   ├── tag/
    │       │   │   │   └── tag.go
    │       │   │   └── text/
    │       │   │       ├── decode.go
    │       │   │       ├── decode_number.go
    │       │   │       ├── decode_string.go
    │       │   │       ├── decode_token.go
    │       │   │       ├── doc.go
    │       │   │       └── encode.go
    │       │   ├── errors/
    │       │   │   └── errors.go
    │       │   ├── filedesc/
    │       │   │   ├── build.go
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_lazy.go
    │       │   │   ├── desc_list.go
    │       │   │   ├── desc_list_gen.go
    │       │   │   ├── editions.go
    │       │   │   ├── placeholder.go
    │       │   │   └── presence.go
    │       │   ├── filetype/
    │       │   │   └── build.go
    │       │   ├── flags/
    │       │   │   ├── flags.go
    │       │   │   ├── proto_legacy_disable.go
    │       │   │   └── proto_legacy_enable.go
    │       │   ├── genid/
    │       │   │   ├── any_gen.go
    │       │   │   ├── api_gen.go
    │       │   │   ├── descriptor_gen.go
    │       │   │   ├── doc.go
    │       │   │   ├── duration_gen.go
    │       │   │   ├── empty_gen.go
    │       │   │   ├── field_mask_gen.go
    │       │   │   ├── go_features_gen.go
    │       │   │   ├── goname.go
    │       │   │   ├── map_entry.go
    │       │   │   ├── name.go
    │       │   │   ├── source_context_gen.go
    │       │   │   ├── struct_gen.go
    │       │   │   ├── timestamp_gen.go
    │       │   │   ├── type_gen.go
    │       │   │   ├── wrappers.go
    │       │   │   └── wrappers_gen.go
    │       │   ├── impl/
    │       │   │   ├── api_export.go
    │       │   │   ├── api_export_opaque.go
    │       │   │   ├── bitmap.go
    │       │   │   ├── bitmap_race.go
    │       │   │   ├── checkinit.go
    │       │   │   ├── codec_extension.go
    │       │   │   ├── codec_field.go
    │       │   │   ├── codec_field_opaque.go
    │       │   │   ├── codec_gen.go
    │       │   │   ├── codec_map.go
    │       │   │   ├── codec_message.go
    │       │   │   ├── codec_message_opaque.go
    │       │   │   ├── codec_messageset.go
    │       │   │   ├── codec_tables.go
    │       │   │   ├── codec_unsafe.go
    │       │   │   ├── convert.go
    │       │   │   ├── convert_list.go
    │       │   │   ├── convert_map.go
    │       │   │   ├── decode.go
    │       │   │   ├── encode.go
    │       │   │   ├── enum.go
    │       │   │   ├── equal.go
    │       │   │   ├── extension.go
    │       │   │   ├── lazy.go
    │       │   │   ├── legacy_enum.go
    │       │   │   ├── legacy_export.go
    │       │   │   ├── legacy_extension.go
    │       │   │   ├── legacy_file.go
    │       │   │   ├── legacy_message.go
    │       │   │   ├── merge.go
    │       │   │   ├── merge_gen.go
    │       │   │   ├── message.go
    │       │   │   ├── message_opaque.go
    │       │   │   ├── message_opaque_gen.go
    │       │   │   ├── message_reflect.go
    │       │   │   ├── message_reflect_field.go
    │       │   │   ├── message_reflect_field_gen.go
    │       │   │   ├── message_reflect_gen.go
    │       │   │   ├── pointer_unsafe.go
    │       │   │   ├── pointer_unsafe_opaque.go
    │       │   │   ├── presence.go
    │       │   │   └── validate.go
    │       │   ├── order/
    │       │   │   ├── order.go
    │       │   │   └── range.go
    │       │   ├── pragma/
    │       │   │   └── pragma.go
    │       │   ├── protolazy/
    │       │   │   ├── bufferreader.go
    │       │   │   ├── lazy.go
    │       │   │   └── pointer_unsafe.go
    │       │   ├── set/
    │       │   │   └── ints.go
    │       │   ├── strs/
    │       │   │   ├── strings.go
    │       │   │   └── strings_unsafe.go
    │       │   └── version/
    │       │       └── version.go
    │       ├── proto/
    │       │   ├── checkinit.go
    │       │   ├── decode.go
    │       │   ├── decode_gen.go
    │       │   ├── doc.go
    │       │   ├── encode.go
    │       │   ├── encode_gen.go
    │       │   ├── equal.go
    │       │   ├── extension.go
    │       │   ├── merge.go
    │       │   ├── messageset.go
    │       │   ├── proto.go
    │       │   ├── proto_methods.go
    │       │   ├── proto_reflect.go
    │       │   ├── reset.go
    │       │   ├── size.go
    │       │   ├── size_gen.go
    │       │   ├── wrapperopaque.go
    │       │   └── wrappers.go
    │       ├── protoadapt/
    │       │   └── convert.go
    │       ├── reflect/
    │       │   ├── protodesc/
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_resolve.go
    │       │   │   ├── desc_validate.go
    │       │   │   ├── editions.go
    │       │   │   └── proto.go
    │       │   ├── protoreflect/
    │       │   │   ├── methods.go
    │       │   │   ├── proto.go
    │       │   │   ├── source.go
    │       │   │   ├── source_gen.go
    │       │   │   ├── type.go
    │       │   │   ├── value.go
    │       │   │   ├── value_equal.go
    │       │   │   ├── value_union.go
    │       │   │   └── value_unsafe.go
    │       │   └── protoregistry/
    │       │       └── registry.go
    │       ├── runtime/
    │       │   ├── protoiface/
    │       │   │   ├── legacy.go
    │       │   │   └── methods.go
    │       │   └── protoimpl/
    │       │       ├── impl.go
    │       │       └── version.go
    │       └── types/
    │           ├── descriptorpb/
    │           │   └── descriptor.pb.go
    │           ├── gofeaturespb/
    │           │   └── go_features.pb.go
    │           └── known/
    │               ├── anypb/
    │               │   └── any.pb.go
    │               ├── durationpb/
    │               │   └── duration.pb.go
    │               └── timestamppb/
    │                   └── timestamp.pb.go
    ├── gopkg.in/
    │   ├── inf.v0/
    │   │   ├── LICENSE
    │   │   ├── dec.go
    │   │   └── rounder.go
    │   ├── yaml.v2/
    │   │   ├── .travis.yml
    │   │   ├── LICENSE
    │   │   ├── LICENSE.libyaml
    │   │   ├── NOTICE
    │   │   ├── README.md
    │   │   ├── apic.go
    │   │   ├── decode.go
    │   │   ├── emitterc.go
    │   │   ├── encode.go
    │   │   ├── parserc.go
    │   │   ├── readerc.go
    │   │   ├── resolve.go
    │   │   ├── scannerc.go
    │   │   ├── sorter.go
    │   │   ├── writerc.go
    │   │   ├── yaml.go
    │   │   ├── yamlh.go
    │   │   └── yamlprivateh.go
    │   └── yaml.v3/
    │       ├── LICENSE
    │       ├── NOTICE
    │       ├── README.md
    │       ├── apic.go
    │       ├── decode.go
    │       ├── emitterc.go
    │       ├── encode.go
    │       ├── parserc.go
    │       ├── readerc.go
    │       ├── resolve.go
    │       ├── scannerc.go
    │       ├── sorter.go
    │       ├── writerc.go
    │       ├── yaml.go
    │       ├── yamlh.go
    │       └── yamlprivateh.go
    ├── k8s.io/
    │   ├── api/
    │   │   ├── LICENSE
    │   │   ├── admissionregistration/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apidiscovery/
    │   │   │   └── v2beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apiserverinternal/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── apps/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authentication/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authorization/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── autoscaling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v2beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── batch/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── certificates/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── coordination/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── core/
    │   │   │   └── v1/
    │   │   │       ├── annotation_key_constants.go
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── lifecycle.go
    │   │   │       ├── objectreference.go
    │   │   │       ├── register.go
    │   │   │       ├── resource.go
    │   │   │       ├── taint.go
    │   │   │       ├── toleration.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── well_known_taints.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── discovery/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── events/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── extensions/
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── flowcontrol/
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta3/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── networking/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_annotations.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_annotations.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── node/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── policy/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── rbac/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── resource/
    │   │   │   └── v1alpha2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── scheduling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   └── storage/
    │   │       ├── v1/
    │   │       │   ├── doc.go
    │   │       │   ├── generated.pb.go
    │   │       │   ├── generated.proto
    │   │       │   ├── register.go
    │   │       │   ├── types.go
    │   │       │   ├── types_swagger_doc_generated.go
    │   │       │   └── zz_generated.deepcopy.go
    │   │       ├── v1alpha1/
    │   │       │   ├── doc.go
    │   │       │   ├── generated.pb.go
    │   │       │   ├── generated.proto
    │   │       │   ├── register.go
    │   │       │   ├── types.go
    │   │       │   ├── types_swagger_doc_generated.go
    │   │       │   ├── zz_generated.deepcopy.go
    │   │       │   └── zz_generated.prerelease-lifecycle.go
    │   │       └── v1beta1/
    │   │           ├── doc.go
    │   │           ├── generated.pb.go
    │   │           ├── generated.proto
    │   │           ├── register.go
    │   │           ├── types.go
    │   │           ├── types_swagger_doc_generated.go
    │   │           ├── zz_generated.deepcopy.go
    │   │           └── zz_generated.prerelease-lifecycle.go
    │   ├── apimachinery/
    │   │   ├── LICENSE
    │   │   ├── pkg/
    │   │   │   ├── api/
    │   │   │   │   ├── equality/
    │   │   │   │   │   └── semantic.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── meta/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── conditions.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── firsthit_restmapper.go
    │   │   │   │   │   ├── help.go
    │   │   │   │   │   ├── interfaces.go
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── multirestmapper.go
    │   │   │   │   │   ├── priority.go
    │   │   │   │   │   └── restmapper.go
    │   │   │   │   ├── resource/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── amount.go
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── math.go
    │   │   │   │   │   ├── quantity.go
    │   │   │   │   │   ├── quantity_proto.go
    │   │   │   │   │   ├── scale_int.go
    │   │   │   │   │   ├── suffix.go
    │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   └── validation/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── generic.go
    │   │   │   │       └── objectmeta.go
    │   │   │   ├── apis/
    │   │   │   │   └── meta/
    │   │   │   │       └── v1/
    │   │   │   │           ├── OWNERS
    │   │   │   │           ├── controller_ref.go
    │   │   │   │           ├── conversion.go
    │   │   │   │           ├── deepcopy.go
    │   │   │   │           ├── doc.go
    │   │   │   │           ├── duration.go
    │   │   │   │           ├── generated.pb.go
    │   │   │   │           ├── generated.proto
    │   │   │   │           ├── group_version.go
    │   │   │   │           ├── helpers.go
    │   │   │   │           ├── labels.go
    │   │   │   │           ├── meta.go
    │   │   │   │           ├── micro_time.go
    │   │   │   │           ├── micro_time_fuzz.go
    │   │   │   │           ├── micro_time_proto.go
    │   │   │   │           ├── register.go
    │   │   │   │           ├── time.go
    │   │   │   │           ├── time_fuzz.go
    │   │   │   │           ├── time_proto.go
    │   │   │   │           ├── types.go
    │   │   │   │           ├── types_swagger_doc_generated.go
    │   │   │   │           ├── unstructured/
    │   │   │   │           │   ├── helpers.go
    │   │   │   │           │   ├── unstructured.go
    │   │   │   │           │   ├── unstructured_list.go
    │   │   │   │           │   └── zz_generated.deepcopy.go
    │   │   │   │           ├── validation/
    │   │   │   │           │   └── validation.go
    │   │   │   │           ├── watch.go
    │   │   │   │           ├── zz_generated.conversion.go
    │   │   │   │           ├── zz_generated.deepcopy.go
    │   │   │   │           └── zz_generated.defaults.go
    │   │   │   ├── conversion/
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── deep_equal.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helper.go
    │   │   │   │   └── queryparams/
    │   │   │   │       ├── convert.go
    │   │   │   │       └── doc.go
    │   │   │   ├── fields/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── fields.go
    │   │   │   │   ├── requirements.go
    │   │   │   │   └── selector.go
    │   │   │   ├── labels/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── selector.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── runtime/
    │   │   │   │   ├── allocator.go
    │   │   │   │   ├── codec.go
    │   │   │   │   ├── codec_check.go
    │   │   │   │   ├── conversion.go
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── embedded.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extension.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── helper.go
    │   │   │   │   ├── interfaces.go
    │   │   │   │   ├── mapper.go
    │   │   │   │   ├── negotiate.go
    │   │   │   │   ├── register.go
    │   │   │   │   ├── schema/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── group_version.go
    │   │   │   │   │   └── interfaces.go
    │   │   │   │   ├── scheme.go
    │   │   │   │   ├── scheme_builder.go
    │   │   │   │   ├── serializer/
    │   │   │   │   │   ├── codec_factory.go
    │   │   │   │   │   ├── json/
    │   │   │   │   │   │   ├── json.go
    │   │   │   │   │   │   └── meta.go
    │   │   │   │   │   ├── negotiated_codec.go
    │   │   │   │   │   ├── protobuf/
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   └── protobuf.go
    │   │   │   │   │   ├── recognizer/
    │   │   │   │   │   │   └── recognizer.go
    │   │   │   │   │   ├── streaming/
    │   │   │   │   │   │   └── streaming.go
    │   │   │   │   │   └── versioning/
    │   │   │   │   │       └── versioning.go
    │   │   │   │   ├── swagger_doc_generator.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_proto.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── selection/
    │   │   │   │   └── operator.go
    │   │   │   ├── types/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── namespacedname.go
    │   │   │   │   ├── nodename.go
    │   │   │   │   ├── patch.go
    │   │   │   │   └── uid.go
    │   │   │   ├── util/
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── framer/
    │   │   │   │   │   └── framer.go
    │   │   │   │   ├── intstr/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── instr_fuzz.go
    │   │   │   │   │   └── intstr.go
    │   │   │   │   ├── json/
    │   │   │   │   │   └── json.go
    │   │   │   │   ├── managedfields/
    │   │   │   │   │   ├── endpoints.yaml
    │   │   │   │   │   ├── extract.go
    │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   ├── gvkparser.go
    │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   ├── atmostevery.go
    │   │   │   │   │   │   ├── buildmanagerinfo.go
    │   │   │   │   │   │   ├── capmanagers.go
    │   │   │   │   │   │   ├── conflict.go
    │   │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   │   ├── fields.go
    │   │   │   │   │   │   ├── lastapplied.go
    │   │   │   │   │   │   ├── lastappliedmanager.go
    │   │   │   │   │   │   ├── lastappliedupdater.go
    │   │   │   │   │   │   ├── managedfields.go
    │   │   │   │   │   │   ├── managedfieldsupdater.go
    │   │   │   │   │   │   ├── manager.go
    │   │   │   │   │   │   ├── pathelement.go
    │   │   │   │   │   │   ├── skipnonapplied.go
    │   │   │   │   │   │   ├── stripmeta.go
    │   │   │   │   │   │   ├── structuredmerge.go
    │   │   │   │   │   │   ├── typeconverter.go
    │   │   │   │   │   │   └── versionconverter.go
    │   │   │   │   │   ├── node.yaml
    │   │   │   │   │   ├── pod.yaml
    │   │   │   │   │   ├── scalehandler.go
    │   │   │   │   │   └── typeconverter.go
    │   │   │   │   ├── mergepatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── naming/
    │   │   │   │   │   └── from_stack.go
    │   │   │   │   ├── net/
    │   │   │   │   │   ├── http.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── port_range.go
    │   │   │   │   │   ├── port_split.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── runtime/
    │   │   │   │   │   └── runtime.go
    │   │   │   │   ├── sets/
    │   │   │   │   │   ├── byte.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── empty.go
    │   │   │   │   │   ├── int.go
    │   │   │   │   │   ├── int32.go
    │   │   │   │   │   ├── int64.go
    │   │   │   │   │   ├── ordered.go
    │   │   │   │   │   ├── set.go
    │   │   │   │   │   └── string.go
    │   │   │   │   ├── strategicpatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── patch.go
    │   │   │   │   │   └── types.go
    │   │   │   │   ├── validation/
    │   │   │   │   │   ├── field/
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   └── path.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   ├── wait/
    │   │   │   │   │   ├── backoff.go
    │   │   │   │   │   ├── delay.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── error.go
    │   │   │   │   │   ├── loop.go
    │   │   │   │   │   ├── poll.go
    │   │   │   │   │   ├── timer.go
    │   │   │   │   │   └── wait.go
    │   │   │   │   └── yaml/
    │   │   │   │       └── decoder.go
    │   │   │   ├── version/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   └── types.go
    │   │   │   └── watch/
    │   │   │       ├── doc.go
    │   │   │       ├── filter.go
    │   │   │       ├── mux.go
    │   │   │       ├── streamwatcher.go
    │   │   │       ├── watch.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   └── third_party/
    │   │       └── forked/
    │   │           └── golang/
    │   │               ├── LICENSE
    │   │               ├── PATENTS
    │   │               ├── json/
    │   │               │   ├── OWNERS
    │   │               │   └── fields.go
    │   │               └── reflect/
    │   │                   └── deep_equal.go
    │   ├── client-go/
    │   │   ├── LICENSE
    │   │   ├── applyconfigurations/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── mutatingwebhook.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── rule.go
    │   │   │   │   │   ├── rulewithoperations.go
    │   │   │   │   │   ├── servicereference.go
    │   │   │   │   │   ├── validatingwebhook.go
    │   │   │   │   │   ├── validatingwebhookconfiguration.go
    │   │   │   │   │   └── webhookclientconfig.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── matchcondition.go
    │   │   │   │       ├── mutatingwebhook.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── servicereference.go
    │   │   │   │       ├── validatingwebhook.go
    │   │   │   │       ├── validatingwebhookconfiguration.go
    │   │   │   │       └── webhookclientconfig.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── serverstorageversion.go
    │   │   │   │       ├── storageversion.go
    │   │   │   │       ├── storageversioncondition.go
    │   │   │   │       └── storageversionstatus.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonsetcondition.go
    │   │   │   │   │   ├── daemonsetspec.go
    │   │   │   │   │   ├── daemonsetstatus.go
    │   │   │   │   │   ├── daemonsetupdatestrategy.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicasetcondition.go
    │   │   │   │   │   ├── replicasetspec.go
    │   │   │   │   │   ├── replicasetstatus.go
    │   │   │   │   │   ├── rollingupdatedaemonset.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── rollbackconfig.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │       ├── scale.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       ├── statefulsetcondition.go
    │   │   │   │       ├── statefulsetordinals.go
    │   │   │   │       ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │       ├── statefulsetspec.go
    │   │   │   │       ├── statefulsetstatus.go
    │   │   │   │       └── statefulsetupdatestrategy.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── scale.go
    │   │   │   │   │   ├── scalespec.go
    │   │   │   │   │   └── scalestatus.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerbehavior.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── hpascalingpolicy.go
    │   │   │   │   │   ├── hpascalingrules.go
    │   │   │   │   │   ├── metricidentifier.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── metrictarget.go
    │   │   │   │   │   ├── metricvaluestatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── containerresourcemetricsource.go
    │   │   │   │       ├── containerresourcemetricstatus.go
    │   │   │   │       ├── crossversionobjectreference.go
    │   │   │   │       ├── externalmetricsource.go
    │   │   │   │       ├── externalmetricstatus.go
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       ├── horizontalpodautoscalerbehavior.go
    │   │   │   │       ├── horizontalpodautoscalercondition.go
    │   │   │   │       ├── horizontalpodautoscalerspec.go
    │   │   │   │       ├── horizontalpodautoscalerstatus.go
    │   │   │   │       ├── hpascalingpolicy.go
    │   │   │   │       ├── hpascalingrules.go
    │   │   │   │       ├── metricidentifier.go
    │   │   │   │       ├── metricspec.go
    │   │   │   │       ├── metricstatus.go
    │   │   │   │       ├── metrictarget.go
    │   │   │   │       ├── metricvaluestatus.go
    │   │   │   │       ├── objectmetricsource.go
    │   │   │   │       ├── objectmetricstatus.go
    │   │   │   │       ├── podsmetricsource.go
    │   │   │   │       ├── podsmetricstatus.go
    │   │   │   │       ├── resourcemetricsource.go
    │   │   │   │       └── resourcemetricstatus.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── cronjobspec.go
    │   │   │   │   │   ├── cronjobstatus.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   ├── jobcondition.go
    │   │   │   │   │   ├── jobspec.go
    │   │   │   │   │   ├── jobstatus.go
    │   │   │   │   │   ├── jobtemplatespec.go
    │   │   │   │   │   ├── podfailurepolicy.go
    │   │   │   │   │   ├── podfailurepolicyonexitcodesrequirement.go
    │   │   │   │   │   ├── podfailurepolicyonpodconditionspattern.go
    │   │   │   │   │   ├── podfailurepolicyrule.go
    │   │   │   │   │   └── uncountedterminatedpods.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       ├── cronjobspec.go
    │   │   │   │       ├── cronjobstatus.go
    │   │   │   │       └── jobtemplatespec.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   ├── certificatesigningrequestcondition.go
    │   │   │   │   │   ├── certificatesigningrequestspec.go
    │   │   │   │   │   └── certificatesigningrequeststatus.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── clustertrustbundlespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       ├── certificatesigningrequestcondition.go
    │   │   │   │       ├── certificatesigningrequestspec.go
    │   │   │   │       └── certificatesigningrequeststatus.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── lease.go
    │   │   │   │   │   └── leasespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── lease.go
    │   │   │   │       └── leasespec.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── affinity.go
    │   │   │   │       ├── attachedvolume.go
    │   │   │   │       ├── awselasticblockstorevolumesource.go
    │   │   │   │       ├── azurediskvolumesource.go
    │   │   │   │       ├── azurefilepersistentvolumesource.go
    │   │   │   │       ├── azurefilevolumesource.go
    │   │   │   │       ├── capabilities.go
    │   │   │   │       ├── cephfspersistentvolumesource.go
    │   │   │   │       ├── cephfsvolumesource.go
    │   │   │   │       ├── cinderpersistentvolumesource.go
    │   │   │   │       ├── cindervolumesource.go
    │   │   │   │       ├── claimsource.go
    │   │   │   │       ├── clientipconfig.go
    │   │   │   │       ├── componentcondition.go
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── configmapenvsource.go
    │   │   │   │       ├── configmapkeyselector.go
    │   │   │   │       ├── configmapnodeconfigsource.go
    │   │   │   │       ├── configmapprojection.go
    │   │   │   │       ├── configmapvolumesource.go
    │   │   │   │       ├── container.go
    │   │   │   │       ├── containerimage.go
    │   │   │   │       ├── containerport.go
    │   │   │   │       ├── containerresizepolicy.go
    │   │   │   │       ├── containerstate.go
    │   │   │   │       ├── containerstaterunning.go
    │   │   │   │       ├── containerstateterminated.go
    │   │   │   │       ├── containerstatewaiting.go
    │   │   │   │       ├── containerstatus.go
    │   │   │   │       ├── csipersistentvolumesource.go
    │   │   │   │       ├── csivolumesource.go
    │   │   │   │       ├── daemonendpoint.go
    │   │   │   │       ├── downwardapiprojection.go
    │   │   │   │       ├── downwardapivolumefile.go
    │   │   │   │       ├── downwardapivolumesource.go
    │   │   │   │       ├── emptydirvolumesource.go
    │   │   │   │       ├── endpointaddress.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── endpointsubset.go
    │   │   │   │       ├── envfromsource.go
    │   │   │   │       ├── envvar.go
    │   │   │   │       ├── envvarsource.go
    │   │   │   │       ├── ephemeralcontainer.go
    │   │   │   │       ├── ephemeralcontainercommon.go
    │   │   │   │       ├── ephemeralvolumesource.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── eventseries.go
    │   │   │   │       ├── eventsource.go
    │   │   │   │       ├── execaction.go
    │   │   │   │       ├── fcvolumesource.go
    │   │   │   │       ├── flexpersistentvolumesource.go
    │   │   │   │       ├── flexvolumesource.go
    │   │   │   │       ├── flockervolumesource.go
    │   │   │   │       ├── gcepersistentdiskvolumesource.go
    │   │   │   │       ├── gitrepovolumesource.go
    │   │   │   │       ├── glusterfspersistentvolumesource.go
    │   │   │   │       ├── glusterfsvolumesource.go
    │   │   │   │       ├── grpcaction.go
    │   │   │   │       ├── hostalias.go
    │   │   │   │       ├── hostpathvolumesource.go
    │   │   │   │       ├── httpgetaction.go
    │   │   │   │       ├── httpheader.go
    │   │   │   │       ├── iscsipersistentvolumesource.go
    │   │   │   │       ├── iscsivolumesource.go
    │   │   │   │       ├── keytopath.go
    │   │   │   │       ├── lifecycle.go
    │   │   │   │       ├── lifecyclehandler.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── limitrangeitem.go
    │   │   │   │       ├── limitrangespec.go
    │   │   │   │       ├── loadbalanceringress.go
    │   │   │   │       ├── loadbalancerstatus.go
    │   │   │   │       ├── localobjectreference.go
    │   │   │   │       ├── localvolumesource.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── namespacecondition.go
    │   │   │   │       ├── namespacespec.go
    │   │   │   │       ├── namespacestatus.go
    │   │   │   │       ├── nfsvolumesource.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── nodeaddress.go
    │   │   │   │       ├── nodeaffinity.go
    │   │   │   │       ├── nodecondition.go
    │   │   │   │       ├── nodeconfigsource.go
    │   │   │   │       ├── nodeconfigstatus.go
    │   │   │   │       ├── nodedaemonendpoints.go
    │   │   │   │       ├── nodeselector.go
    │   │   │   │       ├── nodeselectorrequirement.go
    │   │   │   │       ├── nodeselectorterm.go
    │   │   │   │       ├── nodespec.go
    │   │   │   │       ├── nodestatus.go
    │   │   │   │       ├── nodesysteminfo.go
    │   │   │   │       ├── objectfieldselector.go
    │   │   │   │       ├── objectreference.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── persistentvolumeclaimcondition.go
    │   │   │   │       ├── persistentvolumeclaimspec.go
    │   │   │   │       ├── persistentvolumeclaimstatus.go
    │   │   │   │       ├── persistentvolumeclaimtemplate.go
    │   │   │   │       ├── persistentvolumeclaimvolumesource.go
    │   │   │   │       ├── persistentvolumesource.go
    │   │   │   │       ├── persistentvolumespec.go
    │   │   │   │       ├── persistentvolumestatus.go
    │   │   │   │       ├── photonpersistentdiskvolumesource.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podaffinity.go
    │   │   │   │       ├── podaffinityterm.go
    │   │   │   │       ├── podantiaffinity.go
    │   │   │   │       ├── podcondition.go
    │   │   │   │       ├── poddnsconfig.go
    │   │   │   │       ├── poddnsconfigoption.go
    │   │   │   │       ├── podip.go
    │   │   │   │       ├── podos.go
    │   │   │   │       ├── podreadinessgate.go
    │   │   │   │       ├── podresourceclaim.go
    │   │   │   │       ├── podschedulinggate.go
    │   │   │   │       ├── podsecuritycontext.go
    │   │   │   │       ├── podspec.go
    │   │   │   │       ├── podstatus.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── podtemplatespec.go
    │   │   │   │       ├── portstatus.go
    │   │   │   │       ├── portworxvolumesource.go
    │   │   │   │       ├── preferredschedulingterm.go
    │   │   │   │       ├── probe.go
    │   │   │   │       ├── probehandler.go
    │   │   │   │       ├── projectedvolumesource.go
    │   │   │   │       ├── quobytevolumesource.go
    │   │   │   │       ├── rbdpersistentvolumesource.go
    │   │   │   │       ├── rbdvolumesource.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontrollercondition.go
    │   │   │   │       ├── replicationcontrollerspec.go
    │   │   │   │       ├── replicationcontrollerstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourcefieldselector.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── resourcequotaspec.go
    │   │   │   │       ├── resourcequotastatus.go
    │   │   │   │       ├── resourcerequirements.go
    │   │   │   │       ├── scaleiopersistentvolumesource.go
    │   │   │   │       ├── scaleiovolumesource.go
    │   │   │   │       ├── scopedresourceselectorrequirement.go
    │   │   │   │       ├── scopeselector.go
    │   │   │   │       ├── seccompprofile.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── secretenvsource.go
    │   │   │   │       ├── secretkeyselector.go
    │   │   │   │       ├── secretprojection.go
    │   │   │   │       ├── secretreference.go
    │   │   │   │       ├── secretvolumesource.go
    │   │   │   │       ├── securitycontext.go
    │   │   │   │       ├── selinuxoptions.go
    │   │   │   │       ├── service.go
    │   │   │   │       ├── serviceaccount.go
    │   │   │   │       ├── serviceaccounttokenprojection.go
    │   │   │   │       ├── serviceport.go
    │   │   │   │       ├── servicespec.go
    │   │   │   │       ├── servicestatus.go
    │   │   │   │       ├── sessionaffinityconfig.go
    │   │   │   │       ├── storageospersistentvolumesource.go
    │   │   │   │       ├── storageosvolumesource.go
    │   │   │   │       ├── sysctl.go
    │   │   │   │       ├── taint.go
    │   │   │   │       ├── tcpsocketaction.go
    │   │   │   │       ├── toleration.go
    │   │   │   │       ├── topologyselectorlabelrequirement.go
    │   │   │   │       ├── topologyselectorterm.go
    │   │   │   │       ├── topologyspreadconstraint.go
    │   │   │   │       ├── typedlocalobjectreference.go
    │   │   │   │       ├── typedobjectreference.go
    │   │   │   │       ├── volume.go
    │   │   │   │       ├── volumedevice.go
    │   │   │   │       ├── volumemount.go
    │   │   │   │       ├── volumenodeaffinity.go
    │   │   │   │       ├── volumeprojection.go
    │   │   │   │       ├── volumesource.go
    │   │   │   │       ├── vspherevirtualdiskvolumesource.go
    │   │   │   │       ├── weightedpodaffinityterm.go
    │   │   │   │       └── windowssecuritycontextoptions.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpoint.go
    │   │   │   │   │   ├── endpointconditions.go
    │   │   │   │   │   ├── endpointhints.go
    │   │   │   │   │   ├── endpointport.go
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── forzone.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpoint.go
    │   │   │   │       ├── endpointconditions.go
    │   │   │   │       ├── endpointhints.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── forzone.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── eventseries.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── eventseries.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipblock.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── networkpolicyegressrule.go
    │   │   │   │       ├── networkpolicyingressrule.go
    │   │   │   │       ├── networkpolicypeer.go
    │   │   │   │       ├── networkpolicyport.go
    │   │   │   │       ├── networkpolicyspec.go
    │   │   │   │       ├── networkpolicystatus.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollbackconfig.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       └── scale.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── flowdistinguishermethod.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── flowschemacondition.go
    │   │   │   │       ├── flowschemaspec.go
    │   │   │   │       ├── flowschemastatus.go
    │   │   │   │       ├── groupsubject.go
    │   │   │   │       ├── limitedprioritylevelconfiguration.go
    │   │   │   │       ├── limitresponse.go
    │   │   │   │       ├── nonresourcepolicyrule.go
    │   │   │   │       ├── policyruleswithsubjects.go
    │   │   │   │       ├── prioritylevelconfiguration.go
    │   │   │   │       ├── prioritylevelconfigurationcondition.go
    │   │   │   │       ├── prioritylevelconfigurationreference.go
    │   │   │   │       ├── prioritylevelconfigurationspec.go
    │   │   │   │       ├── prioritylevelconfigurationstatus.go
    │   │   │   │       ├── queuingconfiguration.go
    │   │   │   │       ├── resourcepolicyrule.go
    │   │   │   │       ├── serviceaccountsubject.go
    │   │   │   │       ├── subject.go
    │   │   │   │       └── usersubject.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   ├── meta/
    │   │   │   │   └── v1/
    │   │   │   │       ├── condition.go
    │   │   │   │       ├── deleteoptions.go
    │   │   │   │       ├── labelselector.go
    │   │   │   │       ├── labelselectorrequirement.go
    │   │   │   │       ├── managedfieldsentry.go
    │   │   │   │       ├── objectmeta.go
    │   │   │   │       ├── ownerreference.go
    │   │   │   │       ├── preconditions.go
    │   │   │   │       ├── typemeta.go
    │   │   │   │       └── unstructured.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── httpingresspath.go
    │   │   │   │   │   ├── httpingressrulevalue.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressbackend.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── ingressclassparametersreference.go
    │   │   │   │   │   ├── ingressclassspec.go
    │   │   │   │   │   ├── ingressloadbalanceringress.go
    │   │   │   │   │   ├── ingressloadbalancerstatus.go
    │   │   │   │   │   ├── ingressportstatus.go
    │   │   │   │   │   ├── ingressrule.go
    │   │   │   │   │   ├── ingressrulevalue.go
    │   │   │   │   │   ├── ingressservicebackend.go
    │   │   │   │   │   ├── ingressspec.go
    │   │   │   │   │   ├── ingressstatus.go
    │   │   │   │   │   ├── ingresstls.go
    │   │   │   │   │   ├── ipblock.go
    │   │   │   │   │   ├── networkpolicy.go
    │   │   │   │   │   ├── networkpolicyegressrule.go
    │   │   │   │   │   ├── networkpolicyingressrule.go
    │   │   │   │   │   ├── networkpolicypeer.go
    │   │   │   │   │   ├── networkpolicyport.go
    │   │   │   │   │   ├── networkpolicyspec.go
    │   │   │   │   │   ├── networkpolicystatus.go
    │   │   │   │   │   └── servicebackendport.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustercidr.go
    │   │   │   │   │   ├── clustercidrspec.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   ├── ipaddressspec.go
    │   │   │   │   │   └── parentreference.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ingressclassparametersreference.go
    │   │   │   │       ├── ingressclassspec.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       └── ingresstls.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   ├── runtimeclassspec.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── overhead.go
    │   │   │   │       ├── runtimeclass.go
    │   │   │   │       └── scheduling.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   ├── poddisruptionbudgetspec.go
    │   │   │   │   │   └── poddisruptionbudgetstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── allowedcsidriver.go
    │   │   │   │       ├── allowedflexvolume.go
    │   │   │   │       ├── allowedhostpath.go
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── fsgroupstrategyoptions.go
    │   │   │   │       ├── hostportrange.go
    │   │   │   │       ├── idrange.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       ├── poddisruptionbudgetspec.go
    │   │   │   │       ├── poddisruptionbudgetstatus.go
    │   │   │   │       ├── podsecuritypolicy.go
    │   │   │   │       ├── podsecuritypolicyspec.go
    │   │   │   │       ├── runasgroupstrategyoptions.go
    │   │   │   │       ├── runasuserstrategyoptions.go
    │   │   │   │       ├── runtimeclassstrategyoptions.go
    │   │   │   │       ├── selinuxstrategyoptions.go
    │   │   │   │       └── supplementalgroupsstrategyoptions.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── aggregationrule.go
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── policyrule.go
    │   │   │   │       ├── role.go
    │   │   │   │       ├── rolebinding.go
    │   │   │   │       ├── roleref.go
    │   │   │   │       └── subject.go
    │   │   │   ├── resource/
    │   │   │   │   └── v1alpha2/
    │   │   │   │       ├── allocationresult.go
    │   │   │   │       ├── podschedulingcontext.go
    │   │   │   │       ├── podschedulingcontextspec.go
    │   │   │   │       ├── podschedulingcontextstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimconsumerreference.go
    │   │   │   │       ├── resourceclaimparametersreference.go
    │   │   │   │       ├── resourceclaimschedulingstatus.go
    │   │   │   │       ├── resourceclaimspec.go
    │   │   │   │       ├── resourceclaimstatus.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       ├── resourceclaimtemplatespec.go
    │   │   │   │       ├── resourceclass.go
    │   │   │   │       ├── resourceclassparametersreference.go
    │   │   │   │       └── resourcehandle.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       └── priorityclass.go
    │   │   │   └── storage/
    │   │   │       ├── v1/
    │   │   │       │   ├── csidriver.go
    │   │   │       │   ├── csidriverspec.go
    │   │   │       │   ├── csinode.go
    │   │   │       │   ├── csinodedriver.go
    │   │   │       │   ├── csinodespec.go
    │   │   │       │   ├── csistoragecapacity.go
    │   │   │       │   ├── storageclass.go
    │   │   │       │   ├── tokenrequest.go
    │   │   │       │   ├── volumeattachment.go
    │   │   │       │   ├── volumeattachmentsource.go
    │   │   │       │   ├── volumeattachmentspec.go
    │   │   │       │   ├── volumeattachmentstatus.go
    │   │   │       │   ├── volumeerror.go
    │   │   │       │   └── volumenoderesources.go
    │   │   │       ├── v1alpha1/
    │   │   │       │   ├── csistoragecapacity.go
    │   │   │       │   ├── volumeattachment.go
    │   │   │       │   ├── volumeattachmentsource.go
    │   │   │       │   ├── volumeattachmentspec.go
    │   │   │       │   ├── volumeattachmentstatus.go
    │   │   │       │   └── volumeerror.go
    │   │   │       └── v1beta1/
    │   │   │           ├── csidriver.go
    │   │   │           ├── csidriverspec.go
    │   │   │           ├── csinode.go
    │   │   │           ├── csinodedriver.go
    │   │   │           ├── csinodespec.go
    │   │   │           ├── csistoragecapacity.go
    │   │   │           ├── storageclass.go
    │   │   │           ├── tokenrequest.go
    │   │   │           ├── volumeattachment.go
    │   │   │           ├── volumeattachmentsource.go
    │   │   │           ├── volumeattachmentspec.go
    │   │   │           ├── volumeattachmentstatus.go
    │   │   │           ├── volumeerror.go
    │   │   │           └── volumenoderesources.go
    │   │   ├── discovery/
    │   │   │   ├── aggregated_discovery.go
    │   │   │   ├── discovery_client.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   └── discovery.go
    │   │   │   └── helper.go
    │   │   ├── kubernetes/
    │   │   │   ├── clientset.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   ├── clientset_generated.go
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   ├── import.go
    │   │   │   ├── scheme/
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   └── typed/
    │   │   │       ├── admissionregistration/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │   │   │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingwebhookconfiguration.go
    │   │   │       │   │   └── validatingwebhookconfiguration.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   └── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   └── validatingadmissionpolicybinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── admissionregistration_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_admissionregistration_client.go
    │   │   │       │       │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │       │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── mutatingwebhookconfiguration.go
    │   │   │       │       └── validatingwebhookconfiguration.go
    │   │   │       ├── apiserverinternal/
    │   │   │       │   └── v1alpha1/
    │   │   │       │       ├── apiserverinternal_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apiserverinternal_client.go
    │   │   │       │       │   └── fake_storageversion.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── storageversion.go
    │   │   │       ├── apps/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── daemonset.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_daemonset.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   ├── fake_replicaset.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── replicaset.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   └── v1beta2/
    │   │   │       │       ├── apps_client.go
    │   │   │       │       ├── controllerrevision.go
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apps_client.go
    │   │   │       │       │   ├── fake_controllerrevision.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_replicaset.go
    │   │   │       │       │   └── fake_statefulset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── replicaset.go
    │   │   │       │       └── statefulset.go
    │   │   │       ├── authentication/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_tokenreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── tokenreview.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_selfsubjectreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── selfsubjectreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authentication_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authentication_client.go
    │   │   │       │       │   ├── fake_selfsubjectreview.go
    │   │   │       │       │   └── fake_tokenreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── selfsubjectreview.go
    │   │   │       │       └── tokenreview.go
    │   │   │       ├── authorization/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authorization_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authorization_client.go
    │   │   │       │   │   │   ├── fake_localsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │   │   │   └── fake_subjectaccessreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── localsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectrulesreview.go
    │   │   │       │   │   └── subjectaccessreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authorization_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authorization_client.go
    │   │   │       │       │   ├── fake_localsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │       │   └── fake_subjectaccessreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── localsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectrulesreview.go
    │   │   │       │       └── subjectaccessreview.go
    │   │   │       ├── autoscaling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2beta1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   └── v2beta2/
    │   │   │       │       ├── autoscaling_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_autoscaling_client.go
    │   │   │       │       │   └── fake_horizontalpodautoscaler.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── horizontalpodautoscaler.go
    │   │   │       ├── batch/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── batch_client.go
    │   │   │       │   │   ├── cronjob.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_batch_client.go
    │   │   │       │   │   │   ├── fake_cronjob.go
    │   │   │       │   │   │   └── fake_job.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── job.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── batch_client.go
    │   │   │       │       ├── cronjob.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_batch_client.go
    │   │   │       │       │   └── fake_cronjob.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── certificates/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── certificatesigningrequest.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_certificatesigningrequest.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── clustertrustbundle.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_clustertrustbundle.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── certificates_client.go
    │   │   │       │       ├── certificatesigningrequest.go
    │   │   │       │       ├── certificatesigningrequest_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_certificates_client.go
    │   │   │       │       │   ├── fake_certificatesigningrequest.go
    │   │   │       │       │   └── fake_certificatesigningrequest_expansion.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── coordination/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_lease.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── lease.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── coordination_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_coordination_client.go
    │   │   │       │       │   └── fake_lease.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── lease.go
    │   │   │       ├── core/
    │   │   │       │   └── v1/
    │   │   │       │       ├── componentstatus.go
    │   │   │       │       ├── configmap.go
    │   │   │       │       ├── core_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpoints.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_componentstatus.go
    │   │   │       │       │   ├── fake_configmap.go
    │   │   │       │       │   ├── fake_core_client.go
    │   │   │       │       │   ├── fake_endpoints.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   ├── fake_limitrange.go
    │   │   │       │       │   ├── fake_namespace.go
    │   │   │       │       │   ├── fake_namespace_expansion.go
    │   │   │       │       │   ├── fake_node.go
    │   │   │       │       │   ├── fake_node_expansion.go
    │   │   │       │       │   ├── fake_persistentvolume.go
    │   │   │       │       │   ├── fake_persistentvolumeclaim.go
    │   │   │       │       │   ├── fake_pod.go
    │   │   │       │       │   ├── fake_pod_expansion.go
    │   │   │       │       │   ├── fake_podtemplate.go
    │   │   │       │       │   ├── fake_replicationcontroller.go
    │   │   │       │       │   ├── fake_resourcequota.go
    │   │   │       │       │   ├── fake_secret.go
    │   │   │       │       │   ├── fake_service.go
    │   │   │       │       │   ├── fake_service_expansion.go
    │   │   │       │       │   └── fake_serviceaccount.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── limitrange.go
    │   │   │       │       ├── namespace.go
    │   │   │       │       ├── namespace_expansion.go
    │   │   │       │       ├── node.go
    │   │   │       │       ├── node_expansion.go
    │   │   │       │       ├── persistentvolume.go
    │   │   │       │       ├── persistentvolumeclaim.go
    │   │   │       │       ├── pod.go
    │   │   │       │       ├── pod_expansion.go
    │   │   │       │       ├── podtemplate.go
    │   │   │       │       ├── replicationcontroller.go
    │   │   │       │       ├── resourcequota.go
    │   │   │       │       ├── secret.go
    │   │   │       │       ├── service.go
    │   │   │       │       ├── service_expansion.go
    │   │   │       │       └── serviceaccount.go
    │   │   │       ├── discovery/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── discovery_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── endpointslice.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_discovery_client.go
    │   │   │       │   │   │   └── fake_endpointslice.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── discovery_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpointslice.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_discovery_client.go
    │   │   │       │       │   └── fake_endpointslice.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── events/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── event.go
    │   │   │       │   │   ├── events_client.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_event.go
    │   │   │       │   │   │   └── fake_events_client.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── events_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   └── fake_events_client.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── extensions/
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── deployment_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── extensions_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_deployment_expansion.go
    │   │   │       │       │   ├── fake_extensions_client.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_networkpolicy.go
    │   │   │       │       │   └── fake_replicaset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── networkpolicy.go
    │   │   │       │       └── replicaset.go
    │   │   │       ├── flowcontrol/
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta2/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   └── v1beta3/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_flowcontrol_client.go
    │   │   │       │       │   ├── fake_flowschema.go
    │   │   │       │       │   └── fake_prioritylevelconfiguration.go
    │   │   │       │       ├── flowcontrol_client.go
    │   │   │       │       ├── flowschema.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── prioritylevelconfiguration.go
    │   │   │       ├── networking/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ingress.go
    │   │   │       │   │   │   ├── fake_ingressclass.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_networkpolicy.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ingress.go
    │   │   │       │   │   ├── ingressclass.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── networkpolicy.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clustercidr.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clustercidr.go
    │   │   │       │   │   │   ├── fake_ipaddress.go
    │   │   │       │   │   │   └── fake_networking_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ipaddress.go
    │   │   │       │   │   └── networking_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_ingressclass.go
    │   │   │       │       │   └── fake_networking_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── ingressclass.go
    │   │   │       │       └── networking_client.go
    │   │   │       ├── node/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_node_client.go
    │   │   │       │       │   └── fake_runtimeclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── node_client.go
    │   │   │       │       └── runtimeclass.go
    │   │   │       ├── policy/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── eviction.go
    │   │   │       │   │   ├── eviction_expansion.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_eviction.go
    │   │   │       │   │   │   ├── fake_eviction_expansion.go
    │   │   │       │   │   │   ├── fake_poddisruptionbudget.go
    │   │   │       │   │   │   └── fake_policy_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── poddisruptionbudget.go
    │   │   │       │   │   └── policy_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── eviction.go
    │   │   │       │       ├── eviction_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_eviction.go
    │   │   │       │       │   ├── fake_eviction_expansion.go
    │   │   │       │       │   ├── fake_poddisruptionbudget.go
    │   │   │       │       │   ├── fake_podsecuritypolicy.go
    │   │   │       │       │   └── fake_policy_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── poddisruptionbudget.go
    │   │   │       │       ├── podsecuritypolicy.go
    │   │   │       │       └── policy_client.go
    │   │   │       ├── rbac/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── clusterrole.go
    │   │   │       │       ├── clusterrolebinding.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_clusterrole.go
    │   │   │       │       │   ├── fake_clusterrolebinding.go
    │   │   │       │       │   ├── fake_rbac_client.go
    │   │   │       │       │   ├── fake_role.go
    │   │   │       │       │   └── fake_rolebinding.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── rbac_client.go
    │   │   │       │       ├── role.go
    │   │   │       │       └── rolebinding.go
    │   │   │       ├── resource/
    │   │   │       │   └── v1alpha2/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_podschedulingcontext.go
    │   │   │       │       │   ├── fake_resource_client.go
    │   │   │       │       │   ├── fake_resourceclaim.go
    │   │   │       │       │   ├── fake_resourceclaimtemplate.go
    │   │   │       │       │   └── fake_resourceclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── podschedulingcontext.go
    │   │   │       │       ├── resource_client.go
    │   │   │       │       ├── resourceclaim.go
    │   │   │       │       ├── resourceclaimtemplate.go
    │   │   │       │       └── resourceclass.go
    │   │   │       ├── scheduling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_priorityclass.go
    │   │   │       │       │   └── fake_scheduling_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── priorityclass.go
    │   │   │       │       └── scheduling_client.go
    │   │   │       └── storage/
    │   │   │           ├── v1/
    │   │   │           │   ├── csidriver.go
    │   │   │           │   ├── csinode.go
    │   │   │           │   ├── csistoragecapacity.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fake/
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── fake_csidriver.go
    │   │   │           │   │   ├── fake_csinode.go
    │   │   │           │   │   ├── fake_csistoragecapacity.go
    │   │   │           │   │   ├── fake_storage_client.go
    │   │   │           │   │   ├── fake_storageclass.go
    │   │   │           │   │   └── fake_volumeattachment.go
    │   │   │           │   ├── generated_expansion.go
    │   │   │           │   ├── storage_client.go
    │   │   │           │   ├── storageclass.go
    │   │   │           │   └── volumeattachment.go
    │   │   │           ├── v1alpha1/
    │   │   │           │   ├── csistoragecapacity.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fake/
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── fake_csistoragecapacity.go
    │   │   │           │   │   ├── fake_storage_client.go
    │   │   │           │   │   └── fake_volumeattachment.go
    │   │   │           │   ├── generated_expansion.go
    │   │   │           │   ├── storage_client.go
    │   │   │           │   └── volumeattachment.go
    │   │   │           └── v1beta1/
    │   │   │               ├── csidriver.go
    │   │   │               ├── csinode.go
    │   │   │               ├── csistoragecapacity.go
    │   │   │               ├── doc.go
    │   │   │               ├── fake/
    │   │   │               │   ├── doc.go
    │   │   │               │   ├── fake_csidriver.go
    │   │   │               │   ├── fake_csinode.go
    │   │   │               │   ├── fake_csistoragecapacity.go
    │   │   │               │   ├── fake_storage_client.go
    │   │   │               │   ├── fake_storageclass.go
    │   │   │               │   └── fake_volumeattachment.go
    │   │   │               ├── generated_expansion.go
    │   │   │               ├── storage_client.go
    │   │   │               ├── storageclass.go
    │   │   │               └── volumeattachment.go
    │   │   ├── openapi/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   └── groupversion.go
    │   │   ├── pkg/
    │   │   │   ├── apis/
    │   │   │   │   └── clientauthentication/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── install/
    │   │   │   │       │   └── install.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       ├── v1beta1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   └── version/
    │   │   │       ├── base.go
    │   │   │       ├── doc.go
    │   │   │       └── version.go
    │   │   ├── plugin/
    │   │   │   └── pkg/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── exec/
    │   │   │                   ├── exec.go
    │   │   │                   └── metrics.go
    │   │   ├── rest/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── config.go
    │   │   │   ├── exec.go
    │   │   │   ├── fake/
    │   │   │   │   └── fake.go
    │   │   │   ├── plugin.go
    │   │   │   ├── request.go
    │   │   │   ├── transport.go
    │   │   │   ├── url_utils.go
    │   │   │   ├── urlbackoff.go
    │   │   │   ├── warnings.go
    │   │   │   ├── watch/
    │   │   │   │   ├── decoder.go
    │   │   │   │   └── encoder.go
    │   │   │   ├── with_retry.go
    │   │   │   └── zz_generated.deepcopy.go
    │   │   ├── testing/
    │   │   │   ├── actions.go
    │   │   │   ├── fake.go
    │   │   │   ├── fixture.go
    │   │   │   └── interface.go
    │   │   ├── tools/
    │   │   │   ├── clientcmd/
    │   │   │   │   └── api/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── helpers.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   ├── metrics/
    │   │   │   │   ├── OWNERS
    │   │   │   │   └── metrics.go
    │   │   │   ├── record/
    │   │   │   │   ├── OWNERS
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── event.go
    │   │   │   │   ├── events_cache.go
    │   │   │   │   ├── fake.go
    │   │   │   │   └── util/
    │   │   │   │       └── util.go
    │   │   │   └── reference/
    │   │   │       └── ref.go
    │   │   ├── transport/
    │   │   │   ├── OWNERS
    │   │   │   ├── cache.go
    │   │   │   ├── cache_go118.go
    │   │   │   ├── cert_rotation.go
    │   │   │   ├── config.go
    │   │   │   ├── round_trippers.go
    │   │   │   ├── token_source.go
    │   │   │   └── transport.go
    │   │   └── util/
    │   │       ├── cert/
    │   │       │   ├── OWNERS
    │   │       │   ├── cert.go
    │   │       │   ├── csr.go
    │   │       │   ├── io.go
    │   │       │   ├── pem.go
    │   │       │   └── server_inspection.go
    │   │       ├── connrotation/
    │   │       │   └── connrotation.go
    │   │       ├── flowcontrol/
    │   │       │   ├── backoff.go
    │   │       │   └── throttle.go
    │   │       ├── keyutil/
    │   │       │   ├── OWNERS
    │   │       │   └── key.go
    │   │       └── workqueue/
    │   │           ├── default_rate_limiters.go
    │   │           ├── delaying_queue.go
    │   │           ├── doc.go
    │   │           ├── metrics.go
    │   │           ├── parallelizer.go
    │   │           ├── queue.go
    │   │           └── rate_limiting_queue.go
    │   ├── cri-api/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       └── apis/
    │   │           └── runtime/
    │   │               └── v1/
    │   │                   ├── api.pb.go
    │   │                   ├── api.proto
    │   │                   └── constants.go
    │   ├── klog/
    │   │   └── v2/
    │   │       ├── .gitignore
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── RELEASE.md
    │   │       ├── SECURITY.md
    │   │       ├── SECURITY_CONTACTS
    │   │       ├── code-of-conduct.md
    │   │       ├── contextual.go
    │   │       ├── exit.go
    │   │       ├── imports.go
    │   │       ├── internal/
    │   │       │   ├── buffer/
    │   │       │   │   └── buffer.go
    │   │       │   ├── clock/
    │   │       │   │   ├── README.md
    │   │       │   │   └── clock.go
    │   │       │   ├── dbg/
    │   │       │   │   └── dbg.go
    │   │       │   ├── serialize/
    │   │       │   │   └── keyvalues.go
    │   │       │   └── severity/
    │   │       │       └── severity.go
    │   │       ├── k8s_references.go
    │   │       ├── klog.go
    │   │       ├── klog_file.go
    │   │       ├── klog_file_others.go
    │   │       ├── klog_file_windows.go
    │   │       └── klogr.go
    │   ├── kube-openapi/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       ├── builder3/
    │   │       │   └── util/
    │   │       │       └── util.go
    │   │       ├── cached/
    │   │       │   └── cache.go
    │   │       ├── common/
    │   │       │   ├── common.go
    │   │       │   ├── doc.go
    │   │       │   └── interfaces.go
    │   │       ├── handler3/
    │   │       │   └── handler.go
    │   │       ├── internal/
    │   │       │   ├── flags.go
    │   │       │   ├── serialization.go
    │   │       │   └── third_party/
    │   │       │       └── go-json-experiment/
    │   │       │           └── json/
    │   │       │               ├── AUTHORS
    │   │       │               ├── CONTRIBUTORS
    │   │       │               ├── LICENSE
    │   │       │               ├── README.md
    │   │       │               ├── arshal.go
    │   │       │               ├── arshal_any.go
    │   │       │               ├── arshal_default.go
    │   │       │               ├── arshal_funcs.go
    │   │       │               ├── arshal_inlined.go
    │   │       │               ├── arshal_methods.go
    │   │       │               ├── arshal_time.go
    │   │       │               ├── decode.go
    │   │       │               ├── doc.go
    │   │       │               ├── encode.go
    │   │       │               ├── errors.go
    │   │       │               ├── fields.go
    │   │       │               ├── fold.go
    │   │       │               ├── intern.go
    │   │       │               ├── pools.go
    │   │       │               ├── state.go
    │   │       │               ├── token.go
    │   │       │               └── value.go
    │   │       ├── openapiconv/
    │   │       │   └── convert.go
    │   │       ├── schemaconv/
    │   │       │   ├── openapi.go
    │   │       │   ├── proto_models.go
    │   │       │   └── smd.go
    │   │       ├── schemamutation/
    │   │       │   └── walker.go
    │   │       ├── spec3/
    │   │       │   ├── component.go
    │   │       │   ├── encoding.go
    │   │       │   ├── example.go
    │   │       │   ├── external_documentation.go
    │   │       │   ├── fuzz.go
    │   │       │   ├── header.go
    │   │       │   ├── media_type.go
    │   │       │   ├── operation.go
    │   │       │   ├── parameter.go
    │   │       │   ├── path.go
    │   │       │   ├── request_body.go
    │   │       │   ├── response.go
    │   │       │   ├── security_scheme.go
    │   │       │   ├── server.go
    │   │       │   └── spec.go
    │   │       ├── util/
    │   │       │   └── proto/
    │   │       │       ├── OWNERS
    │   │       │       ├── doc.go
    │   │       │       ├── document.go
    │   │       │       ├── document_v3.go
    │   │       │       └── openapi.go
    │   │       └── validation/
    │   │           └── spec/
    │   │               ├── .gitignore
    │   │               ├── LICENSE
    │   │               ├── contact_info.go
    │   │               ├── external_docs.go
    │   │               ├── fuzz.go
    │   │               ├── gnostic.go
    │   │               ├── header.go
    │   │               ├── info.go
    │   │               ├── items.go
    │   │               ├── license.go
    │   │               ├── operation.go
    │   │               ├── parameter.go
    │   │               ├── path_item.go
    │   │               ├── paths.go
    │   │               ├── ref.go
    │   │               ├── response.go
    │   │               ├── responses.go
    │   │               ├── schema.go
    │   │               ├── security_scheme.go
    │   │               ├── swagger.go
    │   │               └── tag.go
    │   ├── kubelet/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       └── apis/
    │   │           ├── deviceplugin/
    │   │           │   └── v1beta1/
    │   │           │       ├── api.pb.go
    │   │           │       ├── api.proto
    │   │           │       └── constants.go
    │   │           └── podresources/
    │   │               └── v1alpha1/
    │   │                   ├── api.pb.go
    │   │                   └── api.proto
    │   └── utils/
    │       ├── LICENSE
    │       ├── clock/
    │       │   ├── README.md
    │       │   ├── clock.go
    │       │   └── testing/
    │       │       ├── fake_clock.go
    │       │       └── simple_interval_clock.go
    │       ├── integer/
    │       │   └── integer.go
    │       ├── internal/
    │       │   └── third_party/
    │       │       └── forked/
    │       │           └── golang/
    │       │               ├── LICENSE
    │       │               ├── PATENTS
    │       │               └── net/
    │       │                   ├── ip.go
    │       │                   └── parse.go
    │       ├── net/
    │       │   ├── ipfamily.go
    │       │   ├── ipnet.go
    │       │   ├── net.go
    │       │   ├── parse.go
    │       │   └── port.go
    │       └── strings/
    │           └── slices/
    │               └── slices.go
    ├── modules.txt
    └── sigs.k8s.io/
        ├── json/
        │   ├── CONTRIBUTING.md
        │   ├── LICENSE
        │   ├── Makefile
        │   ├── OWNERS
        │   ├── README.md
        │   ├── SECURITY.md
        │   ├── SECURITY_CONTACTS
        │   ├── code-of-conduct.md
        │   ├── doc.go
        │   ├── internal/
        │   │   └── golang/
        │   │       └── encoding/
        │   │           └── json/
        │   │               ├── decode.go
        │   │               ├── encode.go
        │   │               ├── fold.go
        │   │               ├── fuzz.go
        │   │               ├── indent.go
        │   │               ├── kubernetes_patch.go
        │   │               ├── scanner.go
        │   │               ├── stream.go
        │   │               ├── tables.go
        │   │               └── tags.go
        │   └── json.go
        ├── structured-merge-diff/
        │   └── v4/
        │       ├── LICENSE
        │       ├── fieldpath/
        │       │   ├── doc.go
        │       │   ├── element.go
        │       │   ├── fromvalue.go
        │       │   ├── managers.go
        │       │   ├── path.go
        │       │   ├── pathelementmap.go
        │       │   ├── serialize-pe.go
        │       │   ├── serialize.go
        │       │   └── set.go
        │       ├── merge/
        │       │   ├── conflict.go
        │       │   └── update.go
        │       ├── schema/
        │       │   ├── doc.go
        │       │   ├── elements.go
        │       │   ├── equals.go
        │       │   └── schemaschema.go
        │       ├── typed/
        │       │   ├── doc.go
        │       │   ├── helpers.go
        │       │   ├── merge.go
        │       │   ├── parser.go
        │       │   ├── reconcile_schema.go
        │       │   ├── remove.go
        │       │   ├── tofieldset.go
        │       │   ├── typed.go
        │       │   ├── union.go
        │       │   └── validate.go
        │       └── value/
        │           ├── allocator.go
        │           ├── doc.go
        │           ├── fields.go
        │           ├── jsontagutil.go
        │           ├── list.go
        │           ├── listreflect.go
        │           ├── listunstructured.go
        │           ├── map.go
        │           ├── mapreflect.go
        │           ├── mapunstructured.go
        │           ├── reflectcache.go
        │           ├── scalar.go
        │           ├── structreflect.go
        │           ├── value.go
        │           ├── valuereflect.go
        │           └── valueunstructured.go
        └── yaml/
            ├── .gitignore
            ├── .travis.yml
            ├── CONTRIBUTING.md
            ├── LICENSE
            ├── OWNERS
            ├── README.md
            ├── RELEASE.md
            ├── SECURITY_CONTACTS
            ├── code-of-conduct.md
            ├── fields.go
            ├── yaml.go
            └── yaml_go110.go

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/dependabot.yml
================================================
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---

version: 2
updates:
- package-ecosystem: docker
  directory: /nvidia-driver-installer/ubuntu
  schedule:
    interval: weekly
- package-ecosystem: docker
  directory: /nvidia-driver-installer/minikube
  schedule:
    interval: weekly
- package-ecosystem: docker
  directory: /partition_gpu
  schedule:
    interval: weekly
- package-ecosystem: docker
  directory: /fast-socket-installer/image
  schedule:
    interval: weekly
- package-ecosystem: docker
  directory: /demo/gpu-error/illegal-memory-access
  schedule:
    interval: weekly
- package-ecosystem: docker
  directory: /
  schedule:
    interval: weekly
- package-ecosystem: gomod
  directory: /
  schedule:
    interval: weekly
  groups:
    gomod-dependencies:
      patterns:
      - '*'


================================================
FILE: .github/workflows/go_tests.yml
================================================
name: Go lint and test
on:
  push:
    branches:
      - master
  pull_request:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3
    - name: Setup Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.23
    - name: Setup Python # boilerplate.py needs this
      uses: actions/setup-python@v4
      with:
        python-version: '3.10'
    - name: Run presubmit lint
      run: make presubmit
    - name: Run go test
      run: make test
    - name: Run device-injector-test
      run: |
        sudo make device-injector-test
        sudo make clean


================================================
FILE: .prow.yaml
================================================
presubmits:
- name: googlecloudplatform-container-engine-accelerators-build
  always_run: true
  decorate: true
  cluster: build-prow-hosted-runner
  labels:
    prow.k8s.io/gerrit-report-label: "Verified"
    preset-dind-enabled: "true"
  spec:
    containers:
    - image: gcr.io/gke-test-infra/kubekins-e2e:latest-master
      command:
      - runner.sh
      - make
      - build
      - container-multi-arch
      securityContext:
        privileged: true
- name: googlecloudplatform-container-engine-accelerators-test
  always_run: true
  decorate: true
  cluster: build-prow-hosted-runner
  labels:
    prow.k8s.io/gerrit-report-label: "Verified"
  spec:
    containers:
    - image: gcr.io/gke-test-infra/kubekins-e2e:latest-master
      command:
      - make
      - test


================================================
FILE: .travis.yml
================================================
language: go

go:
  - 1.9

script:
  - make presubmit
  - make test

notifications:
  email:
    on_success: never
    on_failure: never


================================================
FILE: CONTRIBUTING.md
================================================
# How to Contribute

We'd love to accept your patches and contributions to this project. There are
just a few small guidelines you need to follow.

## Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution,
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.

## Code reviews

All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.


================================================
FILE: Dockerfile
================================================
# Copyright 2017 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

FROM --platform=$BUILDPLATFORM golang:1.25-bookworm AS builder

ARG TARGETOS
ARG TARGETARCH

WORKDIR /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators
COPY . .
RUN if [ "${TARGETARCH}" = "arm64" ] && [ "${BUILDARCH}" != "arm64" ]; then \
    apt update && \
    apt install -yq --no-install-recommends \
        gcc-aarch64-linux-gnu libc6-dev-arm64-cross; \
        CC=aarch64-linux-gnu-gcc; \
    fi && \
    GOTOOLCHAIN=local GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=1 CC=${CC} \
      go build cmd/nvidia_gpu/nvidia_gpu.go
RUN chmod a+x /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_gpu

FROM gcr.io/distroless/base:latest
COPY --from=builder /go/src/github.com/GoogleCloudPlatform/container-engine-accelerators/nvidia_gpu /usr/bin/nvidia-gpu-device-plugin
CMD ["/usr/bin/nvidia-gpu-device-plugin", "-logtostderr"]
# Use the CMD below to make the device plugin expose prometheus endpoint with container level GPU metrics
#CMD ["/usr/bin/nvidia-gpu-device-plugin", "-logtostderr", "-v=10", "--enable-container-gpu-metrics"]


================================================
FILE: Gopkg.toml
================================================

# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
#   name = "github.com/user/project"
#   version = "1.0.0"
#
# [[constraint]]
#   name = "github.com/user/project2"
#   branch = "dev"
#   source = "github.com/myfork/project2"
#
# [[override]]
#  name = "github.com/x/y"
#  version = "2.4.0"


[[constraint]]
  branch = "master"
  name = "github.com/golang/glog"

[[constraint]]
  name = "github.com/stretchr/testify"
  version = "1.1.4"

[[constraint]]
  branch = "master"
  name = "golang.org/x/net"

[[constraint]]
  name = "google.golang.org/grpc"
  version = "1.7.0"

[[constraint]]
  branch = "master"
  name = "k8s.io/kubernetes"


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: Makefile
================================================
# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and

GO := go
pkgs  = $(shell $(GO) list ./... | grep -v -e vendor -e nri_device_injector)

all: presubmit

test:
	@echo ">> running tests"
	@$(GO) test -short -race $(pkgs)

format:
	@echo ">> formatting code"
	@$(GO) fmt $(pkgs)

vet:
	@echo ">> vetting code"
	@$(GO) vet $(pkgs)

presubmit: vet
	@echo ">> checking go formatting"
	@./build/check_gofmt.sh .
	@echo ">> checking file boilerplate"
	@./build/check_boilerplate.sh

TAG=$(shell cat VERSION)
REGISTRY?=gcr.io/google-containers
IMAGE=nvidia-gpu-device-plugin
PARTITION_GPU_IMAGE=nvidia-partition-gpu
FASTSOCKET_INSTALLER_IMAGE=fastsocket-installer
DEVICE_INJECTOR_IMAGE=nri-device-injector
NVIDIA_PERSISTENCED_IMAGE=nvidia-persistenced-installer
ALL_ARCHITECTURES=amd64 arm64

build:
	cd cmd/nvidia_gpu; go build nvidia_gpu.go

container:
	docker buildx build --pull --load -t ${REGISTRY}/${IMAGE}:${TAG} .

container-multi-arch:
	@for arch in $(ALL_ARCHITECTURES); do \
	  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${IMAGE}-$${arch}:${TAG} . ; \
	done

push:
	gcloud docker -- push ${REGISTRY}/${IMAGE}:${TAG}

push-all:
	@for arch in $(ALL_ARCHITECTURES); do docker push ${REGISTRY}/${IMAGE}-$${arch}:${TAG}; done

push-multi-arch:
	docker manifest create --amend ${REGISTRY}/${IMAGE}:${TAG} $(shell echo $(ALL_ARCHITECTURES) | sed -e "s~[^ ]*~${REGISTRY}/${IMAGE}\-&:${TAG}~g")
	@for arch in $(ALL_ARCHITECTURES); do docker manifest annotate --os linux --arch $${arch} ${REGISTRY}/${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}-$${arch}:${TAG}; done
	docker manifest push --purge ${REGISTRY}/${IMAGE}:${TAG}

partition-gpu:
	docker buildx build --pull --load -t ${REGISTRY}/${PARTITION_GPU_IMAGE}:${TAG} -f partition_gpu/Dockerfile .

partition-gpu-multi-arch:
	@for arch in $(ALL_ARCHITECTURES); do \
	  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${PARTITION_GPU_IMAGE}-$${arch}:${TAG} -f partition_gpu/Dockerfile . ; \
	done

fastsocket_installer:
	docker build --pull -t ${REGISTRY}/${FASTSOCKET_INSTALLER_IMAGE}:${TAG} -f fast-socket-installer/image/Dockerfile .

nri-device-injector:
	docker build --pull -t ${REGISTRY}/${DEVICE_INJECTOR_IMAGE}:${TAG} -f nri_device_injector/Dockerfile .

nri-device-injector-multi-arch:
	@for arch in $(ALL_ARCHITECTURES); do \
	  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${DEVICE_INJECTOR_IMAGE}-$${arch}:${TAG} -f nri_device_injector/Dockerfile . ; \
	done

nvidia_persistenced_installer:
	docker buildx build --pull --load -t ${REGISTRY}/${NVIDIA_PERSISTENCED_IMAGE}:${TAG} -f nvidia-persistenced-installer/Dockerfile .

nvidia-persistenced-installer-multi-arch:
	@for arch in $(ALL_ARCHITECTURES); do \
	  docker buildx build --pull --load --platform linux/$${arch} -t ${REGISTRY}/${NVIDIA_PERSISTENCED_IMAGE}-$${arch}:${TAG} -f nvidia-persistenced-installer/Dockerfile . ; \
	done

.PHONY: all format test vet presubmit build container push partition-gpu

bin/device-injector-test:
	$(GO) test -c ./nri_device_injector -o ./bin/device-injector-test 

.PHONY: device-injector-test
device-injector-test: bin/device-injector-test
	sudo ./bin/device-injector-test -test.v 

.PHONY: clean
clean:
	@rm -rf bin


================================================
FILE: README.md
================================================
# Hardware Accelerators in GKE

This repository is a collection of installation recipes and integration utilities for consuming Hardware Accelerators in Google Kubernetes Engine.

This is not an official Google product.

More details on the nvidia-gpu-device-plugin are [here](cmd/nvidia_gpu/README.md).

The official instructions for using GPUs on GKE are
[here](https://cloud.google.com/kubernetes-engine/docs/how-to/gpus).


================================================
FILE: VERSION
================================================
1.35.0


================================================
FILE: asapd-lite-installer/asapd-lite-installer-a4x-max-bm-cos.yaml
================================================
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: asapd-lite
  namespace: kube-system
  labels:
    k8s-app: asapd-lite
spec:
  selector:
    matchLabels:
      k8s-app: asapd-lite
  template:
    metadata:
      labels:
        k8s-app: asapd-lite
    spec:
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node.kubernetes.io/instance-type
                    operator: In
                    values:
                      - a4x-maxgpu-4g-metal
                      - a4x-maxgpu-4g-metal-nolssd
                  - key: cloud.google.com/gke-os-distribution
                    operator: In
                    values:
                      - cos
      tolerations:
      - operator: Exists

      # Use the host's network namespace. This is essential for managing the
      # host's CX PFs.
      hostNetwork: true

      # Use the host's PID namespace. This can be useful for
      # debugging and interacting with host processes.
      hostPID: true
      containers:
      - name: asapd-lite
        image: us-docker.pkg.dev/gce-ai-infra/asapd-lite/asapd-lite:v0.0.7

        command: ["/bin/bash", "-c"]
        args:
          - |
            set -x
            /usr/local/bin/run_asapd_lite.sh --run_hairpin_probe=true --hairpin_sender_port_start=12345 --hairpin_receiver_port_start=23456

            # Wait for a bit to let interfaces come up.
            sleep 15

            DADFAILED_FOUND=0
            INTERFACES=$(ip -o link show | awk -F': ' '{print $2}' | grep 'gpu')

            for iface in $INTERFACES; do
              if ip -6 addr show dev "$iface" | grep -q 'dadfailed'; then
                echo "Found dadfailed on interface $iface. Bringing it down and up."
                ip link set dev "$iface" down
                ip link set dev "$iface" up
                DADFAILED_FOUND=1
              fi
            done

            if [ "$DADFAILED_FOUND" -eq 1 ]; then
              echo "Found and attempted to fix dadfailed on one or more interfaces. Exiting to allow container restart."
              exit 1
            fi

            # Keep the container running
            echo "No dadfailed detected on interfaces."
            wait

        env:
        - name: LD_LIBRARY_PATH
          value: /asapd-lite/controller
        livenessProbe:
          httpGet:
            path: /healthz
            port: 19540
          initialDelaySeconds: 60
        readinessProbe:
          httpGet:
            path: /healthz
            port: 19540

        securityContext:
          # 'privileged: true' is required for modifying most host-level
          # resources, including network devices and udev rules.
          privileged: true

        volumeMounts:
        - name: host-sys
          mountPath: /sys
        - name: host-proc
          mountPath: /proc
        - name: host-udev-rules
          mountPath: /etc/udev/rules.d
        - name: host-run-udev
          mountPath: /run/udev
        - name: host-run-asapd-lite
          mountPath: /run/asapd-lite
        - mountPath: /hugepages-2Mi
          name: hugepage-2mi
        - name: var-log-google-asapd-lite
          mountPath: /var/log/google/asapd-lite
        - name: var-lib-google-asapd-lite
          mountPath: /var/lib/google/asapd-lite
        - name: host-systemd-system
          mountPath: /etc/systemd/system
        - name: host-run-systemd
          mountPath: /run/systemd
        resources:
          limits:
            hugepages-2Mi: 8192Mi
            memory: 1024Mi

      volumes:
      - name: host-sys
        hostPath:
          path: /sys
      - name: host-proc
        hostPath:
          path: /proc
      - name: host-udev-rules
        hostPath:
          path: /etc/udev/rules.d
      - name: host-run-udev
        hostPath:
          path: /run/udev
      - name: host-run-asapd-lite
        hostPath:
          path: /run/asapd-lite
          type: DirectoryOrCreate
      - name: hugepage-2mi
        emptyDir:
          medium: HugePages-2Mi
      - name: var-log-google-asapd-lite
        hostPath:
          path: /var/log/google/asapd-lite
          type: DirectoryOrCreate
      # Mount /var/lib/google/asapd-lite to provide a persistent location for
      # the ipam binary on the host, allowing it to be executed from the host.
      # This location was choosen based on this documentation
      # https://docs.cloud.google.com/container-optimized-os/docs/concepts/disks-and-filesystem#working_with_the_file_system
      # Hence, this may not necessarily be a suitable location for non-COS based
      # systems.
      - name: var-lib-google-asapd-lite
        hostPath:
          path: /var/lib/google/asapd-lite
          type: DirectoryOrCreate
      - name: host-systemd-system
        hostPath:
          path: /etc/systemd/system
      - name: host-run-systemd
        hostPath:
          path: /run/systemd
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1%


================================================
FILE: build/boilerplate/boilerplate.go.txt
================================================
// Copyright YEAR Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


================================================
FILE: build/boilerplate/boilerplate.py
================================================
#!/usr/bin/env python

# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from __future__ import print_function

import argparse
import glob
import json
import mmap
import os
import re
import sys

parser = argparse.ArgumentParser()
parser.add_argument("filenames", help="list of files to check, all files if unspecified", nargs='*')
args = parser.parse_args()

rootdir = os.path.dirname(__file__) + "/../../"
rootdir = os.path.abspath(rootdir)

def get_refs():
    refs = {}
    for path in glob.glob(os.path.join(rootdir, "build/boilerplate/boilerplate.*.txt")):
        extension = os.path.basename(path).split(".")[1]

        ref_file = open(path, 'r')
        ref = ref_file.read().splitlines()
        ref_file.close()
        refs[extension] = ref

    return refs

def file_passes(filename, refs, regexs):
    try:
        f = open(filename, 'r')
    except:
        return False

    data = f.read()
    f.close()

    extension = file_extension(filename)
    ref = refs[extension]

    # remove build tags from the top of Go files
    if extension == "go":
        p = regexs["go_build_constraints"]
        (data, found) = p.subn("", data, 1)

    # remove shebang from the top of shell files
    if extension == "sh":
        p = regexs["shebang"]
        (data, found) = p.subn("", data, 1)

    data = data.splitlines()

    # if our test file is smaller than the reference it surely fails!
    if len(ref) > len(data):
        return False

    # trim our file to the same number of lines as the reference file
    data = data[:len(ref)]

    p = regexs["year"]
    for d in data:
        if p.search(d):
            return False

    # Replace all occurrences of the regex "2016|2015|2014" with "YEAR"
    p = regexs["date"]
    for i, d in enumerate(data):
        (data[i], found) = p.subn('YEAR', d)
        if found != 0:
            break

    # if we don't match the reference at this point, fail
    if ref != data:
        return False

    return True

def file_extension(filename):
    return os.path.splitext(filename)[1].split(".")[-1].lower()

skipped_dirs = ['Godeps', 'vendor', 'third_party', '_gopath', '_output', '.git']
def normalize_files(files):
    newfiles = []
    for pathname in files:
        if any(x in pathname for x in skipped_dirs):
            continue
        newfiles.append(pathname)
    for i, pathname in enumerate(newfiles):
        if not os.path.isabs(pathname):
            newfiles[i] = os.path.join(rootdir, pathname)
    return newfiles

def get_files(extensions):
    files = []
    if len(args.filenames) > 0:
        files = args.filenames
    else:
        for root, dirs, walkfiles in os.walk(rootdir):
            # don't visit certain dirs. This is just a performance improvement
            # as we would prune these later in normalize_files(). But doing it
            # cuts down the amount of filesystem walking we do and cuts down
            # the size of the file list
            for d in skipped_dirs:
                if d in dirs:
                    dirs.remove(d)

            for name in walkfiles:
                pathname = os.path.join(root, name)
                files.append(pathname)

    files = normalize_files(files)
    outfiles = []
    for pathname in files:
        extension = file_extension(pathname)
        if extension in extensions:
            outfiles.append(pathname)
    return outfiles

def get_regexs():
    regexs = {}
    # Search for "YEAR" which exists in the boilerplate, but shouldn't in the real thing
    regexs["year"] = re.compile( 'YEAR' )
    # dates can be 2014, 2015 or 2016, company holder names can be anything
    regexs["date"] = re.compile( '(2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024|2025|2026)' )
    # strip // +build \n\n build constraints
    regexs["go_build_constraints"] = re.compile(r"^(// \+build.*\n)+\n", re.MULTILINE)
    # strip #!.* from shell scripts
    regexs["shebang"] = re.compile(r"^(#!.*\n)\n*", re.MULTILINE)
    return regexs

def main():
    regexs = get_regexs()
    refs = get_refs()
    filenames = get_files(refs.keys())

    for filename in filenames:
        if not file_passes(filename, refs, regexs):
            print(filename, file=sys.stdout)

if __name__ == "__main__":
  sys.exit(main())


================================================
FILE: build/boilerplate/boilerplate.py.txt
================================================
#!/usr/bin/env python

# Copyright YEAR Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


================================================
FILE: build/boilerplate/boilerplate.sh.txt
================================================
# Copyright YEAR Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


================================================
FILE: build/check_boilerplate.sh
================================================
#!/bin/bash

# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -o errexit
set -o nounset
set -o pipefail

GIT_ROOT=$(dirname "${BASH_SOURCE}")/..
boiler="${GIT_ROOT}/build/boilerplate/boilerplate.py"

files_need_boilerplate=($(${boiler} "$@"))

if [[ ${#files_need_boilerplate[@]} -gt 0 ]]; then
  for file in "${files_need_boilerplate[@]}"; do
    echo "Boilerplate header is wrong for: ${file}"
  done

  exit 1
fi


================================================
FILE: build/check_errorf.sh
================================================
#!/bin/bash

# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

GO_FILES=$(find . -not -wholename "*Godeps*" -not -wholename "*vendor*" -name "*.go")

for FILE in ${GO_FILES}; do
	ERRS=`grep 'fmt.Errorf("[A-Z]' ${FILE}`
	if [ $? -eq 0 ]
	then
		echo Incorrect error format in file ${FILE}: $ERRS
		exit 1
	fi
done

exit 0


================================================
FILE: build/check_gofmt.sh
================================================
#!/bin/bash

# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Check formatting on non Godep'd code.
GOFMT_PATHS=$(find . -not -wholename "*.git*" -not -wholename "*Godeps*" -not -wholename "*vendor*" -not -name "." -type d)

# Find any files with gofmt problems
BAD_FILES=$(gofmt -s -l $GOFMT_PATHS)

if [ -n "$BAD_FILES" ]; then
  echo "The following files are not properly formatted:"
  echo $BAD_FILES
  exit 1
fi


================================================
FILE: cmd/nvidia_gpu/README.md
================================================
Kubernetes Device Plugin for NVIDIA GPUs
----------------------------------------

This directory contains the code for a Kubernetes [device plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) for NVIDIA GPUs.

The daemonset manifest at https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml can be used to deploy this device plugin to a cluster (1.9 onwards).

In [GKE](https://g.co/gke), from 1.9 onwards, this daemonset is automatically deployed as an addon. Note that daemonset pods are only scheduled on nodes with accelerators attached, they are not scheduled on nodes that don't have any accelerators attached.

This device plugin requires that NVIDIA drivers and libraries are installed in a particular way.

Examples of how driver installation needs to be done can be found at:
- For [COS](https://cloud.google.com/container-optimized-os/):
  - Installer code: https://github.com/GoogleCloudPlatform/cos-gpu-installer
  - Installer daemonset: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/daemonset.yaml

- For [Ubuntu](https://cloud.google.com/kubernetes-engine/docs/concepts/node-images#ubuntu) (experimental):
  - Installer code: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/ubuntu/entrypoint.sh
  - Installer daemonset: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/ubuntu/daemonset.yaml

In short, this device plugins expects that all the nvidia libraries needed by the containers are present under a single directory on the host. You can specify the directory on the host containing nvidia libraries using `-host-path`. You can specify the location to mount that directory in all the containers using `-container-path`. For example, let's say on the host all nvidia libraries are present under `/var/lib/nvidia/lib64` and you want to make these libraries available to containers under `/usr/local/nvidia/lib64`, then you would use `-host-path=/var/lib/nvidia/lib64` and `-container-path=/usr/local/nvidia/lib64`.


================================================
FILE: cmd/nvidia_gpu/device-plugin.yaml
================================================
# NOTE: This file is not the source of truth for GKE device plugins. Modifying this file would have no effect on GKE clusters.
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    k8s-app: nvidia-gpu-device-plugin
  name: nvidia-gpu-device-plugin
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: nvidia-gpu-device-plugin
  template:
    metadata:
      labels:
        k8s-app: nvidia-gpu-device-plugin
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: cloud.google.com/gke-accelerator
                    operator: Exists
      containers:
        - command:
            - /usr/bin/nvidia-gpu-device-plugin
            - -logtostderr
            - --enable-container-gpu-metrics
            - --enable-health-monitoring
          env:
            - name: XID_CONFIG
              valueFrom:
                configMapKeyRef:
                  key: HealthCriticalXid
                  name: xid-config
                  optional: true
            - name: LD_LIBRARY_PATH
              value: /usr/local/nvidia/lib64
            - name: GOMAXPROCS
              value: "1"
          image: gcr.io/gke-release/nvidia-gpu-device-plugin@sha256:6b25281cd0fa3ca55f3e837a18be4a14b44952105568f466530dd85bcebde62f
          name: nvidia-gpu-device-plugin
          ports:
            - containerPort: 2112
              name: metrics
          resources:
            limits:
              memory: 100Mi
            requests:
              cpu: 50m
              memory: 100Mi
          securityContext:
            privileged: true
          volumeMounts:
            - mountPath: /device-plugin
              name: device-plugin
            - mountPath: /dev
              name: dev
            - mountPath: /usr/local/nvidia
              name: nvidia
            - mountPath: /var/lib/kubelet/pod-resources
              name: pod-resources
            - mountPath: /proc
              name: proc
            - mountPath: /etc/nvidia
              name: nvidia-config
      priorityClassName: system-node-critical
      restartPolicy: Always
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      tolerations:
        - effect: NoExecute
          operator: Exists
        - effect: NoSchedule
          operator: Exists
      volumes:
        - hostPath:
            path: /var/lib/kubelet/device-plugins
            type: Directory
          name: device-plugin
        - hostPath:
            path: /dev
            type: Directory
          name: dev
        - hostPath:
            path: /var/lib/kubelet/pod-resources
            type: Directory
          name: pod-resources
        - hostPath:
            path: /proc
            type: Directory
          name: proc
        - hostPath:
            path: /etc/nvidia
            type: DirectoryOrCreate
          name: nvidia-config
        - hostPath:
            path: /home/kubernetes/bin/nvidia
            type: Directory
          name: nvidia
  updateStrategy:
    type: RollingUpdate


================================================
FILE: cmd/nvidia_gpu/nvidia_gpu.go
================================================
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"context"
	"encoding/json"
	"flag"
	"fmt"
	"io/ioutil"
	"os"
	"time"

	gpumanager "github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia"
	healthcheck "github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/health_check"
	"github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/metrics"
	util "github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/util"
	versionvisibility "github.com/GoogleCloudPlatform/container-engine-accelerators/pkg/gpu/nvidia/version_visibility"
	"github.com/NVIDIA/go-nvml/pkg/nvml"
	"github.com/golang/glog"
	pluginapi "k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1"
)

const (
	// Device plugin settings.
	kubeletEndpoint      = "kubelet.sock"
	pluginEndpointPrefix = "nvidiaGPU"
	devDirectory         = "/dev"
	// Proc directory is used to lookup the access files for each GPU partition.
	procDirectory = "/proc"
)

var (
	hostPathPrefix                 = flag.String("host-path", "/home/kubernetes/bin/nvidia", "Path on the host that contains nvidia libraries. This will be mounted inside the container as '-container-path'")
	containerPathPrefix            = flag.String("container-path", "/usr/local/nvidia", "Path on the container that mounts '-host-path'")
	hostVulkanICDPathPrefix        = flag.String("host-vulkan-icd-path", "/home/kubernetes/bin/nvidia/vulkan/icd.d", "Path on the host that contains the Nvidia Vulkan installable client driver. This will be mounted inside the container as '-container-vulkan-icd-path'")
	containerVulkanICDPathPrefix   = flag.String("container-vulkan-icd-path", "/etc/vulkan/icd.d", "Path on the container that mounts '-host-vulkan-icd-path'")
	pluginMountPath                = flag.String("plugin-directory", "/device-plugin", "The directory path to create plugin socket")
	enableContainerGPUMetrics      = flag.Bool("enable-container-gpu-metrics", false, "If true, the device plugin will expose GPU metrics for containers with allocated GPU")
	enableHealthMonitoring         = flag.Bool("enable-health-monitoring", false, "If true, the device plugin will detect critical Xid errors and mark the GPUs unallocatable")
	gpuMetricsPort                 = flag.Int("gpu-metrics-port", 2112, "Port on which GPU metrics for containers are exposed")
	gpuMetricsCollectionIntervalMs = flag.Int("gpu-metrics-collection-interval", 30000, "Collection interval (in milli seconds) for container GPU metrics")
	gpuConfigFile                  = flag.String("gpu-config", "/etc/nvidia/gpu_config.json", "File with GPU configurations for device plugin")
	publishDriverVersion           = flag.Bool("publish-driver-version", false, "If true, the device plugin will publish NVIDIA driver versions to the Kubernetes Node annotation")
)

func parseGPUConfig(gpuConfigFile string) (gpumanager.GPUConfig, error) {
	var gpuConfig gpumanager.GPUConfig

	gpuConfigContent, err := ioutil.ReadFile(gpuConfigFile)
	if err != nil {
		return gpuConfig, fmt.Errorf("unable to read gpu config file %s: %v", gpuConfigFile, err)
	}

	if err = json.Unmarshal(gpuConfigContent, &gpuConfig); err != nil {
		return gpuConfig, fmt.Errorf("failed to parse GPU config file contents: %s, error: %v", gpuConfigContent, err)
	}

	err = gpuConfig.AddDefaultsAndValidate()
	if err != nil {
		return gpumanager.GPUConfig{}, err
	}
	return gpuConfig, nil
}

func main() {
	flag.Parse()
	glog.Infoln("device-plugin started")
	mountPaths := []pluginapi.Mount{
		{HostPath: *hostPathPrefix, ContainerPath: *containerPathPrefix, ReadOnly: true},
		{HostPath: *hostVulkanICDPathPrefix, ContainerPath: *containerVulkanICDPathPrefix, ReadOnly: true}}

	var gpuConfig gpumanager.GPUConfig
	if *gpuConfigFile != "" {
		glog.Infof("Reading GPU config file: %s", *gpuConfigFile)
		var err error
		gpuConfig, err = parseGPUConfig(*gpuConfigFile)
		if err != nil {
			glog.Infof("Failed to parse GPU config file %s: %v", *gpuConfigFile, err)
			glog.Infof("Falling back to default GPU config.")
			gpuConfig = gpumanager.GPUConfig{}
		}
	}
	err := gpuConfig.AddHealthCriticalXid()
	if err != nil {
		glog.Infof("Failed to Add HealthCriticalXid : %v", err)
	}

	glog.Infof("Using gpu config: %v", gpuConfig)
	ngm := gpumanager.NewNvidiaGPUManager(devDirectory, procDirectory, mountPaths, gpuConfig)

	// Retry until nvidiactl and nvidia-uvm are detected. This is required
	// because Nvidia drivers may not be installed initially.
	for {
		err := ngm.CheckDevicePaths()
		if err == nil {
			break
		}
		// Use non-default level to avoid log spam.
		glog.V(3).Infof("nvidiaGPUManager.CheckDevicePaths() failed: %v", err)
		time.Sleep(5 * time.Second)
	}

	if ret := nvml.Init(); ret != nvml.SUCCESS {
		glog.Fatalf("failed to initialize nvml: %v", nvml.ErrorString(ret))
	}
	defer nvml.Shutdown()

	for {
		err := ngm.Start()
		if err == nil {
			break
		}

		glog.Errorf("failed to start GPU device manager: %v", err)
		time.Sleep(5 * time.Second)
	}

	if *enableContainerGPUMetrics {
		if gpuConfig.GPUPartitionSize != "" {
			glog.Info("Using multi-instance GPU, metrics are not supported.")
		} else {
			glog.Infof("Starting metrics server on port: %d, endpoint path: %s, collection frequency: %d", *gpuMetricsPort, "/metrics", *gpuMetricsCollectionIntervalMs)
			metricServer := metrics.NewMetricServer(*gpuMetricsCollectionIntervalMs, *gpuMetricsPort, "/metrics")
			err := metricServer.Start()
			if err != nil {
				glog.Infof("Failed to start metric server: %v", err)
				return
			}
			defer metricServer.Stop()
		}
	}

	if *enableHealthMonitoring {
		kubeClient, err := util.BuildKubeClient()
		if err != nil {
			glog.Infof("Failed to build kube client: %v", err)
			return
		}
		hc := healthcheck.NewGPUHealthChecker(ngm.ListPhysicalDevices(), ngm.Health, ngm.ListHealthCriticalXid(), kubeClient)
		if err := hc.Start(); err != nil {
			glog.Infof("Failed to start GPU Health Checker: %v", err)
			return
		}
		defer hc.Stop()
	}

	if *publishDriverVersion {
		glog.Infoln("Publishing NVIDIA driver version annotations to Node")
		kubeClient, err := util.BuildKubeClient()
		if err != nil {
			glog.Warningf("Failed to build kube client for annotating: %v", err)
		} else {
			nodeName := os.Getenv("NODE_NAME")
			if nodeName == "" {
				glog.Warning("NODE_NAME environment variable not set, skipping publishing driver version annotations")
			} else {
				apiTimeout := 10 * time.Second
				ctx, cancel := context.WithTimeout(context.Background(), apiTimeout)
				defer cancel()
				go func() {
					err := versionvisibility.PublishDriverVersionAnnotations(ctx, kubeClient, nodeName)
					if err != nil {
						glog.Errorf("Failed to publish driver version annotations: %v", err)
					} else {
						glog.Info("Successfully published NVIDIA driver version annotations")
					}
				}()
			}
		}
	}

	ngm.Serve(*pluginMountPath, kubeletEndpoint, fmt.Sprintf("%s-%d.sock", pluginEndpointPrefix, time.Now().Unix()))
}


================================================
FILE: cmd/nvidia_gpu/rbac.yaml
================================================
# Copyright 2018 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: gpu-device-plugin
  name: gpu-device-plugin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: gpu-device-plugin
  labels:
    k8s-app: gpu-device-plugin
    addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["update", "patch", "get", "list", "watch"]
- apiGroups: [""]
  resources: ["nodes/status"]
  verbs: ["update", "patch", "get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gpu-device-plugin
  namespace: kube-system
  labels:
    k8s-app: gpu-device-plugin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: gpu-device-plugin
subjects:
- kind: ServiceAccount
  name: gpu-device-plugin
  namespace: kube-system


================================================
FILE: daemonset.yaml
================================================
# Copyright 2017 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# The Dockerfile and other source for this daemonset are in
# https://github.com/GoogleCloudPlatform/cos-gpu-installer
#
# This daemonset is only intended to be used by OSS K8s tests.
# To install GPU drivers in GKE clusters, please use
# https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nvidia-driver-installer
  namespace: kube-system
  labels:
    k8s-app: nvidia-driver-installer
spec:
  selector:
    matchLabels:
      k8s-app: nvidia-driver-installer
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nvidia-driver-installer
        k8s-app: nvidia-driver-installer
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-accelerator
                operator: Exists
      tolerations:
      - operator: "Exists"
      hostNetwork: true
      hostPID: true
      volumes:
      - name: dev
        hostPath:
          path: /dev
      - name: vulkan-icd-mount
        hostPath:
          path: /home/kubernetes/bin/nvidia/vulkan/icd.d
      - name: nvidia-install-dir-host
        hostPath:
          path: /home/kubernetes/bin/nvidia
      - name: root-mount
        hostPath:
          path: /
      initContainers:
      - image: gcr.io/cos-cloud/cos-gpu-installer@sha256:af09af53cb7c6ddce9c96968d5367253684d08108a414c8a1d70f96188427949  # 'v20200701'
        name: nvidia-driver-installer
        resources:
          requests:
            cpu: 150m
        securityContext:
          privileged: true
        env:
          - name: NVIDIA_INSTALL_DIR_HOST
            value: /home/kubernetes/bin/nvidia
          - name: NVIDIA_INSTALL_DIR_CONTAINER
            value: /usr/local/nvidia
          - name: VULKAN_ICD_DIR_HOST
            value: /home/kubernetes/bin/nvidia/vulkan/icd.d
          - name: VULKAN_ICD_DIR_CONTAINER
            value: /etc/vulkan/icd.d
          - name: ROOT_MOUNT_DIR
            value: /root
        volumeMounts:
        - name: nvidia-install-dir-host
          mountPath: /usr/local/nvidia
        - name: vulkan-icd-mount
          mountPath: /etc/vulkan/icd.d
        - name: dev
          mountPath: /dev
        - name: root-mount
          mountPath: /root
      containers:
      - image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
        name: pause


================================================
FILE: demo/device-plugin-health-monitoring-enabled.yaml
================================================
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nvidia-gpu-device-plugin
  namespace: kube-system
  labels:
    k8s-app: nvidia-gpu-device-plugin
    addonmanager.kubernetes.io/mode: EnsureExists
spec:
  selector:
    matchLabels:
      k8s-app: nvidia-gpu-device-plugin
  template:
    metadata:
      labels:
        k8s-app: nvidia-gpu-device-plugin
    spec:
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-accelerator
                operator: Exists
      tolerations:
      - operator: "Exists"
        effect: "NoExecute"
      - operator: "Exists"
        effect: "NoSchedule"
      volumes:
      - name: device-plugin
        hostPath:
          path: /var/lib/kubelet/device-plugins
      - name: dev
        hostPath:
          path: /dev
      - name: nvidia
        hostPath:
            path: /home/kubernetes/bin/nvidia
            type: Directory
      - name: pod-resources
        hostPath:
            path: /var/lib/kubelet/pod-resources
      containers:
      - image: "gcr.io/gke-release/nvidia-gpu-device-plugin@sha256:622d701b1ccebbb25c01e4326a3a6c2aa001b2507f66c89a3d65b9778e6b02ee"
        command: ["/usr/bin/nvidia-gpu-device-plugin", "-logtostderr", "--enable-health-monitoring"]
        name: nvidia-gpu-device-plugin
        ports:
        - name: "metrics"
          containerPort: 2112
        env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
        resources:
          requests:
            cpu: 50m
            memory: 20Mi
          limits:
            cpu: 50m
            memory: 20Mi
        securityContext:
          privileged: true
        volumeMounts:
        - name: device-plugin
          mountPath: /device-plugin
        - name: dev
          mountPath: /dev
        - name: nvidia
          mountPath: /usr/local/nvidia
        - name: pod-resources
          mountPath: /var/lib/kubelet/pod-resources
  updateStrategy:
    type: RollingUpdate


================================================
FILE: demo/gpu-error/illegal-memory-access/Dockerfile
================================================
# Copyright 2024 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Use a recent CUDA development image (includes nvcc compiler)
# --- Stage 1: Build ---
FROM nvidia/cuda:13.1.1-devel-ubuntu22.04 AS builder

WORKDIR /app
COPY vectorAdd.cu .

# Compile the CUDA code
RUN nvcc vectorAdd.cu -o vectorAdd

# --- Stage 2: Runtime ---
# Use a smaller base image containing only the CUDA runtime and nvidia-smi
FROM nvidia/cuda:13.1.1-base-ubuntu22.04

WORKDIR /app
# Copy only the compiled executable from the build stage
COPY --from=builder /app/vectorAdd .

# Command to run nvidia-smi for diagnostics and then the compiled program
CMD ["sh", "-c", "while true; do nvidia-smi && ./vectorAdd; echo '--- Waiting 30 seconds ---'; sleep 30; done"]

================================================
FILE: demo/gpu-error/illegal-memory-access/README
================================================
This demo will trigger illegal memory access error (Xid 31) when running.


================================================
FILE: demo/gpu-error/illegal-memory-access/vectorAdd.cu
================================================
/* Copyright 2017 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

/**
 * This sample does a very simple vector add, and will trigger illegal memory
 * access error. The purpose of this sample is to test the error handling of
 * the device plugin or other components.
 */

 #include <stdio.h>
 #include <cuda_runtime.h>

 /**
  * Computes the vector addition and intentionally triggers memory error
  */
 __global__ void
 vectorAddAndTriggerError(const float *A, const float *B, float *C, int numElements)
 {
     // Intentionally triggering out of bounds
     int i = (blockDim.x * blockIdx.x) + threadIdx.x + 1000000000000;
     C[i] = A[i] + B[i];
 }

 int main(void)
 {
     printf("Starting illegal memory access sample\n");
     // Error code to check return values for CUDA calls
     cudaError_t err = cudaSuccess;

     int vecLength = 50000;
     size_t size = vecLength * sizeof(float);

     // Initializing two vectors on host
     float *h_A = (float *)malloc(size);
     float *h_B = (float *)malloc(size);
     for (int i = 0; i < vecLength; ++i)
     {
         h_A[i] = rand()/(float)RAND_MAX;
         h_B[i] = rand()/(float)RAND_MAX;
     }

     // Allocating three vectors on device
     float *d_A = NULL;
     err = cudaMalloc((void **)&d_A, size);
     float *d_B = NULL;
     err = cudaMalloc((void **)&d_B, size);
     float *d_C = NULL;
     err = cudaMalloc((void **)&d_C, size);

     // copy data from host to device
     err = cudaMemcpy(d_A, h_A, size, cudaMemcpyHostToDevice);
     err = cudaMemcpy(d_B, h_B, size, cudaMemcpyHostToDevice);

     // Run the vectorAdd func and trigger error
     int threadsPerBlock = 256;
     int blocksPerGrid =(vecLength + threadsPerBlock - 1) / threadsPerBlock;
     printf("Run vectorAdd with %d blocks of %d threads\n", blocksPerGrid, threadsPerBlock);
     vectorAddAndTriggerError<<<blocksPerGrid, threadsPerBlock>>>(d_A, d_B, d_C, vecLength);
     err = cudaGetLastError();

     if (err != cudaSuccess)
     {
         fprintf(stderr, "Failed to launch vectorAdd kernel (error code %s)!\n", cudaGetErrorString(err));
         exit(EXIT_FAILURE);
     }

     printf("Copy results from the device to the host\n");
     float *h_C = (float *)malloc(size);
     err = cudaMemcpy(h_C, d_C, size, cudaMemcpyDeviceToHost);

     // Expecting error here
     if (err != cudaSuccess)
     {
         fprintf(stderr, "Failed to copy vector C from device to host (error code %s)!\n", cudaGetErrorString(err));
         exit(EXIT_FAILURE);
     }

     return 0;
 }


================================================
FILE: demo/gpu-training/generate_job.sh
================================================
# Copyright 2018 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#!/bin/bash

EXPERIMENT_ID="resnet-$(date "+%y-%m-%d-%H-%M-%S")"

BASE_LEARNING_RATES=(0.001 0.01 0.1 0.05)
BATCH_SIZES=(16 32)
DEPTH_CHOICES=(34 50 101 152)

EPOCHS=90
NUM_IMAGES=1281167

echo "Experiment number ${EXPERIMENT_ID}"
rm -rf $EXPERIMENT_ID
mkdir $EXPERIMENT_ID

for DEPTH in "${DEPTH_CHOICES[@]}"
  do
    for BATCH_SIZE in "${BATCH_SIZES[@]}"
      do
        for BASE_LEARNING_RATE in "${BASE_LEARNING_RATES[@]}"
          do
          JOB_ID=${EXPERIMENT_ID}-$BATCH_SIZE-$DEPTH-$BASE_LEARNING_RATE
          TRAIN_STEPS=$((EPOCHS*NUM_IMAGES/BATCH_SIZE))
          cat >$EXPERIMENT_ID/$EXPERIMENT_ID-$BATCH_SIZE-$DEPTH-$BASE_LEARNING_RATE.yaml <<EOF
apiVersion: batch/v1
kind: Job
metadata:
  name: ${JOB_ID}
  labels:
    experiment-id: ${EXPERIMENT_ID}
spec:
  template:
    metadata:
      labels:
        experiment-id: ${EXPERIMENT_ID}
    spec:
      restartPolicy: Never
      containers:
      - name: resnet-gpu
        image: gcr.io/vishnuk-cloud/tf-models-gpu:1.0
        command:
          - python
          - /tensorflow_models/models/official/resnet/resnet_main.py
          - --use_tpu=False
          - --tpu=
          - --precision=float32
          - --data_dir=gs://cloudtpu-imagenet-data/train
          - --model_dir=gs://vishh/tensorflow/resnet-gpu-train/${EXPERIMENT_ID}/${BATCH_SIZE}-${BASE_LEARNING_RATE}-${DEPTH}
          - --train_batch_size=${BATCH_SIZE}
          - --train_steps=${TRAIN_STEPS}
          - --resnet_depth=${DEPTH}
          - --base_learning_rate=${BASE_LEARNING_RATE}
          - --steps_per_eval=25000
        env:
        - name: EXPERIMENT_ID
          valueFrom:
            fieldRef:
              fieldPath: metadata.labels['experiment-id']
        resources:
          limits:
            nvidia.com/gpu: 8

EOF

        done
    done
done


================================================
FILE: demo/image-prepull-ds.yaml
================================================
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: image-prepull
spec:
  selector:
    matchLabels:
      app: image-prepull
  template:
    metadata:
      labels:
        app: image-prepull
    spec:
      tolerations:
      - operator: "Exists"
        effect: "NoExecute"
      - operator: "Exists"
        effect: "NoSchedule"
      containers:
      - args:
        - -mode
        - sleep
        command:
        - /drop/sleeper
        image: gcr.io/vishnuk-cloud/tf-models-gpu:1.0
        imagePullPolicy: Always
        name: gpu-image
        resources:
          limits:
            cpu: 1m
            memory: 10M
        volumeMounts:
        - mountPath: /drop/
          name: the-sleeper
      - args:
        - -mode
        - sleep
        command:
        - /drop/sleeper
        image: gcr.io/tensorflow/tpu-models:r1.9
        imagePullPolicy: Always
        name: tpu-image
        resources:
          limits:
            cpu: 1m
            memory: 10M
        volumeMounts:
        - mountPath: /drop/
          name: the-sleeper
      - args:
        - -mode
        - sleep
        command:
        - /drop/sleeper
        image: gcr.io/vishnuk-cloud/tf-serving:1.9-gpu-minimal
        imagePullPolicy: Always
        name: tf-serving-image
        resources:
          limits:
            cpu: 1m
            memory: 10M
        volumeMounts:
        - mountPath: /drop/
          name: the-sleeper
      - args:
        - -mode
        - sleep
        command:
        - /drop/sleeper
        image: gcr.io/vishnuk-cloud/tf-serving-client@sha256:74dd15862f736ddc2eaa1c49605a516eb39c113aa4ea0eee625bf7a38df560fc
        imagePullPolicy: Always
        name: tf-serving-client
        resources:
          limits:
            cpu: 1m
            memory: 10M
        volumeMounts:
        - mountPath: /drop/
          name: the-sleeper

      initContainers:
      - args:
        - -mode
        - copy
        - -to
        - /drop/sleeper
        image: gcr.io/mattmoor-public/sleeper@sha256:d431f1c78bb16fbb0c9831a610bc9580379a4f9ab0a339efd2ffb36ea5ffeca2
        imagePullPolicy: Always
        name: the-sleeper
        resources:
          limits:
            cpu: 1m
            memory: 10M
        volumeMounts:
        - mountPath: /drop/
          name: the-sleeper
      volumes:
      - emptyDir: {}
        name: the-sleeper
  updateStrategy:
    type: OnDelete


================================================
FILE: demo/minikube/pv.yaml
================================================
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.39.1
    path: "/usr/local/google/home/vishnuk/"


    


================================================
FILE: demo/minikube/pvc.yaml
================================================
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 1Gi


================================================
FILE: demo/minikube/resnet-gpu.yaml
================================================
# Copyright 2018 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: batch/v1
kind: Job
metadata:
  name: resnet-gpu
spec:
  template:
    spec:
      restartPolicy: Never
      volumes:
      - name: nfs-pvc
        persistentVolumeClaim:
          claimName: nfs
      containers:
      - name: resnet-gpu
        image: gcr.io/vishnuk-cloud/tensorflow@sha256:c5655a73205a447e1552fc833d14ab66eee2304dbf64846edd88c41434c6f5f2
        command:
          - python
          - /tensorflow_models/models/official/resnet/resnet_main.py
          - --use_tpu=False
          - --tpu=
          - --precision=float32
          - --data_dir=$(DATA_BUCKET)
          - --model_dir=$(MODEL_BUCKET)
          - --train_batch_size=$(TRAIN_BATCH_SIZE)
          - --train_steps=$(TRAIN_STEPS)
        volumeMounts:
        - name: nfs-pvc
          mountPath: /home/vishnuk
        env:
          # The Google Cloud Storage location where the fake ImageNet dataset is
          # stored.
        - name: DATA_BUCKET
          value: "/home/vishnuk/tf-demo/fake_imagenet/"
          # [REQUIRED] Must specify the Google Cloud Storage location where your
          # output model will be stored.
        - name: MODEL_BUCKET
          value: "/home/vishnuk/tf-demo/train/resnet-train" # "/home/vishnuk/tf-demo/resnet-train/"
        - name: TRAIN_BATCH_SIZE
          value: "32"
        - name: TRAIN_STEPS
          value: "400365"
        resources:
          limits:
            nvidia.com/gpu: 1


================================================
FILE: demo/serving/load_generator.yaml
================================================
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# An example k8s batch job that generates prediction requests to a tensorflow
# serving instance serving inception v3 model.

apiVersion: batch/v1
kind: Job
metadata:
  name: tensorflow-serving-load-generator
spec:
  template:
    spec:
      containers:
      - name: inception-client
        image: gcr.io/vishnuk-cloud/tf-serving-client@sha256:869467cd5d22c14a024493327e323c69887f71476790a0e5762f2884b8e5773a
        args: ["inception_profiler.py", "--server=tensorflow-service", "--port=9000", "-n", "1000000", "./cat_sample.jpg"]
        resources:
          requests:
            cpu: 0.2
            memory: 100Mi
      restartPolicy: OnFailure
  backoffLimit: 4
  completions: 100
  parallelism: 30



================================================
FILE: demo/serving/tensorflow-serving.yaml
================================================
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tensorflow-serving
  name: tensorflow-serving-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tensorflow-serving
  template:
    metadata:
      labels:
        app: tensorflow-serving
    spec:
      containers:
      - name: tensorflow-serving-container
        image: gcr.io/vishnuk-cloud/tf-serving:1.9-gpu-minimal
        command:
          - /usr/local/bin/tensorflow_model_server
        args:
          - --port=9000
          - --model_name=inception
          - --model_base_path=gs://vishh/tensorflow/inception/
        resources:
          limits:
            nvidia.com/gpu: 1
        readinessProbe:
          exec:
            command:
            - python
            - -c
            - |
              from grpc.beta import implementations
              from tensorflow_serving.apis import model_pb2
              from tensorflow_serving.apis import prediction_service_pb2
              from tensorflow_serving.apis import get_model_metadata_pb2
              mreq = get_model_metadata_pb2.GetModelMetadataRequest()
              mreq.model_spec.name = 'inception'
              mreq.metadata_field.append('signature_def')
              channel = implementations.insecure_channel('localhost', int(9000))
              stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)
              print(stub.GetModelMetadata(mreq, 10.0))
        ports:
        - containerPort: 9000
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: tf-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: tensorflow-serving-deployment
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - external:  
      metricName: container.googleapis.com|container|accelerator|duty_cycle
      targetAverageValue: 20
      metricSelector:
        matchLabels:
          metadata.user_labels.app: tensorflow-serving
          resource.labels.container_name: tensorflow-serving-container
    type: External
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: tensorflow-service
  name: tensorflow-service
spec:
  ports:
  - port: 9000
    targetPort: 9000
  selector:
    app: tensorflow-serving



================================================
FILE: demo/tpu-training/inception-v3-tpu.yaml
================================================
# Copyright 2018 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# Train Inception v3 with fake ImageNet dataset using Cloud TPU and Google
# Kubernetes Engine.
#
# [Training Data]
#   In this example, we use the randomly generated fake ImageNet dataset at
#   gs://cloud-tpu-test-datasets/fake_imagenet as the training data.
#
# [Instructions]
#   1. Follow the instructions on https://cloud.google.com/tpu/docs/kubernetes-engine-setup
#      to create a Kubernetes Engine cluster.
#   2. Change the environment variable MODEL_BUCKET in the Job spec to the
#      Google Cloud Storage location where you want to store the output model.
#   3. Run `kubectl create -f inception_v3_k8s.yaml`.

apiVersion: batch/v1
kind: Job
metadata:
  name: inception-v3-tpu
spec:
  template:
    metadata:
      annotations:
        # The Cloud TPUs that will be created for this Job must support
        # TensorFlow 1.9. This version MUST match the TensorFlow version that
        # your model is built on.
        tf-version.cloud-tpus.google.com: "1.9"
    spec:
      restartPolicy: Never
      containers:
      - name: inception-v3-tpu
        # The official TensorFlow 1.9 TPU model image built from https://github.com/tensorflow/tpu/blob/r1.9/tools/docker/Dockerfile.
        image: gcr.io/tensorflow/tpu-models:r1.9
        command:
          - python
          - /tensorflow_tpu_models/models/experimental/inception/inception_v3.py
          - --learning_rate=0.165
          - --train_steps=250000
          - --iterations=500
          - --use_data=real
          - --mode=train_and_eval
          - --train_steps_per_eval=2000
          - --data_dir=$(DATA_BUCKET)
          - --model_dir=$(MODEL_BUCKET)
        env:
          # The Google Cloud Storage location where the fake ImageNet dataset is
          # stored.
        - name: DATA_BUCKET
          value: "gs://cloud-tpu-test-datasets/fake_imagenet"
          # [REQUIRED] Must specify the Google Cloud Storage location where your
          # output model will be stored.
        - name: MODEL_BUCKET
          value: "gs://vishh/tf-models/inception_v3"
        resources:
          limits:
            # Request a single v2-8 Cloud TPU device to train the model.
            # A single v2-8 Cloud TPU device consists of 4 chips, each of which
            # has 2 cores, so there are 8 cores in total.
            cloud-tpus.google.com/v2: 8


================================================
FILE: demo/tpu-training/resnet-tpu.yaml
================================================
# Copyright 2018 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# Train ResNet-50 with fake ImageNet dataset using Cloud TPU and Google
# Kubernetes Engine.
#
# The tutorial is at https://cloud.google.com/tpu/docs/tutorials/kubernetes-engine-resnet.
#
# [Training Data]
#   In this example, we use randomly generated fake ImageNet dataset at
#   gs://cloud-tpu-test-datasets/fake_imagenet as the training data.
#
# [Instructions]
#   1. Follow the instructions on https://cloud.google.com/tpu/docs/kubernetes-engine-setup
#      to create a Kubernetes Engine cluster.
#   2. Change the environment variable MODEL_BUCKET in the Job spec to the
#      Google Cloud Storage location where you want to store the output model.
#   3. Run `kubectl create -f resnet_k8s.yaml`.

apiVersion: batch/v1
kind: Job
metadata:
  name: resnet-tpu
spec:
  template:
    metadata:
      annotations:
        # The Cloud TPUs that will be created for this Job must support
        # TensorFlow 1.9. This version MUST match the TensorFlow version that
        # your model is built on.
        tf-version.cloud-tpus.google.com: "1.9"
    spec:
      restartPolicy: Never
      containers:
      - name: resnet-tpu
        # The official TensorFlow 1.9 TPU model image built from https://github.com/tensorflow/tpu/blob/r1.9/tools/docker/Dockerfile.
        image: gcr.io/tensorflow/tpu-models:r1.9
        command:
        - python
        - /tensorflow_tpu_models/models/official/resnet/resnet_main.py
        - --data_dir=$(DATA_BUCKET)
        - --model_dir=$(MODEL_BUCKET)/$(POD_UID)
        env:
          # The Google Cloud Storage location where the fake ImageNet dataset is
          # stored.
        - name: DATA_BUCKET
          value: "gs://cloudtpu-imagenet-data/train"
          # [REQUIRED] Must specify the Google Cloud Storage location where your
          # output model will be stored.
        - name: MODEL_BUCKET
          value: "gs://vishh/tensorflow/models/resnet-train"
        - name: POD_UID
          valueFrom:
            fieldRef:
              fieldPath: metadata.uid
        resources:
          limits:
            # Request a single v2-8 Cloud TPU device to train the model.
            # A single v2-8 Cloud TPU device consists of 4 chips, each of which
            # has 2 cores, so there are 8 cores in total.
            cloud-tpus.google.com/v2: 8


================================================
FILE: example/cuda-mps/Dockerfile
================================================
# Basic Dockerfile
FROM nvidia/cuda:11.7.1-base-ubuntu22.04

COPY cuda_mem_and_sm_count /tmp
CMD ["/tmp/cuda_mem_and_sm_count"]


================================================
FILE: example/cuda-mps/Makefile
================================================
CUDA_BIN_PATH=/usr/local/cuda/bin
CC=$(CUDA_BIN_PATH)/nvcc
CUDA_MEM_GET_INFO=cuda_mem_and_sm_count
LINK_OPTS=

all: $(CUDA_MEM_GET_INFO)

$(CUDA_MEM_GET_INFO):
	$(CC) $@.c -o $@ $+ $(LINK_OPTS)

clean:
	rm -f $(CUDA_MEM_GET_INFO)


================================================
FILE: example/cuda-mps/cuda_mem_and_sm_count.c
================================================
#include <cuda.h>
#include <cuda_runtime.h>

#include <dlfcn.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define CHECK(x, err, errcode) do { \
  int retval = (x); \
  if (retval != 1) { \
    fprintf(stderr, "Error: %s returned %d at %s:%d\n", #x, retval, __FILE__, __LINE__); \
    return(errcode); \
  } \
} while (0)


int main(int argc, const char **argv)
{
        int deviceCount = 0;
        cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
        if (error_id != cudaSuccess)
        {
                fprintf(stderr, "cudaGetDeviceCount returned: %s\n", cudaGetErrorString(error_id));
                return 1;
        }

        if (deviceCount == 0)
        {
                printf("No GPU devices found\n");
                return 1;
        }

        for (int i = 0; i < deviceCount; i++)
        {
                cudaSetDevice(i);
          // Get memory info, total memory and the memory can be used in this client.
                size_t freeMem = 0;
                size_t totalMem = 0;
                error_id = cudaMemGetInfo(&freeMem, &totalMem);
                if (error_id != cudaSuccess)
                {
                        fprintf(stderr, "cudaMemGetInfo returned: %s\n", cudaGetErrorString(error_id));
                	return error_id;
                }
                printf("For device %d:  Free memory: %ld M, Total memory: %ld M\n", i, freeMem/(1024*1024), totalMem/(1024*1024));
        // Get device info, the multi process count can be used in this client.
                int numProcs;
                error_id = cudaDeviceGetAttribute(&numProcs, cudaDevAttrMultiProcessorCount, i);
                if (error_id != cudaSuccess)
                {
                        fprintf(stderr, "cudaGetDeviceProperties returned: %s\n", cudaGetErrorString(error_id));
                	return error_id;
                }
                printf("For device %d:  multiProcessorCount: %d\n", i, numProcs);
        }
        return 0;
}


================================================
FILE: example/tensorflow-notebook/README.md
================================================
# Jupyter Notebook Scientific Python Stack + Tensorflow with GPU

## What it Gives You

* Tensorflow for Python 2.7 and 3.5 (with GPU support)

## Basic Use

The following command launches an instance of this notebook in a kubernetes cluster with stateful storage.

```
kubectl apply -f tensorflow-notebook.yaml
```

This creates a public service (L4 Loadbalancer) using which you can access your notebook.
Note: The notebook image is large and may take sometime to get running.

Take note of the authentication token included in the notebook startup log messages. Include it in the URL you visit to access the Notebook server or enter it in the Notebook login form.


## Tensorflow Single Machine Mode

```
import tensorflow as tf

hello = tf.Variable('Hello World!')

sess = tf.Session()
init = tf.global_variables_initializer()

sess.run(init)
sess.run(hello)
```

```



================================================
FILE: example/tensorflow-notebook/tensorflow-notebook.yaml
================================================
# Copyright 2017 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
apiVersion: v1
kind: Service
metadata:
  name: tf-notebook
  labels:
    app: tf-notebook
spec:
  type: LoadBalancer
  ports:
  - port: 80
    name: http
    targetPort: 8888
  selector:
    app: tf-notebook
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: tf-notebook
spec:
  serviceName: "tf-notebook"
  replicas: 1
  template:
    metadata:
      labels:
        app: tf-notebook
    spec:
      tolerations:
      - key: nvidia.com/gpu
        effect: NoSchedule
      securityContext:
        fsGroup: 0
      containers:
      - name: tf-notebook
        image: gcr.io/kubeflow/tensorflow-notebook-cpu:v1
        resources:
#          limits:
 #           nvidia.com/gpu: 1 # Number of GPUs
          requests:
            cpu: 1
            memory: 1Gi
        ports:
        - containerPort: 8888
          name: notebook
        volumeMounts:
        - name: stateful
          mountPath: /home/jovyan/stateful
  volumeClaimTemplates:
  - metadata:
      name: stateful
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi


================================================
FILE: fast-socket-installer/README.md
================================================
# NCCL Fast Socket Installer
NCCL Fast Socket is a transport layer plugin to improve NCCL collective
communication performance on Google Cloud.


## To deploy NCCL fast socket installer on all fast-socket labeled nodes in GKE cluster
- ### Add fast-socket node label 
  After creating the GKE cluster, add
 `cloud.google.com/gke-nccl-fastsocket: "true"` on the node YAML file
- ### Deploy NCCL fast socket installer
  Run `kubectl apply -f fast-socket-installer.yaml`

### Notes:
For GKE version 1.25.2-gke.1700 or later, NCCL Fast Socket is supported through
[gcloud CLI](https://cloud.google.com/kubernetes-engine/docs/how-to/nccl-fast-socket).



================================================
FILE: fast-socket-installer/fast-socket-installer.yaml
================================================
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nccl-fastsocket-manual-installer
  namespace: kube-system
  labels:
    k8s-app: nccl-fastsocket-manual-installer
spec:
  selector:
    matchLabels:
      k8s-app: nccl-fastsocket-manual-installer
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nccl-fastsocket-manual-installer
        k8s-app: nccl-fastsocket-manual-installer
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-accelerator
                operator: Exists
              - key: cloud.google.com/gke-nccl-fastsocket
                operator: Exists
      tolerations:
      - operator: "Exists"
      hostNetwork: true
      hostPID: true
      volumes:
      - name: nvidia-install-lib64-dir-host
        hostPath:
          path: /home/kubernetes/bin/nvidia/lib64
          type: DirectoryOrCreate
      initContainers:
      - image: gcr.io/gke-release/fastsocket-installer@sha256:cb8dca70b5611769fd2e0e8eb9aebf81a89d4378537cff104775c873abf2d9c5
        name: nccl-fastsocket-installer
        command:
        - bash
        - -c
        - |
          cp /usr/lib/libnccl-net.so $NCCL_INSTALL_DIR/
        securityContext:
          privileged: true
        resources:
          limits:
            memory: 100Mi
        env:
        - name: NCCL_INSTALL_DIR
          value: /usr/local/nvidia/lib64
        volumeMounts:
        - name: nvidia-install-lib64-dir-host
          mountPath: /usr/local/nvidia/lib64
      containers:
      - image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
        name: pause


================================================
FILE: fast-socket-installer/image/Dockerfile
================================================
FROM gcr.io/gke-release/debian-base:bookworm-v1.0.7-gke.2

RUN apt-get update && \
    apt-get install -y --no-install-recommends --allow-change-held-packages apt-transport-https ca-certificates curl gnupg && \
    echo "deb https://packages.cloud.google.com/apt google-fast-socket main" | tee /etc/apt/sources.list.d/google-fast-socket.list && \
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add && \
    apt update &&  apt install -y --no-install-recommends google-fast-socket=0.0.5


================================================
FILE: fast-socket-installer/image/README.md
================================================
# NCCL Fast Socket Installer Image

The Dockerfile downloads and installs a specific stable release of NCCL Fast
Socket (see documentation [here](https://github.com/google/nccl-fastsocket)).

## To build NCCL Fast Socket Installer Image
From root of the repository, run:
  `docker build -f fast-socket-installer/image/Dockerfile .`

================================================
FILE: gke-topology-scheduler/README.md
================================================
## Overview

This document gives instructions on how to enable topology in GKE clusters on
A3M & A3U machines clusters.

The general outline for this to be successful is:
- We add labels for topology to nodes in the cluster with a daemonset
- We handle pod scheduling with a scheduling daemon
- Pods with the added scheduleGate are picked up and scheduled

## Prerequisites

For topology awareness to be enabled in A3M, a GKE node pool has to be created with
compact placement. Specifically, the `physical_host` attribute
[ref](https://cloud.google.com/compute/docs/instances/use-compact-placement-policies#verify-vm-location)
should be present for each GPU node in the cluster.

## Configuration

To initialize Kubernetes authentication for scripts:

```gcloud container clusters get-credentials [cluster name] --zone [cluster zone] --project [project id]```

## Usage

First copy this folder locally

Next create config maps for scripts required by pods

-   Run `kubectl create configmap topology-scheduler-scripts --namespace
    kube-system --from-file=schedule-daemon.py=schedule-daemon.py
    --from-file=label-nodes-daemon.py=label-nodes-daemon.py`

Next apply the service account config to the cluster:

-   Apply `service-account.yaml` config to the cluster by running `kubectl apply
    -f service-account.yaml`.

Now apply the scheduling and label daemons to the cluster so that pods will
automatically be scheduled with the correct schedulingGates

-   Apply `schedule-daemon.yaml` daemonset to the cluster by running `kubectl
    apply -f schedule-daemon.yaml`.
-   If GKE <1.31, apply `label-nodes-daemon.yaml` daemonset
    to the cluster by running `kubectl apply -f label-nodes-daemon.yaml`.

To let the daemon "pick up" the workload for scheduling, simply add a
schedulingGate that starts with ”gke.io/topology-aware-auto-”, for example:

```
  schedulingGates:
  - name: "gke.io/topology-aware-auto-my-job-name"
```


================================================
FILE: gke-topology-scheduler/label-nodes-daemon.py
================================================
#!/usr/bin/env python

# Copyright 2024 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Daemon to update Kubernetes node labels based on GCE VM metadata."""

import time
from typing import Dict

from kubernetes import client
from kubernetes import config
import requests


def update_node_labels(kube: client.CoreV1Api) -> None:
  """Updates Kubernetes node labels based on GCE VM metadata."""
  node_name_url = "http://metadata.google.internal/computeMetadata/v1/instance/name"
  metadata_url = "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host"
  headers = {"Metadata-Flavor": "Google"}

  response = requests.get(node_name_url, headers=headers)

  if response.status_code == 200:
    node_name = response.text
  else:
    print("Node name not found")
    return

  response = requests.get(metadata_url, headers=headers)

  if response.status_code == 200:
    physical_host = response.text
  else:
    print("physical host not found")
    return

  cluster, rack, host = physical_host.split("/")[1:]

  node_labels: Dict[str, str] = {
      "topology.gke.io/cluster": cluster,
      "topology.gke.io/rack": rack,
      "topology.gke.io/host": host,
  }

  kube.patch_node(node_name, {"metadata": {"labels": node_labels}})  # type: ignore
  print(f"Updated labels on node {node_name}: {node_labels}")


if __name__ == "__main__":
  # Kubernetes configuration
  config.load_incluster_config()
  client = client.CoreV1Api()

  while True:
    print("Starting node update")
    # Update node labels
    update_node_labels(client)
    time.sleep(600)


================================================
FILE: gke-topology-scheduler/label-nodes-daemon.yaml
================================================
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: label-nodes-daemon
  namespace: kube-system
spec:
  selector:
    matchLabels:
      name: label-nodes-daemon
  template:
    metadata:
      labels:
        name: label-nodes-daemon
    spec:
      tolerations:
      - operator: "Exists"
        key: nvidia.com/gpu
      hostNetwork: true
      containers:
      - name: label-nodes-daemon
        image: python:3.10
        command:
        - bash
        - -c
        - |
          pip install kubernetes
          python -u /scripts/label-nodes-daemon.py
        volumeMounts:
        - name: scripts-volume
          mountPath: /scripts
      volumes:
      - name: scripts-volume
        configMap:
          name: topology-scheduler-scripts
      serviceAccount: topology-scheduler


================================================
FILE: gke-topology-scheduler/schedule-daemon.py
================================================
#!/usr/bin/env python

# Copyright 2024 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""schedule-daemon.py is a Topology-aware Kubernetes pod scheduler."""

import argparse
import collections
import itertools
import logging
import re
import time
from typing import Any
import kubernetes
import kubernetes.client
import kubernetes.client.models
import kubernetes.client.rest
from kubernetes.utils import quantity

# Configure logging
logging.basicConfig(
    level=logging.INFO,  # Set the root logger level to INFO
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('my_app.log'),  # Log to a file
        logging.StreamHandler(),  # Log to the console
    ],
)

# labels for GKE<1.31, require labeler sidecar
PRERELEASE_CLUSTER_LABEL = 'topology.gke.io/cluster'
PRERELEASE_RACK_LABEL = 'topology.gke.io/rack'
PRERELEASE_HOST_LABEL = 'topology.gke.io/host'
# labels for GKE>=1.31
CLUSTER_LABEL = 'cloud.google.com/gce-topology-block'
RACK_LABEL = 'cloud.google.com/gce-topology-subblock'
HOST_LABEL = 'cloud.google.com/gce-topology-host'

# Kubernetes labels used to identify jobs and their completion indices.
# These labels are typically set by Kubernetes controllers like JobSet or
# CronJob controllers. The job completion index is used to track the progress
# of a job and ensure that pods are scheduled in the correct order.
JOB_COMPLETION_INDEX_LABEL_KEY = 'batch.kubernetes.io/job-completion-index'
JOB_NAME_LABEL_KEY = 'job-name'

# Most ML workloads are launched on batch jobs or JobSet API. To support
# kubeflow operators (eg MPIJobs) we introduce the alternative labels to read
KUBEFLOW_REPLICA_INDEX_LABEL_KEY = 'training.kubeflow.org/replica-index'
KUBEFLOW_JOB_NAME_LABEL_KEY = 'training.kubeflow.org/job-name'

# collection of methods to extract job name from pod metadata
UNKNOWN_JOB_NAME = 'jobless'  # in case when job name is not found


def extract_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:
  """Extracts the job name label from a pod.

  Args:
    pod: The pod to extract the job name.

  Returns:
    The job name label, or UNKNOWN_JOB_NAME if the label is not found.
  """
  return pod.metadata.labels.get(JOB_NAME_LABEL_KEY, UNKNOWN_JOB_NAME)


def extract_kubeflow_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:
  """Extracts the kubeflow job name label from a pod.

  Args:
    pod: The pod to extract the job name.

  Returns:
    The kubeflow job name label, or UNKNOWN_JOB_NAME if the label is not found.
  """
  return pod.metadata.labels.get(KUBEFLOW_JOB_NAME_LABEL_KEY, UNKNOWN_JOB_NAME)


def extract_owner_reference_uid(pod: kubernetes.client.models.V1Pod) -> str:
  """Extracts the owner reference UID from a pod.

  Args:
    pod: The pod to extract the job name.

  Returns:
    The owner reference UID, or UNKNOWN_JOB_NAME if the owner reference is not
    found.
  """
  if pod.metadata.owner_references:
    return pod.metadata.owner_references[0].uid
  return UNKNOWN_JOB_NAME


def extract_helm_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:
  """Extracts the helm job name label from a pod.

  Args:
    pod: The pod to extract the job name.

  Returns:
    The helm job name label, or UNKNOWN_JOB_NAME if the label is not found.
  """
  if pod.metadata.labels:
    return pod.metadata.labels.get('name', UNKNOWN_JOB_NAME)
  return UNKNOWN_JOB_NAME


def pod_sorting_key(pod_info: dict[str, Any]) -> tuple[str, int]:
  """Returns key/rank to be used for sorting pods.

  Given that numbers is often suffixed for multi-node deployments,
  here we use a (prefix, number) tuple for the sorting key.
  This means "xxx-pod2" should appear before "xxx-pod10"

  Args:
    pod_info: The pod info.

  Returns:
    A tuple of the pod's prefix and index.
  """

  try:
    index_value = pod_info.get('index')
    if index_value is not None:
      return int(index_value)
  except (ValueError, TypeError) as e:
    logging.exception(
        'Error converting %s pod index to integer: %s', pod_info['name'], e
    )
  # if the suffix is a number, extract it from the name
  name = pod_info['name']
  if match := re.fullmatch(r'^(.*?)(\d+)$', name):
    prefix, suffix = match.groups()
    return (prefix, int(suffix))
  else:
    logging.warning(
        'Pod %s does not have a numeric suffix. Using 0 as index.', name
    )
    return (name, 0)  # No numeric suffix


def node_topology_distance(node1: dict[str, Any], node2: dict[str, Any]) -> int:
  """Calculates the distance between two nodes in the topology.

  Args:
    node1: The first node.
    node2: The second node.

  Returns:
    The distance between the two nodes, or 0 if the nodes are in the same
    topology block. It's also 0, if topology labels are missing.
  """
  # distance between cluster/rack/host tuples
  node1_topology_keys = node_topology_key(node1)
  node2_topology_keys = node_topology_key(node2)
  result = 1000000
  for i, node1_topology_key in enumerate(node1_topology_keys):
    if node1_topology_key != node2_topology_keys[i]:
      return result
    result /= 100
  return 0


def node_topology_key(
    node: dict[str, Any],
) -> tuple[str, str, str] | tuple[()]:
  """Extract topology labels of a node.

  Args:
    node: The node.

  Returns:
    A tuple of the node's topology labels, or an empty tuple if the node does
    not have topology labels.
  """
  node_labels = node['node_labels']
  for labels in [
      (CLUSTER_LABEL, RACK_LABEL, HOST_LABEL),
      (PRERELEASE_CLUSTER_LABEL, PRERELEASE_RACK_LABEL, PRERELEASE_HOST_LABEL),
  ]:
    if all(label in node_labels for label in labels):
      return tuple(node_labels[label] for label in labels)
  logging.info('Node %s does not have topology labels', node['name'])
  return ()


def get_pod_used_resources(
    pod: kubernetes.client.models.V1Pod,
) -> tuple[int, int, int]:
  """Get the resources used by this pod.

  Args:
    pod: The pod.

  Returns:
    A tuple of the pod's used CPU, memory, and GPU.
  """
  used_cpu, used_memory, used_gpu = 0, 0, 0
  if pod.status is None or pod.status.container_statuses is None:
    return used_cpu, used_memory, used_gpu
  for container, container_status in zip(
      pod.spec.containers, pod.status.container_statuses
  ):
    if container_status.state.terminated is not None:
      # terminated pods don't use resources
      continue
    requests = container.resources.requests or {}
    used_cpu += quantity.parse_quantity(requests.get('cpu', 0))
    used_memory += quantity.parse_quantity(requests.get('memory', 0))
    used_gpu += int(requests.get('nvidia.com/gpu', 0))
  return used_cpu, used_memory, used_gpu


def all_pods_have_same_tolerations(
    pods: list[kubernetes.client.models.V1Pod],
) -> bool:
  """Checks if all pods in the list have the same tolerations.

   Edge case: Empty list is considered to have having same tolerations.

  Args:
    pods: A list of V1Pod objects.

  Returns:
    True if all pods have the same tolerations, False otherwise.
  """
  if not pods:
    return True

  first_pod_tolerations = pods[0].spec.tolerations
  return all(pod.spec.tolerations == first_pod_tolerations for pod in pods[1:])


def find_schedulable_nodes(
    nodes: list[kubernetes.client.models.V1Node],
    other_running_pods: list[kubernetes.client.models.V1Pod],
    new_pods_to_schedule: dict[str, dict[str, Any]],
) -> dict[str, Any]:
  """Finds nodes that can be scheduled.

  Args:
    nodes: A list of V1Node objects.
    other_running_pods: A list of running pods. They occupy node resources.
    new_pods_to_schedule: Info dict of pods to schedule.

  Returns:
    A dict of node names to node infos for node where scheduling is possible.
  """
  nodes_info = {}
  # guarantee: we checked above that all pods have same tolerations
  tolerated_taint_dict = {}
  tolerated_taints = next(iter(new_pods_to_schedule.values()))[
      'spec'
  ].tolerations
  if tolerated_taints:
    tolerated_taint_dict = {t.key: t for t in tolerated_taints}

  for node in nodes:
    node_name = node.metadata.name
    # skip nodes that have taints that are not covered by pod tolerations
    if any(
        t.key not in tolerated_taint_dict
        or (
            tolerated_taint_dict[t.key].operator == 'Equal'
            and tolerated_taint_dict[t.key].value != t.value
        )
        for t in node.spec.taints or []
    ):
      logging.info(
          'Skipping node %s because it has taints (%s) which are not covered'
          ' by pod tolerations %s',
          node_name,
          node.spec.taints,
          tolerated_taint_dict,
      )
      continue

    # skip nodes that is not in Ready state
    if any(
      condition.type == "Ready" and condition.status != "True" for condition in node.status.conditions
      ):
        logging.info(
          'Skipping node %s because it is NotReady',
          node_name
        )
        continue

    allocatable = node.status.allocatable
    used_cpu, used_memory, used_gpu = 0, 0, 0

    for pod in other_running_pods:
      if pod.spec.node_name and pod.spec.node_name == node_name:
        cpu, mem, gpu = get_pod_used_resources(pod)
        used_cpu += cpu
        used_memory += mem
        used_gpu += gpu

    free_cpu = quantity.parse_quantity(allocatable['cpu']) - used_cpu
    free_memory = quantity.parse_quantity(allocatable['memory']) - used_memory
    free_gpu = int(allocatable.get('nvidia.com/gpu', 0)) - used_gpu

    node_info = {
        'name': node_name,
        'cpu': free_cpu,
        'memory': free_memory,
        'gpu': free_gpu,
    }
    if node.metadata.labels:
      node_info['node_labels'] = node.metadata.labels
    nodes_info[node_name] = node_info

    logging.info(
        'Node: %s, CPU: %s, Memory: %s, GPU: %s, Topology: %s',
        node_name,
        free_cpu,
        free_memory,
        free_gpu,
        node_topology_key(node_info),
    )

  return nodes_info


def find_pod_gates(
    pods: list[kubernetes.client.models.V1Pod], prefix: str
) -> set[str]:
  """Finds pods with scheduling gates that starts with the prefix.

  Args:
    pods: A list of V1Pod objects.
    prefix: The prefix of the scheduling gate.

  Returns:
    A set of scheduling gate names.
  """
  s = set()
  for pod in pods:
    if pod.spec.scheduling_gates:
      for g in pod.spec.scheduling_gates:
        if g.name.startswith(prefix):
          s.add(g.name)
  return s


def find_schedulable_pods(
    job_name: str,
    pods: list[kubernetes.client.models.V1Pod],
) -> dict[str, dict[str, Any]]:
  """Finds pods that can be scheduled for a given gate.

  Args:
    job_name: The name of the job.
    pods: A list of V1Pod objects.

  Returns:
    A dict of pod names to pod infos for schedulable pods.
  """
  pods_to_schedule = {}
  for pod in pods:
    pod_name = pod.metadata.name
    pod_index = None
    if JOB_COMPLETION_INDEX_LABEL_KEY in pod.metadata.labels:
      pod_index = pod.metadata.labels[JOB_COMPLETION_INDEX_LABEL_KEY]
    elif KUBEFLOW_REPLICA_INDEX_LABEL_KEY in pod.metadata.labels:
      pod_index = pod.metadata.labels[KUBEFLOW_REPLICA_INDEX_LABEL_KEY]
    else:
      # it's not hard stop, we still can order pods by name
      logging.info(
          'No index in pod %s metadata. Ordering derived from name.',
          pod_name,
      )

    used_cpu, used_memory, used_gpu = 0, 0, 0
    for container in pod.spec.containers:
      requests = container.resources.requests or {}
      used_cpu += quantity.parse_quantity(requests.get('cpu', 0))
      used_memory += quantity.parse_quantity(requests.get('memory', 0))
      used_gpu += int(requests.get('nvidia.com/gpu', 0))

    pod_info = {
        'name': pod_name,
        'namespace': pod.metadata.namespace,
        'index': pod_index,
        'cpu': used_cpu,
        'memory': used_memory,
        'gpu': used_gpu,
        'spec': pod.spec,
        'metadata': pod.metadata,
        'job_name': job_name,
        'creation_time': pod.metadata.creation_timestamp,
    }
    if pod.spec.node_selector:
      pod_info['node_selector'] = pod.spec.node_selector
    pods_to_schedule[pod_name] = pod_info

    logging.info(
        'Found schedulable pod: %s/%s, CPU: %s, Memory: %s, GPU: %s Index: %s',
        pod.metadata.namespace,
        pod_name,
        used_cpu,
        used_memory,
        used_gpu,
        pod_index,
    )

  return pods_to_schedule


def can_schedule(node: dict[str, Any], pod: dict[str, Any]) -> bool:
  """Checks if a given pod can be scheduled on a given node.

  The decision is based on resource node availability and pod requriements. The
  node_selector is also checked, if the pod has it.

  Args:
    node: The node to check if the pod can be scheduled on.
    pod: The pod to check if it can be scheduled on the node.

  Returns:
    True if the pod can be scheduled on the node, False otherwise.
  """
  node_selector = pod.get('node_selector', {})
  node_labels = node.get('node_labels', {})

  for key, value in node_selector.items():
    if key not in node_labels or node_labels[key] != value:
      return False

  return (
      node['cpu'] >= pod['cpu']
      and node['memory'] >= pod['memory']
      and node['gpu'] >= pod['gpu']
  )


def schedule_pod_on_node(
    v1: kubernetes.client.CoreV1Api,
    pod_name: str,
    pod_namespace: str,
    node: dict[str, Any],
    gate_name: str,
) -> bool:
  """Schedules a pod on a given node using affinity for direct assignment.

  Args:
    v1: The kubernetes client.
    pod_name: The name of the pod to schedule.
    pod_namespace: The namespace of the pod to schedule.
    node: The node to schedule the pod on.
    gate_name: The name of the gate to remove from the pod.

  Returns:
    True if the pod was scheduled on the node, False otherwise.
  """
  try:
    pod = v1.read_namespaced_pod(pod_name, pod_namespace)
    if any(gate.name == gate_name for gate in pod.spec.scheduling_gates):
      new_gates = [
          gate for gate in pod.spec.scheduling_gates if gate.name != gate_name
      ]
      pod.spec.affinity = {
          'nodeAffinity': {
              'requiredDuringSchedulingIgnoredDuringExecution': {
                  'nodeSelectorTerms': [{
                      'matchExpressions': [{
                          'key': 'kubernetes.io/hostname',
                          'operator': 'In',
                          'values': [node['name']],
                      }]
                  }]
              }
          }
      }
      pod.spec.scheduling_gates = new_gates

      v1.replace_namespaced_pod(pod_name, pod_namespace, pod)

      logging.info(
          'Pod %s/%s scheduled on %s with topology %s', pod_namespace, pod_name, node['name'], node_topology_key(node)
      )
  except kubernetes.client.rest.ApiException as e:
    logging.exception(
        'Exception when removing pod %s scheduling gate: %s', pod_name, e
    )
    return False
  return True


def calculate_pods_assignment(
    sorted_nodes: list[dict[str, Any]], sorted_pods: list[dict[str, Any]]
) -> list[int]:
  """Gets the best pod assignment by minimizing the topology distance.

  Args:
    sorted_nodes: A list of sorted node infos.
    sorted_pods: A list of sorted pod infos.

  Returns:
    A list of node indices that the pods should be assigned to.
  """
  assignment = [-i for i in reversed(range(1, len(sorted_pods) + 1))]
  best_assignment = []
  minimum_distance = float('inf')

  while True:
    all_ok = True
    i = len(assignment) - 1
    while i >= 0 and all_ok:
      assignment[i] += 1
      if assignment[i] == len(sorted_nodes):
        break  # no more nodes to consider
      if assignment[i] >= 0 and can_schedule(
          sorted_nodes[assignment[i]], sorted_pods[i]
      ):
        i -= 1
      elif i < len(assignment) - 1 and assignment[i] == assignment[i + 1] - 1:
        all_ok = False  # to ignore the half of triangle of all combinations

    # we checked all combinations, return what found so far
    if assignment[-1] == len(sorted_nodes):
      break
    # calculate total distance of the detected viable assignment
    if all_ok:
      new_distance = 0
      for i in range(1, len(sorted_pods)):
        new_distance += node_topology_distance(
            sorted_nodes[assignment[i]], sorted_nodes[assignment[i - 1]]
        )
      if new_distance < minimum_distance:
        best_assignment = assignment.copy()
        minimum_distance = new_distance

  return best_assignment


def list_pods(
    v1: kubernetes.client.CoreV1Api, state_filter: str = None
) -> list[kubernetes.client.models.V1Pod]:
  """Lists pods in all namespaces.

  Args:
    v1: The kubernetes client.
    state_filter: The pod state to filter by.

  Returns:
    A list of V1Pod objects.
  """
  pods = []
  for n in v1.list_namespace().items:
    namespace = n.metadata.name
    for pod in v1.list_namespaced_pod(namespace).items:
      if not state_filter or pod.status.phase == state_filter:
        pods.append(pod)
  return pods


def schedule_pod_with_gate(
    v1: kubernetes.client.CoreV1Api,
    gate_name: str,
) -> None:
  """Find and schedule pods with a given gate.

  Args:
    v1: k8s client
    gate_name: name of the gate to schedule pods with (see k8s yaml, eg
      schedulingGates=gke.io/topology-aware-auto-*`)
  """
  # query the pods again after the sleep, just in case not all gated pods
  # are returned from previous query
  pending_pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Pending')
  pods_for_given_gate: list[kubernetes.client.models.V1Pod] = []
  for p in pending_pods:
    if p.spec.scheduling_gates:
      if gate_name in {g.name for g in p.spec.scheduling_gates}:
        pods_for_given_gate.append(p)

  pods_per_job: dict[str, list[kubernetes.client.models.V1Pod]] = (
      collections.defaultdict(list)
  )
  jobless_pod_names: set[str] = set(
      [p.metadata.name for p in pods_for_given_gate]
  )
  for job_name_extractor in [
      extract_job_name_label,
      extract_kubeflow_job_name_label,
      extract_owner_reference_uid,
      extract_helm_job_name_label,
  ]:
    for job_name, job_pod_group in itertools.groupby(
        pods_for_given_gate,
        job_name_extractor,
    ):
      # ignore pod groups with not yet recognized job name
      # (we have 3 iters/different ways to extract it, see outer loop)
      if job_name == UNKNOWN_JOB_NAME:
        continue
      pod_group = list(job_pod_group)
      # sanity check: all pods have creation_timestamp
      if not all(p.metadata.creation_timestamp for p in pod_group):
        logging.error(
            'No pod creation_timestamp in job %s. Job ignored.Pods: %s',
            job_name,
            ', '.join([p.metadata.name for p in pod_group]),
        )
        # exclude such bad pods from consideration
        jobless_pod_names -= {p.metadata.name for p in pod_group}
        continue
      # sanity check: all pods have same tolerations
      if not all_pods_have_same_tolerations(pod_group):
        logging.error(
            'Pods in job %s have different tolerations. Job ignored.Pods: %s',
            job_name,
            ', '.join([p.metadata.name for p in pod_group]),
        )
        # exclude such bad pods from consideration
        jobless_pod_names -= {p.metadata.name for p in pod_group}
        continue
      pod_names_in_group = set([p.metadata.name for p in pod_group])
      # sanity check: if all job pods has been scheduled, we can ignore the job
      if all(p not in jobless_pod_names for p in pod_names_in_group):
        logging.info(
            'All %d pods of job %s are already scheduled. Job ignored.',
            len(pod_group),
            job_name,
        )
        continue

      # all checks passed
      jobless_pod_names -= pod_names_in_group
      pods_per_job[job_name] = list(pod_group)
      logging.info(
          'Found %d pods for job %s, created: %s',
          len(pods_per_job[job_name]),
          job_name,
          pods_per_job[job_name][0].metadata.creation_timestamp,
      )

  # sanity check
  if jobless_pod_names:
    logging.warning(
        'Found %d pods without explicit job name, going to schedule all'
        ' together. Pods: %s',
        len(jobless_pod_names),
        ', '.join(list(jobless_pod_names)),
    )
    # only for robustness we try to schedule them separately
    pods_per_job['pods-without-explicit-job-name'] = [
        p for p in pods_for_given_gate if p.metadata.name in jobless_pod_names
    ]

  logging.info('Start scheduling %d jobs', len(pods_per_job))

  nodes: list[kubernetes.client.models.V1Node] = v1.list_node().items
  # Sort job names based on the creation time of the first pod in each job group
  sorted_job_names = sorted(
      pods_per_job.keys(),
      key=lambda job_name: pods_per_job[job_name][
          0
      ].metadata.creation_timestamp,
  )
  running_pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Running')
  logging.info('Already running pods number: %d', len(running_pods))
  recently_scheduled_nodes_names = set()
  for job_name in sorted_job_names:
    job_pods: list[kubernetes.client.models.V1Pod] = pods_per_job.get(
        job_name, []
    )
    logging.info(
        'Attempting to schedule job: %s with %s pods ', job_name, len(job_pods)
    )
    try:
      schedulable_pods_infos: dict[str, Any] = find_schedulable_pods(
          job_name, job_pods
      )

      # filter out nodes that are already occupied by running pods
      nodes = [
          node
          for node in nodes
          if node.metadata.name not in recently_scheduled_nodes_names
      ]
      nodes_infos: dict[str, Any] = find_schedulable_nodes(
          nodes, running_pods, schedulable_pods_infos
      )

      if len(schedulable_pods_infos) > len(nodes_infos):
        logging.error(
            'Not enough nodes available for job %s scheduling: %s nodes, %s'
            ' pods. Skipping job.',
            job_name,
            len(nodes_infos),
            len(schedulable_pods_infos),
        )
        continue

      logging.info(
          'Available nodes for job %s scheduling: %s',
          job_name,
          len(nodes_infos),
      )

      sorted_pods = sorted(schedulable_pods_infos.values(), key=pod_sorting_key)
      sorted_nodes = sorted(nodes_infos.values(), key=node_topology_key)
      best_assignment = calculate_pods_assignment(sorted_nodes, sorted_pods)

      if not best_assignment:
        logging.error(
            'No scheduling for job %s with gate %s was found. Skipping job.',
            job_name,
            gate_name,
        )
        continue
      logging.info(
          'Assignment found, scheduling %s with %s pods.',
          job_name,
          len(job_pods),
      )

      for i, pod in enumerate(sorted_pods):
        node = sorted_nodes[best_assignment[i]]
        if not schedule_pod_on_node(
            v1, pod['name'], pod['namespace'], node, gate_name
        ):
          logging.error(
              'Failed to schedule pod %s on node %s. Skipping job %s',
              pod['name'],
              node['name'],
              job_name,
          )
          break
          # revisit: in case of failure clear up partially scheduled pods
        recently_scheduled_nodes_names.add(node['name'])

    except Exception as e:  # pylint: disable=broad-except
      logging.exception(
          'Exception when scheduling %s job,gate %s: %s', job_name, gate_name, e
      )


def run_scheduling_loop() -> None:
  """Runs scheduling.

  This function runs a infinite loop that periodically schedules pods with
  topology-aware  scheduling gates.
  """
  parser = argparse.ArgumentParser(prog='schedule-workload.py')

  parser.add_argument(
      '-g', '--gate', default='gke.io/topology-aware-auto-'
  )  # prefix of the schedule gate
  parser.add_argument(
      '-i', '--interval', default=1.0
  )  # intervals (in seconds) between scheduling
  parser.add_argument(
      '--ignored-namespace', nargs='*', default=[]
  )  # namespace to search for pods
  args = parser.parse_args()

  try:
    kubernetes.config.load_incluster_config()
  except kubernetes.config.ConfigException:
    kubernetes.config.load_kube_config()
  v1 = kubernetes.client.CoreV1Api()
  # wait needed during container restart to allow previously scheduled pods
  # to be visible on nodes and occupy resources for their correct estimates
  logging.info('[Cool off] 90sec')
  time.sleep(90.0)
  try:
    last_run_ts = time.time()
    while True:
      time_since_prev_run = time.time() - last_run_ts
      if time_since_prev_run < args.interval:
        logging.info('[Cool off] %ssec', args.interval - time_since_prev_run)
        time.sleep(args.interval - time_since_prev_run)
      last_run_ts = time.time()

      # Get pods to schedule
      pods: list[kubernetes.client.models.V1Pod] = list_pods(v1, 'Pending')

      gates = find_pod_gates(pods, args.gate)
      logging.info('Found %s pending pods and %s gates', len(pods), len(gates))

      if not gates:
        # No pods to be scheduled
        continue

      # sleep for 5 seconds, assuming that all pods within one group would be
      # all visible by then
      logging.info('[Cool off] 5sec')
      time.sleep(5.0)

      for g in gates:
        logging.info('Scheduling pods with gate %s', g)
        schedule_pod_with_gate(v1, g)
        logging.info('[Cool off] 60sec')
        time.sleep(60.0)  # cool off

  except kubernetes.client.rest.ApiException as e:
    logging.exception('Exception when listing Kubernetes nodes or pods: %s', e)


if __name__ == '__main__':
  run_scheduling_loop()


================================================
FILE: gke-topology-scheduler/schedule-daemon.yaml
================================================
apiVersion: apps/v1
kind: Deployment
metadata:
  name: topology-scheduler
  labels:
    app: topology-scheduler
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: topology-scheduler
  template:
    metadata:
      labels:
        app: topology-scheduler
    spec:
      tolerations:
      - key: "node-role.kubernetes.io/control-plane"
        operator: "Exists"
        effect: "NoSchedule"
      containers:
      - name: topology-scheduler-container
        image: python:3.10
        command:
        - /bin/sh
        - -c
        - |
          pip install google-auth cachetools google-api-python-client kubernetes
          python -u /scripts/schedule-daemon.py --ignored-namespace kube-system gmp-public gmp-system
        volumeMounts:
        - name: scripts-volume
          mountPath: /scripts
      volumes:
      - name: scripts-volume
        configMap:
          name: topology-scheduler-scripts
      serviceAccount: topology-scheduler
      restartPolicy: Always


================================================
FILE: gke-topology-scheduler/service-account.yaml
================================================
apiVersion: v1
kind: ServiceAccount
metadata:
  name: topology-scheduler
  namespace: kube-system

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: topology-scheduler
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list", "update", "patch"]
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "watch", "list"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch", "update", "patch"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: topology-scheduler
subjects:
- kind: ServiceAccount
  name: topology-scheduler
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: topology-scheduler
  apiGroup: rbac.authorization.k8s.io


================================================
FILE: go.mod
================================================
module github.com/GoogleCloudPlatform/container-engine-accelerators

go 1.25.8

require (
	cloud.google.com/go/compute/metadata v0.9.0
	github.com/NVIDIA/go-nvml v0.12.0-2
	github.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48
	github.com/containerd/nri v0.5.0
	github.com/fsnotify/fsnotify v1.7.0
	github.com/golang/glog v1.2.5
	github.com/google/go-cmp v0.7.0
	github.com/prometheus/client_golang v1.16.0
	github.com/sirupsen/logrus v1.8.3
	github.com/stretchr/testify v1.8.4
	golang.org/x/net v0.48.0
	golang.org/x/sys v0.39.0
	google.golang.org/grpc v1.79.3
	k8s.io/api v0.27.2
	k8s.io/apimachinery v0.27.2
	k8s.io/client-go v0.27.2
	k8s.io/kubelet v0.27.2
	sigs.k8s.io/yaml v1.3.0
)

require (
	github.com/beorn7/perks v1.0.1 // indirect
	github.com/cespare/xxhash/v2 v2.3.0 // indirect
	github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 // indirect
	github.com/davecgh/go-spew v1.1.1 // indirect
	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
	github.com/go-logr/logr v1.4.3 // indirect
	github.com/go-openapi/jsonpointer v0.19.6 // indirect
	github.com/go-openapi/jsonreference v0.20.1 // indirect
	github.com/go-openapi/swag v0.22.3 // indirect
	github.com/gogo/protobuf v1.3.2 // indirect
	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
	github.com/golang/protobuf v1.5.4 // indirect
	github.com/google/gnostic v0.5.7-v3refs // indirect
	github.com/google/gofuzz v1.1.0 // indirect
	github.com/google/uuid v1.6.0 // indirect
	github.com/josharian/intern v1.0.0 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/mailru/easyjson v0.7.7 // indirect
	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.2 // indirect
	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
	github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb // indirect
	github.com/pkg/errors v0.9.1 // indirect
	github.com/pmezard/go-difflib v1.0.0 // indirect
	github.com/prometheus/client_model v0.4.0 // indirect
	github.com/prometheus/common v0.44.0 // indirect
	github.com/prometheus/procfs v0.10.1 // indirect
	golang.org/x/oauth2 v0.34.0 // indirect
	golang.org/x/term v0.38.0 // indirect
	golang.org/x/text v0.32.0 // indirect
	golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
	google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect
	google.golang.org/protobuf v1.36.10 // indirect
	gopkg.in/inf.v0 v0.9.1 // indirect
	gopkg.in/yaml.v2 v2.4.0 // indirect
	gopkg.in/yaml.v3 v3.0.1 // indirect
	k8s.io/cri-api v0.25.3 // indirect
	k8s.io/klog/v2 v2.90.1 // indirect
	k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
)


================================================
FILE: go.sum
================================================
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/NVIDIA/go-nvml v0.12.0-2 h1:Sg239yy7jmopu/cuvYauoMj9fOpcGMngxVxxS1EBXeY=
github.com/NVIDIA/go-nvml v0.12.0-2/go.mod h1:7ruy85eOM73muOc/I37euONSwEyFqZsv5ED9AogD4G0=
github.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48 h1:JO/JF5CBte9mvATbhoh32swu9erf07ZdLgwFj8u21UQ=
github.com/NVIDIA/gpu-monitoring-tools v0.0.0-20211102125545-5a2c58442e48/go.mod h1:oKPJa5eOTkWvlT4/Y4D8Nds44Fzmww5HUK+xwO+DwTA=
github.com/NVIDIA/gpu-monitoring-tools/bindings/go/dcgm v0.0.0-20210325210537-29b4f1784f18/go.mod h1:8qXwltEzU3idjUcVpMOv3FNgxxbDeXZPGMLyc/khWiY=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/containerd/nri v0.5.0 h1:bwCtKpi8i5FCA8g8WjIZNod91CEfIloYpV0+TH2prnQ=
github.com/containerd/nri v0.5.0/go.mod h1:qIu2NlP3r/qK4YGnNuQf0De4VPqQWP2i2CVBfAZbGzg=
github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3 h1:BhCp66ofL8oYcdelc3CBXc2/Pfvvgx+s+mrp9TvNgn8=
github.com/containerd/ttrpc v1.1.1-0.20220420014843-944ef4a40df3/go.mod h1:YYyNVhZrTMiaf51Vj6WhAJqJw+vl/nzABhj8pWrzle4=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk=
github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo=
github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=
github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ=
github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb h1:1xSVPOd7/UA+39/hXEGnBJ13p6JFB0E1EvQFlrRDOXI=
github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.8.3 h1:DBBfY8eMYazKEJHb3JKpSPfpgd2mBCoNFlQx6C5fftU=
github.com/sirupsen/logrus v1.8.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44=
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo=
k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4=
k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg=
k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=
k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE=
k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ=
k8s.io/cri-api v0.25.3 h1:YaiQ05CM4+5L2DAz0KoSa4sv4/VlQvLbf3WHKICPSXs=
k8s.io/cri-api v0.25.3/go.mod h1:riC/P0yOGUf2K1735wW+CXs1aY2ctBgePtnnoFLd0dU=
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
k8s.io/kubelet v0.27.2 h1:vpJnBkqQjxItEhehKG0toXoZ+G+tf4UXAOqtMJy6qgc=
k8s.io/kubelet v0.27.2/go.mod h1:1SVrHaLnuw53nQJx8036k9HjE0teDXZtbN51cYC0HSc=
k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=


================================================
FILE: gpudirect-rdma/nccl-rdma-installer-a4x.yaml
================================================
# Copyright 2024 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nccl-rdma-installer
  namespace: kube-system
  labels:
    k8s-app: nccl-rdma-installer
spec:
  selector:
    matchLabels:
      k8s-app: nccl-rdma-installer
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nccl-rdma-installer
        k8s-app: nccl-rdma-installer
    spec:
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: cloud.google.com/gke-accelerator
                    operator: In
                    values:
                      - nvidia-gb200
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                      - arm64
      tolerations:
        - operator: "Exists"
      hostNetwork: true
      hostPID: true
      volumes:
        - name: library-dir-host
          hostPath:
            path: /home/kubernetes/bin/nvidia/lib64
            type: DirectoryOrCreate
        - name: gib
          hostPath:
            path: /home/kubernetes/bin/gib
        - name: nvidia-dir
          hostPath:
            path: /home/kubernetes/bin/nvidia
            type: Directory
      initContainers:
        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-arm64:v1.1.0
          name: nccl-rdma-installer
          resources:
            requests:
              cpu: 150m
          securityContext:
            privileged: true
          volumeMounts:
            - name: library-dir-host
              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64
            - name: gib
              mountPath: /usr/local/home/kubernetes/bin/gib
          command: ["/bin/sh", "-c"]
          args:
            - |
              set -ex
              /scripts/container_entry.sh install --install-nccl
              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64
              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib
              echo "installation finishes"
      containers:
        - image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
          name: pause


================================================
FILE: gpudirect-rdma/nccl-rdma-installer-autopilot.yaml
================================================
# Copyright 2025 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Namespace
metadata:
  name: rdma-system
  labels:
    name: rdma-system
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nccl-rdma-installer
  namespace: rdma-system
  labels:
    k8s-app: nccl-rdma-installer
spec:
  selector:
    matchLabels:
      k8s-app: nccl-rdma-installer
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nccl-rdma-installer
        k8s-app: nccl-rdma-installer
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: cloud.google.com/gke-accelerator
                    operator: In
                    values:
                      - nvidia-h200-141gb
                      - nvidia-b200
      tolerations:
        - operator: "Exists"
      hostNetwork: true
      hostPID: true
      volumes:
        - name: library-dir-host
          hostPath:
            path: /home/kubernetes/bin/nvidia/lib64
            type: DirectoryOrCreate
        - name: gib
          hostPath:
            path: /home/kubernetes/bin/gib
      initContainers:
        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib:v1.1.1
          name: nccl-rdma-installer
          resources:
            requests:
              cpu: 150m
          securityContext:
            privileged: true
          volumeMounts:
            - name: library-dir-host
              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64
            - name: gib
              mountPath: /usr/local/home/kubernetes/bin/gib
          command: ["/bin/sh", "-c"]
          args:
            - |
              set -ex
              /scripts/container_entry.sh install --install-nccl
              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64
              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib
              echo "installation finishes"
      containers:
        - image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
          name: pause

================================================
FILE: gpudirect-rdma/nccl-rdma-installer.yaml
================================================
# Copyright 2024 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nccl-rdma-installer
  namespace: kube-system
  labels:
    k8s-app: nccl-rdma-installer
spec:
  selector:
    matchLabels:
      k8s-app: nccl-rdma-installer
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nccl-rdma-installer
        k8s-app: nccl-rdma-installer
    spec:
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: cloud.google.com/gke-accelerator
                    operator: In
                    values:
                      - nvidia-h200-141gb
                      - nvidia-b200
      tolerations:
        - operator: "Exists"
      hostNetwork: true
      hostPID: true
      volumes:
        - name: library-dir-host
          hostPath:
            path: /home/kubernetes/bin/nvidia/lib64
            type: DirectoryOrCreate
        - name: gib
          hostPath:
            path: /home/kubernetes/bin/gib
      initContainers:
        - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib:v1.1.1
          name: nccl-rdma-installer
          resources:
            requests:
              cpu: 150m
          securityContext:
            privileged: true
          volumeMounts:
            - name: library-dir-host
              mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64
            - name: gib
              mountPath: /usr/local/home/kubernetes/bin/gib
          command: ["/bin/sh", "-c"]
          args:
            - |
              set -ex
              /scripts/container_entry.sh install --install-nccl
              cp -r /var/lib/gib/lib64/. /usr/local/home/kubernetes/bin/nvidia/lib64
              cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib
              echo "installation finishes"
      containers:
        - image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
          name: pause

================================================
FILE: gpudirect-rdma/nccl-test-a4-autopilot.yaml
================================================
# Copyright 2025 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth1","network":"gvnic-1"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: nvidia-b200
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: gib
    hostPath:
      path: /home/kubernetes/bin/gib
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
      readOnly: true
    - name: gib
      mountPath: /usr/local/gib
      readOnly: true
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 8
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      source /usr/local/gib/scripts/set_nccl_env.sh
      sleep infinity
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth1","network":"gvnic-1"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: nvidia-b200
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: gib
    hostPath:
      path: /home/kubernetes/bin/gib
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
      readOnly: true
    - name: gib
      mountPath: /usr/local/gib
      readOnly: true
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 8
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      source /usr/local/gib/scripts/set_nccl_env.sh
      sleep infinity

================================================
FILE: gpudirect-rdma/nccl-test-a4.yaml
================================================
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  hostNetwork: false
  hostPID: false
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
        - name: gib
          mountPath: /usr/local/gib
        - name: shared-memory
          mountPath: /dev/shm
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 8
      command: ["/bin/bash", "-c"]
      args:
        - |
          /scripts/container_entry.sh shell
          source /usr/local/gib/scripts/set_nccl_env.sh
          sleep infinity
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  hostNetwork: false
  hostPID: false
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
        - name: gib
          mountPath: /usr/local/gib
        - name: shared-memory
          mountPath: /dev/shm
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 8
      command: ["/bin/bash", "-c"]
      args:
        - |
          /scripts/container_entry.sh shell
          source /usr/local/gib/scripts/set_nccl_env.sh
          sleep infinity

================================================
FILE: gpudirect-rdma/nccl-test-a4x-max-jobset.yaml
================================================
apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
  name: nccl-test-compute-domain
spec:
  numNodes: __NUM_NODES__
  channel:
    resourceClaimTemplate:
      name: nccl-test-compute-domain-channel
---
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
metadata:
  name: nccl-test-all-mrdma
spec:
  spec:
    devices:
      requests:
      - name: req-mrdma
        exactly:
          deviceClassName: mrdma.google.com
          allocationMode: ExactCount
          count: 8
---
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
  name: allgather
  # labels:
  #   kueue.x-k8s.io/queue-name: a4x
spec:
  ttlSecondsAfterFinished: 1200
  network:
    enableDNSHostnames: true
  replicatedJobs:
    - name: worker
      template:
        spec:
          parallelism: __NUM_NODES__
          completions: __NUM_NODES__
          template:
            spec:
              terminationGracePeriodSeconds: 5
              activeDeadlineSeconds: 3600
              restartPolicy: Never
              nodeSelector:
                cloud.google.com/gke-accelerator: nvidia-gb300
              tolerations:
              - key: nvidia.com/gpu
                operator: Equal
                value: present
                effect: NoSchedule
              - key: kubernetes.io/arch
                operator: Equal
                value: arm64
                effect: NoSchedule
              setHostnameAsFQDN: true
              volumes:
              # - name: gib
              #   hostPath:
              #     path: /home/kubernetes/bin/gib
              - name: nvidia
                hostPath:
                  path: /home/kubernetes/bin/nvidia
              - name: lib64
                hostPath:
                  path: /lib64
              - name: shared-memory
                emptyDir:
                  medium: "Memory"
                  sizeLimit: 250Gi
              resourceClaims:
              - name: compute-domain-channel
                resourceClaimTemplateName: nccl-test-compute-domain-channel
              - name: rdma
                resourceClaimTemplateName: nccl-test-all-mrdma
              containers:
              - name: nccl-test
                stdin: true
                tty: true
                image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1
                env:
                - name: MY_NODE_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: spec.nodeName
                - name: MY_JOB_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.labels['job-name']
                - name: MY_SUBDOMAIN
                  value: "allgather"
                - name: OMPI_ALLOW_RUN_AS_ROOT
                  value: "1"
                - name: OMPI_ALLOW_RUN_AS_ROOT_CONFIRM
                  value: "1"
                - name: N_NODES
                  value: "__NUM_NODES__"
                - name: LD_LIBRARY_PATH
                  value: /usr/local/nvidia/lib64
                command:
                - bash
                - -c
                - |
                  set -x
                  echo "Starting workload container on ${MY_NODE_NAME} for $N_NODES benchmark"
                  # Install ping
                  apt update -y
                  apt install -y iputils-ping
                  # sleep infinity

                  # Start sshd
                  /scripts/container_entry.sh daemon &

                  # Get helper variables to form all hostnames
                  export NODE_RANK=$JOB_COMPLETION_INDEX

                  # For every worker, wait till online and add to hostfile
                  for i in $(seq 0 $(($N_NODES-1))); do
                    OTHER=${MY_JOB_NAME}-${i}.${MY_SUBDOMAIN}
                    until ssh -p 222 -o StrictHostKeyChecking=no $OTHER hostname; do
                      echo Waiting for ${OTHER}...
                      sleep 10
                    done
                    echo ${OTHER} port=222 slots=4 | tee -a /tmp/hostfile;
                  done

                  cat /tmp/hostfile

                  # Launch from head node
                  if [[ "${NODE_RANK}" -eq "0" ]]; then

                      # World Level = 0x0, Rail Aligned = 0x7
                      export NCCL_TESTS_SPLIT_MASK="0x0";

                      # Get all relevant NCCL / env vars to pass to all workers
                      export NCCL_DEBUG_SUBSYS="INIT,NET"
                      export NCCL_DEBUG="INFO"
                      ENV_VARS=$(echo ${!NCCL*} ${!OMPI*} | sed 's/ / -x /g')

                      mpirun --hostfile /tmp/hostfile \
                        -x PATH -x LD_LIBRARY_PATH="/usr/local/gib/lib64:${LD_LIBRARY_PATH}" \
                        -x $ENV_VARS \
                        -x NCCL_DEBUG="${NCCL_DEBUG}" \
                        -x NCCL_DEBUG_SUBSYS="${NCCL_DEBUG_SUBSYS}" \
                        -x NCCL_TESTS_SPLIT_MASK="${NCCL_TESTS_SPLIT_MASK}" \
                        -mca plm_rsh_no_tree_spawn 1 \
                        --mca orte_keep_fqdn_hostnames 1 \
                        --mca btl self,tcp \
                        --mca btl_tcp_if_include eth0 \
                        --bind-to none \
                        --mca plm_rsh_agent "ssh -q -o LogLevel=ERROR -o StrictHostKeyChecking=no -p 222" \
                        /third_party/nccl-tests/build/all_gather_perf -b 1K -e 8G -f 2 -g 1 -w 5 --iters 100 -c 1

                  else
                    HEAD_NODE=${MY_JOB_NAME}-0.${MY_SUBDOMAIN}
                    # Wait for head node to exit
                    while ssh -p 222 -o StrictHostKeyChecking=no $HEAD_NODE hostname; do
                      sleep 5
                    done
                  fi

                  exit 0
                volumeMounts:
                - name: nvidia
                  mountPath: /usr/local/nvidia
                - name: shared-memory
                  mountPath: /dev/shm
                resources:
                  limits:
                    nvidia.com/gpu: 4
                  requests:
                    nvidia.com/gpu: 4
                  claims:
                    - name: compute-domain-channel
                    - name: rdma
              restartPolicy: Never


================================================
FILE: gpudirect-rdma/nccl-test-a4x-max.yaml
================================================
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
  name: nccl-test-compute-domain
spec:
  numNodes: 2
  channel:
    resourceClaimTemplate:
      name: nccl-test-compute-domain-channel
---
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
metadata:
  name: nccl-test-all-mrdma
spec:
  spec:
    devices:
      requests:
      - name: req-mrdma
        exactly:
          deviceClassName: mrdma.google.com
          allocationMode: ExactCount
          count: 8
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
spec:
  tolerations:
  - key: "kubernetes.io/arch"
    operator: "Equal"
    value: "arm64"
    effect: "NoSchedule"
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb300
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1
    securityContext:
      capabilities:
        add: ["IPC_LOCK"]
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
        - name: rdma
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel
  - name: rdma
    resourceClaimTemplateName: nccl-test-all-mrdma
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
spec:
  tolerations:
  - key: "kubernetes.io/arch"
    operator: "Equal"
    value: "arm64"
    effect: "NoSchedule"
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb300
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1
    securityContext:
      capabilities:
        add: ["IPC_LOCK"]
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
        - name: rdma
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel
  - name: rdma
    resourceClaimTemplateName: nccl-test-all-mrdma


================================================
FILE: gpudirect-rdma/nccl-test-autopilot.yaml
================================================
# Copyright 2025 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth1","network":"gvnic-1"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: nvidia-h200-141gb
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
          readOnly: true
        - name: gib
          mountPath: /usr/local/gib
          readOnly: true
        - name: shared-memory
          mountPath: /dev/shm
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 8
      command: ["/bin/bash", "-c"]
      args:
        - |
          /scripts/container_entry.sh shell
          source /usr/local/gib/scripts/set_nccl_env.sh
          sleep infinity
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth1","network":"gvnic-1"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"},
        {"interfaceName":"eth6","network":"rdma-4"},
        {"interfaceName":"eth7","network":"rdma-5"},
        {"interfaceName":"eth8","network":"rdma-6"},
        {"interfaceName":"eth9","network":"rdma-7"}
      ]
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: nvidia-h200-141gb
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.1
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
          readOnly: true
        - name: gib
          mountPath: /usr/local/gib
          readOnly: true
        - name: shared-memory
          mountPath: /dev/shm
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 8
      command: ["/bin/bash", "-c"]
      args:
        - |
          /scripts/container_entry.sh shell
          source /usr/local/gib/scripts/set_nccl_env.sh
          sleep infinity

================================================
FILE: gpudirect-rdma/nccl-test-imex-a4x-max.yaml
================================================
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
  name: nccl-test-compute-domain
spec:
  numNodes: 2
  channel:
    resourceClaimTemplate:
      name: nccl-test-compute-domain-channel
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb300
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostNetwork: false
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb300
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostNetwork: false
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-gib-a4x-max-arm64:v1.1.1
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel


================================================
FILE: gpudirect-rdma/nccl-test-imex-a4x.yaml
================================================
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
  name: nccl-test-compute-domain
spec:
  numNodes: 2
  channel:
    resourceClaimTemplate:
      name: nccl-test-compute-domain-channel
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"}
      ]
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb200
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostNetwork: false
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: gib
    hostPath:
      path: /home/kubernetes/bin/gib
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic-arm64:v1.1.0
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      source /usr/local/gib/scripts/set_nccl_env.sh
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
  annotations:
    networking.gke.io/default-interface: 'eth0'
    networking.gke.io/interfaces: |
      [
        {"interfaceName":"eth0","network":"default"},
        {"interfaceName":"eth2","network":"rdma-0"},
        {"interfaceName":"eth3","network":"rdma-1"},
        {"interfaceName":"eth4","network":"rdma-2"},
        {"interfaceName":"eth5","network":"rdma-3"}
      ]
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/gke-accelerator
            operator: In
            values:
            - nvidia-gb200
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  hostNetwork: false
  hostPID: false
  volumes:
  - name: library-dir-host
    hostPath:
      path: /home/kubernetes/bin/nvidia
  - name: gib
    hostPath:
      path: /home/kubernetes/bin/gib
  - name: shared-memory
    emptyDir:
      medium: "Memory"
      sizeLimit: 250Gi
  containers:
  - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic-arm64:v1.1.0
    name: test
    resources:
      requests:
        cpu: 150m
    volumeMounts:
    - name: library-dir-host
      mountPath: /usr/local/nvidia
    - name: shared-memory
      mountPath: /dev/shm
    env:
    - name: LD_LIBRARY_PATH
      value: /usr/local/nvidia/lib64
    resources:
      limits:
        nvidia.com/gpu: 4
      claims:
        - name: compute-domain-channel
    command: ["/bin/bash", "-c"]
    args:
    - |
      /scripts/container_entry.sh shell
      source /usr/local/gib/scripts/set_nccl_env.sh
      sleep infinity
  resourceClaims:
  - name: compute-domain-channel
    resourceClaimTemplateName: nccl-test-compute-domain-channel


================================================
FILE: gpudirect-rdma/nccl-test-managed-rdma.yaml
================================================
# Copyright 2026 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Service
metadata:
  name: nccl-host-1
spec:
  selector:
    name: nccl-host-1
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: nccl-host-2
spec:
  selector:
    name: nccl-host-2
  clusterIP: None
---
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
metadata:
  name: nccl-test-all-mrdma
spec:
  spec:
    devices:
      requests:
      - name: req-mrdma
        exactly:
          deviceClassName: mrdma.google.com
          allocationMode: ExactCount
          count: 8
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-1
  labels:
    name: nccl-host-1
spec:
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  resourceClaims:
  - name: rdma
    resourceClaimTemplateName: nccl-test-all-mrdma
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.0
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
        - name: gib
          mountPath: /usr/local/gib
        - name: shared-memory
          mountPath: /dev/shm
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 8
        claims:
        - name: rdma
      command: ["/bin/bash", "-c"]
      args:
        - |
          /scripts/container_entry.sh shell
          source /usr/local/gib/scripts/set_nccl_env.sh
          sleep infinity
---
apiVersion: v1
kind: Pod
metadata:
  name: nccl-test-host-2
  labels:
    name: nccl-host-2
spec:
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
    - name: gib
      hostPath:
        path: /home/kubernetes/bin/gib
    - name: shared-memory
      emptyDir:
        medium: "Memory"
        sizeLimit: 250Gi
  resourceClaims:
  - name: rdma
    resourceClaimTemplateName: nccl-test-all-mrdma
  containers:
    - image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:v1.1.0
      name: test
      resources:
        requests:
          cpu: 150m
      volumeMounts:
        - name: library-dir-host
   
Download .txt
Showing preview only (234K chars total). Download the full file or copy to clipboard to get everything.
gitextract_9dxzhgnv/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       └── go_tests.yml
├── .prow.yaml
├── .travis.yml
├── CONTRIBUTING.md
├── Dockerfile
├── Gopkg.toml
├── LICENSE
├── Makefile
├── README.md
├── VERSION
├── asapd-lite-installer/
│   └── asapd-lite-installer-a4x-max-bm-cos.yaml
├── build/
│   ├── boilerplate/
│   │   ├── boilerplate.go.txt
│   │   ├── boilerplate.py
│   │   ├── boilerplate.py.txt
│   │   └── boilerplate.sh.txt
│   ├── check_boilerplate.sh
│   ├── check_errorf.sh
│   └── check_gofmt.sh
├── cmd/
│   └── nvidia_gpu/
│       ├── README.md
│       ├── device-plugin.yaml
│       ├── nvidia_gpu.go
│       └── rbac.yaml
├── daemonset.yaml
├── demo/
│   ├── device-plugin-health-monitoring-enabled.yaml
│   ├── gpu-error/
│   │   └── illegal-memory-access/
│   │       ├── Dockerfile
│   │       ├── README
│   │       └── vectorAdd.cu
│   ├── gpu-training/
│   │   └── generate_job.sh
│   ├── image-prepull-ds.yaml
│   ├── minikube/
│   │   ├── pv.yaml
│   │   ├── pvc.yaml
│   │   └── resnet-gpu.yaml
│   ├── serving/
│   │   ├── load_generator.yaml
│   │   └── tensorflow-serving.yaml
│   └── tpu-training/
│       ├── inception-v3-tpu.yaml
│       └── resnet-tpu.yaml
├── example/
│   ├── cuda-mps/
│   │   ├── Dockerfile
│   │   ├── Makefile
│   │   └── cuda_mem_and_sm_count.c
│   └── tensorflow-notebook/
│       ├── README.md
│       └── tensorflow-notebook.yaml
├── fast-socket-installer/
│   ├── README.md
│   ├── fast-socket-installer.yaml
│   └── image/
│       ├── Dockerfile
│       └── README.md
├── gke-topology-scheduler/
│   ├── README.md
│   ├── label-nodes-daemon.py
│   ├── label-nodes-daemon.yaml
│   ├── schedule-daemon.py
│   ├── schedule-daemon.yaml
│   └── service-account.yaml
├── go.mod
├── go.sum
├── gpudirect-rdma/
│   ├── nccl-rdma-installer-a4x.yaml
│   ├── nccl-rdma-installer-autopilot.yaml
│   ├── nccl-rdma-installer.yaml
│   ├── nccl-test-a4-autopilot.yaml
│   ├── nccl-test-a4.yaml
│   ├── nccl-test-a4x-max-jobset.yaml
│   ├── nccl-test-a4x-max.yaml
│   ├── nccl-test-autopilot.yaml
│   ├── nccl-test-imex-a4x-max.yaml
│   ├── nccl-test-imex-a4x.yaml
│   ├── nccl-test-managed-rdma.yaml
│   └── nccl-test.yaml
├── gpudirect-tcpx/
│   ├── nccl-config.yaml
│   ├── nccl-tcpx-installer-autopilot.yaml
│   ├── nccl-tcpx-installer.yaml
│   ├── nccl-test-latest-autopilot.yaml
│   ├── nccl-test-latest.yaml
│   ├── nccl-test-unprivileged-without-hostnetwork.yaml
│   ├── nccl-test-without-hostnetwork.yaml
│   ├── nccl-test.yaml
│   ├── optmem-max-ds.yaml
│   └── tcpx-metrics-server.yaml
├── gpudirect-tcpxo/
│   ├── README.md
│   ├── best-practice.md
│   ├── cos-enable-kdump.yaml
│   ├── fix-hostname.yaml
│   ├── nccl-tcpxo-installer-autopilot.yaml
│   ├── nccl-tcpxo-installer.yaml
│   ├── nccl-test-latest-autopilot.yaml
│   ├── nccl-test-latest.yaml
│   ├── nccl-test-unprivileged-without-hostnetwork.yaml
│   ├── nccl-test.yaml
│   └── topology-scheduler/
│       ├── README.md
│       ├── label-nodes-daemon.py
│       ├── label-nodes-daemon.yaml
│       ├── schedule-daemon.py
│       ├── schedule-daemon.yaml
│       └── service-account.yaml
├── nri_device_injector/
│   ├── Dockerfile
│   ├── README.md
│   ├── nri-device-injector-autopilot.yaml
│   ├── nri-device-injector.yaml
│   ├── nri_device_injector.go
│   └── nri_device_injector_test.go
├── nvidia-driver-installer/
│   ├── cos/
│   │   ├── daemonset-confidential-latest.yaml
│   │   ├── daemonset-confidential.yaml
│   │   ├── daemonset-nvidia-mig.yaml
│   │   ├── daemonset-preloaded-latest-a4x.yaml
│   │   ├── daemonset-preloaded-latest.yaml
│   │   ├── daemonset-preloaded.yaml
│   │   ├── daemonset-vgpu-latest.yaml
│   │   └── kustomization.yaml
│   ├── minikube/
│   │   ├── Dockerfile
│   │   ├── Makefile
│   │   ├── daemonset.yaml
│   │   └── entrypoint.sh
│   └── ubuntu/
│       ├── Dockerfile
│       ├── Makefile
│       ├── README.md
│       ├── daemonset-preloaded-R525.yaml
│       ├── daemonset-preloaded-R535.yaml
│       ├── daemonset-preloaded-R550.yaml
│       ├── daemonset-preloaded-R570.yaml
│       ├── daemonset-preloaded.yaml
│       ├── daemonset.yaml
│       └── entrypoint.sh
├── nvidia-persistenced-installer/
│   ├── Dockerfile
│   ├── README.md
│   ├── nvidia_persistenced_installer.go
│   └── nvidia_persistenced_installer_test.go
├── partition_gpu/
│   ├── Dockerfile
│   ├── README.md
│   ├── partition_gpu.go
│   ├── partition_gpu.yaml
│   └── partition_gpu_test.go
├── pkg/
│   └── gpu/
│       └── nvidia/
│           ├── beta_plugin.go
│           ├── beta_plugin_test.go
│           ├── gpusharing/
│           │   ├── gpusharing.go
│           │   └── gpusharing_test.go
│           ├── health_check/
│           │   ├── health_checker.go
│           │   └── health_checker_test.go
│           ├── manager.go
│           ├── manager_test.go
│           ├── metrics/
│           │   ├── devices.go
│           │   ├── metrics.go
│           │   ├── metrics_test.go
│           │   └── util.go
│           ├── mig/
│           │   ├── mig.go
│           │   └── mig_test.go
│           ├── nvmlutil/
│           │   ├── nvml_mock.go
│           │   └── nvmlutil.go
│           ├── util/
│           │   ├── util.go
│           │   └── util_test.go
│           └── version_visibility/
│               ├── version_visibility.go
│               └── version_visibility_test.go
├── test/
│   └── nvidia_gpu/
│       ├── daemonset-nvidia-mig-test.yaml
│       ├── daemonset-nvidia-preloaded-test.yaml
│       ├── daemonset-ubuntu-preloaded.yaml
│       ├── device-plugin-test.yaml
│       └── xid-config.yaml
└── vendor/
    ├── cloud.google.com/
    │   └── go/
    │       └── compute/
    │           └── metadata/
    │               ├── CHANGES.md
    │               ├── LICENSE
    │               ├── README.md
    │               ├── log.go
    │               ├── metadata.go
    │               ├── retry.go
    │               ├── retry_linux.go
    │               ├── syscheck.go
    │               ├── syscheck_linux.go
    │               └── syscheck_windows.go
    ├── github.com/
    │   ├── NVIDIA/
    │   │   ├── go-nvml/
    │   │   │   ├── LICENSE
    │   │   │   └── pkg/
    │   │   │       ├── dl/
    │   │   │       │   ├── dl.go
    │   │   │       │   └── dl_linux.go
    │   │   │       └── nvml/
    │   │   │           ├── api.go
    │   │   │           ├── cgo_helpers.go
    │   │   │           ├── cgo_helpers.h
    │   │   │           ├── const.go
    │   │   │           ├── const_gen.go
    │   │   │           ├── device.go
    │   │   │           ├── doc.go
    │   │   │           ├── dynamicLibrary_mock.go
    │   │   │           ├── event_set.go
    │   │   │           ├── gpm.go
    │   │   │           ├── init.go
    │   │   │           ├── lib.go
    │   │   │           ├── nvml.go
    │   │   │           ├── nvml.h
    │   │   │           ├── return.go
    │   │   │           ├── system.go
    │   │   │           ├── types_gen.go
    │   │   │           ├── unit.go
    │   │   │           └── vgpu.go
    │   │   └── gpu-monitoring-tools/
    │   │       ├── LICENSE
    │   │       └── bindings/
    │   │           └── go/
    │   │               └── nvml/
    │   │                   ├── bindings.go
    │   │                   ├── mig.go
    │   │                   ├── nvml.go
    │   │                   ├── nvml.h
    │   │                   ├── nvml_dl.go
    │   │                   └── nvml_dl_windows.go
    │   ├── beorn7/
    │   │   └── perks/
    │   │       ├── LICENSE
    │   │       └── quantile/
    │   │           ├── exampledata.txt
    │   │           └── stream.go
    │   ├── cespare/
    │   │   └── xxhash/
    │   │       └── v2/
    │   │           ├── LICENSE.txt
    │   │           ├── README.md
    │   │           ├── testall.sh
    │   │           ├── xxhash.go
    │   │           ├── xxhash_amd64.s
    │   │           ├── xxhash_arm64.s
    │   │           ├── xxhash_asm.go
    │   │           ├── xxhash_other.go
    │   │           ├── xxhash_safe.go
    │   │           └── xxhash_unsafe.go
    │   ├── containerd/
    │   │   ├── nri/
    │   │   │   ├── LICENSE
    │   │   │   └── pkg/
    │   │   │       ├── api/
    │   │   │       │   ├── adjustment.go
    │   │   │       │   ├── api.pb.go
    │   │   │       │   ├── api.proto
    │   │   │       │   ├── api_ttrpc.pb.go
    │   │   │       │   ├── device.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── env.go
    │   │   │       │   ├── event.go
    │   │   │       │   ├── helpers.go
    │   │   │       │   ├── hooks.go
    │   │   │       │   ├── mount.go
    │   │   │       │   ├── namespace.go
    │   │   │       │   ├── optional.go
    │   │   │       │   ├── plugin.go
    │   │   │       │   ├── resources.go
    │   │   │       │   └── update.go
    │   │   │       ├── log/
    │   │   │       │   └── log.go
    │   │   │       ├── net/
    │   │   │       │   ├── conn.go
    │   │   │       │   ├── multiplex/
    │   │   │       │   │   ├── mux.go
    │   │   │       │   │   └── ttrpc.go
    │   │   │       │   ├── socketpair_unix.go
    │   │   │       │   └── socketpair_windows.go
    │   │   │       └── stub/
    │   │   │           └── stub.go
    │   │   └── ttrpc/
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── PROTOCOL.md
    │   │       ├── Protobuild.toml
    │   │       ├── README.md
    │   │       ├── channel.go
    │   │       ├── client.go
    │   │       ├── codec.go
    │   │       ├── config.go
    │   │       ├── doc.go
    │   │       ├── errors.go
    │   │       ├── handshake.go
    │   │       ├── interceptor.go
    │   │       ├── metadata.go
    │   │       ├── request.pb.go
    │   │       ├── request.proto
    │   │       ├── server.go
    │   │       ├── services.go
    │   │       ├── stream.go
    │   │       ├── stream_server.go
    │   │       ├── test.proto
    │   │       └── unixcreds_linux.go
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── json.go
    │   │           ├── jsoniter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── evanphx/
    │   │   └── json-patch/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── merge.go
    │   │       └── patch.go
    │   ├── fsnotify/
    │   │   └── fsnotify/
    │   │       ├── .cirrus.yml
    │   │       ├── .editorconfig
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .mailmap
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── backend_fen.go
    │   │       ├── backend_inotify.go
    │   │       ├── backend_kqueue.go
    │   │       ├── backend_other.go
    │   │       ├── backend_windows.go
    │   │       ├── fsnotify.go
    │   │       ├── mkdoc.zsh
    │   │       ├── system_bsd.go
    │   │       └── system_darwin.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── gogoproto/
    │   │       │   ├── Makefile
    │   │       │   ├── doc.go
    │   │       │   ├── gogo.pb.go
    │   │       │   ├── gogo.pb.golden
    │   │       │   ├── gogo.proto
    │   │       │   └── helper.go
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       ├── protoc-gen-gogo/
    │   │       │   └── descriptor/
    │   │       │       ├── Makefile
    │   │       │       ├── descriptor.go
    │   │       │       ├── descriptor.pb.go
    │   │       │       ├── descriptor_gostring.gen.go
    │   │       │       └── helper.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── golang/
    │   │   ├── glog/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── glog.go
    │   │   │   ├── glog_file.go
    │   │   │   ├── glog_file_linux.go
    │   │   │   ├── glog_file_nonwindows.go
    │   │   │   ├── glog_file_other.go
    │   │   │   ├── glog_file_posix.go
    │   │   │   ├── glog_file_windows.go
    │   │   │   ├── glog_flags.go
    │   │   │   └── internal/
    │   │   │       ├── logsink/
    │   │   │       │   ├── logsink.go
    │   │   │       │   └── logsink_fatal.go
    │   │   │       └── stackdump/
    │   │   │           └── stackdump.go
    │   │   ├── groupcache/
    │   │   │   ├── LICENSE
    │   │   │   └── lru/
    │   │   │       └── lru.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           ├── any/
    │   │           │   └── any.pb.go
    │   │           ├── any.go
    │   │           ├── doc.go
    │   │           ├── duration/
    │   │           │   └── duration.pb.go
    │   │           ├── duration.go
    │   │           ├── timestamp/
    │   │           │   └── timestamp.pb.go
    │   │           └── timestamp.go
    │   ├── google/
    │   │   ├── gnostic/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       ├── document.go
    │   │   │       ├── openapi-3.0.json
    │   │   │       └── openapi-3.1.json
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── matttproud/
    │   │   └── golang_protobuf_extensions/
    │   │       ├── LICENSE
    │   │       ├── NOTICE
    │   │       └── pbutil/
    │   │           ├── .gitignore
    │   │           ├── Makefile
    │   │           ├── decode.go
    │   │           ├── doc.go
    │   │           └── encode.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── opencontainers/
    │   │   └── runtime-spec/
    │   │       ├── LICENSE
    │   │       └── specs-go/
    │   │           ├── config.go
    │   │           ├── state.go
    │   │           └── version.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── pmezard/
    │   │   └── go-difflib/
    │   │       ├── LICENSE
    │   │       └── difflib/
    │   │           └── difflib.go
    │   ├── prometheus/
    │   │   ├── client_golang/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── prometheus/
    │   │   │       ├── .gitignore
    │   │   │       ├── README.md
    │   │   │       ├── build_info_collector.go
    │   │   │       ├── collector.go
    │   │   │       ├── counter.go
    │   │   │       ├── desc.go
    │   │   │       ├── doc.go
    │   │   │       ├── expvar_collector.go
    │   │   │       ├── fnv.go
    │   │   │       ├── gauge.go
    │   │   │       ├── get_pid.go
    │   │   │       ├── get_pid_gopherjs.go
    │   │   │       ├── go_collector.go
    │   │   │       ├── go_collector_go116.go
    │   │   │       ├── go_collector_latest.go
    │   │   │       ├── histogram.go
    │   │   │       ├── internal/
    │   │   │       │   ├── almost_equal.go
    │   │   │       │   ├── difflib.go
    │   │   │       │   ├── go_collector_options.go
    │   │   │       │   ├── go_runtime_metrics.go
    │   │   │       │   └── metric.go
    │   │   │       ├── labels.go
    │   │   │       ├── metric.go
    │   │   │       ├── num_threads.go
    │   │   │       ├── num_threads_gopherjs.go
    │   │   │       ├── observer.go
    │   │   │       ├── process_collector.go
    │   │   │       ├── process_collector_js.go
    │   │   │       ├── process_collector_other.go
    │   │   │       ├── process_collector_windows.go
    │   │   │       ├── promauto/
    │   │   │       │   └── auto.go
    │   │   │       ├── promhttp/
    │   │   │       │   ├── delegator.go
    │   │   │       │   ├── http.go
    │   │   │       │   ├── instrument_client.go
    │   │   │       │   ├── instrument_server.go
    │   │   │       │   └── option.go
    │   │   │       ├── registry.go
    │   │   │       ├── summary.go
    │   │   │       ├── testutil/
    │   │   │       │   ├── lint.go
    │   │   │       │   ├── promlint/
    │   │   │       │   │   └── promlint.go
    │   │   │       │   └── testutil.go
    │   │   │       ├── timer.go
    │   │   │       ├── untyped.go
    │   │   │       ├── value.go
    │   │   │       ├── vec.go
    │   │   │       ├── vnext.go
    │   │   │       └── wrap.go
    │   │   ├── client_model/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── go/
    │   │   │       └── metrics.pb.go
    │   │   ├── common/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── expfmt/
    │   │   │   │   ├── decode.go
    │   │   │   │   ├── encode.go
    │   │   │   │   ├── expfmt.go
    │   │   │   │   ├── fuzz.go
    │   │   │   │   ├── openmetrics_create.go
    │   │   │   │   ├── text_create.go
    │   │   │   │   └── text_parse.go
    │   │   │   ├── internal/
    │   │   │   │   └── bitbucket.org/
    │   │   │   │       └── ww/
    │   │   │   │           └── goautoneg/
    │   │   │   │               ├── README.txt
    │   │   │   │               └── autoneg.go
    │   │   │   └── model/
    │   │   │       ├── alert.go
    │   │   │       ├── fingerprinting.go
    │   │   │       ├── fnv.go
    │   │   │       ├── labels.go
    │   │   │       ├── labelset.go
    │   │   │       ├── metric.go
    │   │   │       ├── model.go
    │   │   │       ├── signature.go
    │   │   │       ├── silence.go
    │   │   │       ├── time.go
    │   │   │       ├── value.go
    │   │   │       ├── value_float.go
    │   │   │       ├── value_histogram.go
    │   │   │       └── value_type.go
    │   │   └── procfs/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── MAINTAINERS.md
    │   │       ├── Makefile
    │   │       ├── Makefile.common
    │   │       ├── NOTICE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── arp.go
    │   │       ├── buddyinfo.go
    │   │       ├── cmdline.go
    │   │       ├── cpuinfo.go
    │   │       ├── cpuinfo_armx.go
    │   │       ├── cpuinfo_loong64.go
    │   │       ├── cpuinfo_mipsx.go
    │   │       ├── cpuinfo_others.go
    │   │       ├── cpuinfo_ppcx.go
    │   │       ├── cpuinfo_riscvx.go
    │   │       ├── cpuinfo_s390x.go
    │   │       ├── cpuinfo_x86.go
    │   │       ├── crypto.go
    │   │       ├── doc.go
    │   │       ├── fs.go
    │   │       ├── fs_statfs_notype.go
    │   │       ├── fs_statfs_type.go
    │   │       ├── fscache.go
    │   │       ├── internal/
    │   │       │   ├── fs/
    │   │       │   │   └── fs.go
    │   │       │   └── util/
    │   │       │       ├── parse.go
    │   │       │       ├── readfile.go
    │   │       │       ├── sysreadfile.go
    │   │       │       ├── sysreadfile_compat.go
    │   │       │       └── valueparser.go
    │   │       ├── ipvs.go
    │   │       ├── kernel_random.go
    │   │       ├── loadavg.go
    │   │       ├── mdstat.go
    │   │       ├── meminfo.go
    │   │       ├── mountinfo.go
    │   │       ├── mountstats.go
    │   │       ├── net_conntrackstat.go
    │   │       ├── net_dev.go
    │   │       ├── net_ip_socket.go
    │   │       ├── net_protocols.go
    │   │       ├── net_sockstat.go
    │   │       ├── net_softnet.go
    │   │       ├── net_tcp.go
    │   │       ├── net_udp.go
    │   │       ├── net_unix.go
    │   │       ├── net_wireless.go
    │   │       ├── net_xfrm.go
    │   │       ├── netstat.go
    │   │       ├── proc.go
    │   │       ├── proc_cgroup.go
    │   │       ├── proc_cgroups.go
    │   │       ├── proc_environ.go
    │   │       ├── proc_fdinfo.go
    │   │       ├── proc_interrupts.go
    │   │       ├── proc_io.go
    │   │       ├── proc_limits.go
    │   │       ├── proc_maps.go
    │   │       ├── proc_netstat.go
    │   │       ├── proc_ns.go
    │   │       ├── proc_psi.go
    │   │       ├── proc_smaps.go
    │   │       ├── proc_snmp.go
    │   │       ├── proc_snmp6.go
    │   │       ├── proc_stat.go
    │   │       ├── proc_status.go
    │   │       ├── proc_sys.go
    │   │       ├── schedstat.go
    │   │       ├── slab.go
    │   │       ├── softirqs.go
    │   │       ├── stat.go
    │   │       ├── swaps.go
    │   │       ├── thread.go
    │   │       ├── ttar
    │   │       ├── vm.go
    │   │       └── zoneinfo.go
    │   └── stretchr/
    │       └── testify/
    │           ├── LICENSE
    │           └── assert/
    │               ├── assertion_compare.go
    │               ├── assertion_compare_can_convert.go
    │               ├── assertion_compare_legacy.go
    │               ├── assertion_format.go
    │               ├── assertion_format.go.tmpl
    │               ├── assertion_forward.go
    │               ├── assertion_forward.go.tmpl
    │               ├── assertion_order.go
    │               ├── assertions.go
    │               ├── doc.go
    │               ├── errors.go
    │               ├── forward_assertions.go
    │               └── http_assertions.go
    ├── golang.org/
    │   └── x/
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── context/
    │       │   │   └── context.go
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go125.go
    │       │   │   ├── config_go126.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority_rfc7540.go
    │       │   │   ├── writesched_priority_rfc9218.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   ├── internal/
    │       │   │   ├── httpcommon/
    │       │   │   │   ├── ascii.go
    │       │   │   │   ├── headermap.go
    │       │   │   │   └── request.go
    │       │   │   └── timeseries/
    │       │   │       └── timeseries.go
    │       │   └── trace/
    │       │       ├── events.go
    │       │       ├── histogram.go
    │       │       └── trace.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── registry/
    │       │       │   ├── key.go
    │       │       │   ├── mksyscall.go
    │       │       │   ├── syscall.go
    │       │       │   ├── value.go
    │       │       │   └── zsyscall_windows.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │   ├── term.go
    │       │   ├── term_plan9.go
    │       │   ├── term_unix.go
    │       │   ├── term_unix_bsd.go
    │       │   ├── term_unix_other.go
    │       │   ├── term_unsupported.go
    │       │   ├── term_windows.go
    │       │   └── terminal.go
    │       ├── text/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── secure/
    │       │   │   └── bidirule/
    │       │   │       ├── bidirule.go
    │       │   │       ├── bidirule10.0.0.go
    │       │   │       └── bidirule9.0.0.go
    │       │   ├── transform/
    │       │   │   └── transform.go
    │       │   └── unicode/
    │       │       ├── bidi/
    │       │       │   ├── bidi.go
    │       │       │   ├── bracket.go
    │       │       │   ├── core.go
    │       │       │   ├── prop.go
    │       │       │   ├── tables10.0.0.go
    │       │       │   ├── tables11.0.0.go
    │       │       │   ├── tables12.0.0.go
    │       │       │   ├── tables13.0.0.go
    │       │       │   ├── tables15.0.0.go
    │       │       │   ├── tables9.0.0.go
    │       │       │   └── trieval.go
    │       │       └── norm/
    │       │           ├── composition.go
    │       │           ├── forminfo.go
    │       │           ├── input.go
    │       │           ├── iter.go
    │       │           ├── normalize.go
    │       │           ├── readwriter.go
    │       │           ├── tables10.0.0.go
    │       │           ├── tables11.0.0.go
    │       │           ├── tables12.0.0.go
    │       │           ├── tables13.0.0.go
    │       │           ├── tables15.0.0.go
    │       │           ├── tables9.0.0.go
    │       │           ├── transform.go
    │       │           └── trie.go
    │       └── time/
    │           ├── AUTHORS
    │           ├── CONTRIBUTORS
    │           ├── LICENSE
    │           ├── PATENTS
    │           └── rate/
    │               └── rate.go
    ├── google.golang.org/
    │   ├── genproto/
    │   │   └── googleapis/
    │   │       └── rpc/
    │   │           ├── LICENSE
    │   │           └── status/
    │   │               └── status.pb.go
    │   ├── grpc/
    │   │   ├── AUTHORS
    │   │   ├── CODE-OF-CONDUCT.md
    │   │   ├── CONTRIBUTING.md
    │   │   ├── GOVERNANCE.md
    │   │   ├── LICENSE
    │   │   ├── MAINTAINERS.md
    │   │   ├── Makefile
    │   │   ├── NOTICE.txt
    │   │   ├── README.md
    │   │   ├── SECURITY.md
    │   │   ├── attributes/
    │   │   │   └── attributes.go
    │   │   ├── backoff/
    │   │   │   └── backoff.go
    │   │   ├── backoff.go
    │   │   ├── balancer/
    │   │   │   ├── balancer.go
    │   │   │   ├── base/
    │   │   │   │   ├── balancer.go
    │   │   │   │   └── base.go
    │   │   │   ├── conn_state_evaluator.go
    │   │   │   ├── endpointsharding/
    │   │   │   │   └── endpointsharding.go
    │   │   │   ├── grpclb/
    │   │   │   │   └── state/
    │   │   │   │       └── state.go
    │   │   │   ├── pickfirst/
    │   │   │   │   ├── internal/
    │   │   │   │   │   └── internal.go
    │   │   │   │   └── pickfirst.go
    │   │   │   ├── roundrobin/
    │   │   │   │   └── roundrobin.go
    │   │   │   └── subconn.go
    │   │   ├── balancer_wrapper.go
    │   │   ├── binarylog/
    │   │   │   └── grpc_binarylog_v1/
    │   │   │       └── binarylog.pb.go
    │   │   ├── call.go
    │   │   ├── channelz/
    │   │   │   └── channelz.go
    │   │   ├── clientconn.go
    │   │   ├── codec.go
    │   │   ├── codes/
    │   │   │   ├── code_string.go
    │   │   │   └── codes.go
    │   │   ├── connectivity/
    │   │   │   └── connectivity.go
    │   │   ├── credentials/
    │   │   │   ├── credentials.go
    │   │   │   ├── insecure/
    │   │   │   │   └── insecure.go
    │   │   │   └── tls.go
    │   │   ├── dialoptions.go
    │   │   ├── doc.go
    │   │   ├── encoding/
    │   │   │   ├── encoding.go
    │   │   │   ├── encoding_v2.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   └── proto/
    │   │   │       └── proto.go
    │   │   ├── experimental/
    │   │   │   └── stats/
    │   │   │       ├── metricregistry.go
    │   │   │       └── metrics.go
    │   │   ├── grpclog/
    │   │   │   ├── component.go
    │   │   │   ├── grpclog.go
    │   │   │   ├── internal/
    │   │   │   │   ├── grpclog.go
    │   │   │   │   ├── logger.go
    │   │   │   │   └── loggerv2.go
    │   │   │   ├── logger.go
    │   │   │   └── loggerv2.go
    │   │   ├── interceptor.go
    │   │   ├── internal/
    │   │   │   ├── backoff/
    │   │   │   │   └── backoff.go
    │   │   │   ├── balancer/
    │   │   │   │   ├── gracefulswitch/
    │   │   │   │   │   ├── config.go
    │   │   │   │   │   └── gracefulswitch.go
    │   │   │   │   └── weight/
    │   │   │   │       └── weight.go
    │   │   │   ├── balancerload/
    │   │   │   │   └── load.go
    │   │   │   ├── binarylog/
    │   │   │   │   ├── binarylog.go
    │   │   │   │   ├── binarylog_testutil.go
    │   │   │   │   ├── env_config.go
    │   │   │   │   ├── method_logger.go
    │   │   │   │   └── sink.go
    │   │   │   ├── buffer/
    │   │   │   │   └── unbounded.go
    │   │   │   ├── channelz/
    │   │   │   │   ├── channel.go
    │   │   │   │   ├── channelmap.go
    │   │   │   │   ├── funcs.go
    │   │   │   │   ├── logging.go
    │   │   │   │   ├── server.go
    │   │   │   │   ├── socket.go
    │   │   │   │   ├── subchannel.go
    │   │   │   │   ├── syscall_linux.go
    │   │   │   │   ├── syscall_nonlinux.go
    │   │   │   │   └── trace.go
    │   │   │   ├── credentials/
    │   │   │   │   ├── credentials.go
    │   │   │   │   ├── spiffe.go
    │   │   │   │   ├── syscallconn.go
    │   │   │   │   └── util.go
    │   │   │   ├── envconfig/
    │   │   │   │   ├── envconfig.go
    │   │   │   │   ├── observability.go
    │   │   │   │   └── xds.go
    │   │   │   ├── experimental.go
    │   │   │   ├── grpclog/
    │   │   │   │   └── prefix_logger.go
    │   │   │   ├── grpcsync/
    │   │   │   │   ├── callback_serializer.go
    │   │   │   │   ├── event.go
    │   │   │   │   └── pubsub.go
    │   │   │   ├── grpcutil/
    │   │   │   │   ├── compressor.go
    │   │   │   │   ├── encode_duration.go
    │   │   │   │   ├── grpcutil.go
    │   │   │   │   ├── metadata.go
    │   │   │   │   ├── method.go
    │   │   │   │   └── regex.go
    │   │   │   ├── idle/
    │   │   │   │   └── idle.go
    │   │   │   ├── internal.go
    │   │   │   ├── metadata/
    │   │   │   │   └── metadata.go
    │   │   │   ├── pretty/
    │   │   │   │   └── pretty.go
    │   │   │   ├── proxyattributes/
    │   │   │   │   └── proxyattributes.go
    │   │   │   ├── resolver/
    │   │   │   │   ├── config_selector.go
    │   │   │   │   ├── delegatingresolver/
    │   │   │   │   │   └── delegatingresolver.go
    │   │   │   │   ├── dns/
    │   │   │   │   │   ├── dns_resolver.go
    │   │   │   │   │   └── internal/
    │   │   │   │   │       └── internal.go
    │   │   │   │   ├── passthrough/
    │   │   │   │   │   └── passthrough.go
    │   │   │   │   └── unix/
    │   │   │   │       └── unix.go
    │   │   │   ├── serviceconfig/
    │   │   │   │   ├── duration.go
    │   │   │   │   └── serviceconfig.go
    │   │   │   ├── stats/
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── metrics_recorder_list.go
    │   │   │   │   └── stats.go
    │   │   │   ├── status/
    │   │   │   │   └── status.go
    │   │   │   ├── syscall/
    │   │   │   │   ├── syscall_linux.go
    │   │   │   │   └── syscall_nonlinux.go
    │   │   │   ├── tcp_keepalive_others.go
    │   │   │   ├── tcp_keepalive_unix.go
    │   │   │   ├── tcp_keepalive_windows.go
    │   │   │   └── transport/
    │   │   │       ├── bdp_estimator.go
    │   │   │       ├── client_stream.go
    │   │   │       ├── controlbuf.go
    │   │   │       ├── defaults.go
    │   │   │       ├── flowcontrol.go
    │   │   │       ├── handler_server.go
    │   │   │       ├── http2_client.go
    │   │   │       ├── http2_server.go
    │   │   │       ├── http_util.go
    │   │   │       ├── logging.go
    │   │   │       ├── networktype/
    │   │   │       │   └── networktype.go
    │   │   │       ├── proxy.go
    │   │   │       ├── server_stream.go
    │   │   │       └── transport.go
    │   │   ├── keepalive/
    │   │   │   └── keepalive.go
    │   │   ├── mem/
    │   │   │   ├── buffer_pool.go
    │   │   │   ├── buffer_slice.go
    │   │   │   └── buffers.go
    │   │   ├── metadata/
    │   │   │   └── metadata.go
    │   │   ├── peer/
    │   │   │   └── peer.go
    │   │   ├── picker_wrapper.go
    │   │   ├── preloader.go
    │   │   ├── resolver/
    │   │   │   ├── dns/
    │   │   │   │   └── dns_resolver.go
    │   │   │   ├── map.go
    │   │   │   └── resolver.go
    │   │   ├── resolver_wrapper.go
    │   │   ├── rpc_util.go
    │   │   ├── server.go
    │   │   ├── service_config.go
    │   │   ├── serviceconfig/
    │   │   │   └── serviceconfig.go
    │   │   ├── stats/
    │   │   │   ├── handlers.go
    │   │   │   ├── metrics.go
    │   │   │   └── stats.go
    │   │   ├── status/
    │   │   │   └── status.go
    │   │   ├── stream.go
    │   │   ├── stream_interfaces.go
    │   │   ├── tap/
    │   │   │   └── tap.go
    │   │   ├── trace.go
    │   │   ├── trace_notrace.go
    │   │   ├── trace_withtrace.go
    │   │   └── version.go
    │   └── protobuf/
    │       ├── LICENSE
    │       ├── PATENTS
    │       ├── encoding/
    │       │   ├── protojson/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   ├── encode.go
    │       │   │   └── well_known_types.go
    │       │   ├── prototext/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   └── encode.go
    │       │   └── protowire/
    │       │       └── wire.go
    │       ├── internal/
    │       │   ├── descfmt/
    │       │   │   └── stringer.go
    │       │   ├── descopts/
    │       │   │   └── options.go
    │       │   ├── detrand/
    │       │   │   └── rand.go
    │       │   ├── editiondefaults/
    │       │   │   ├── defaults.go
    │       │   │   └── editions_defaults.binpb
    │       │   ├── editionssupport/
    │       │   │   └── editions.go
    │       │   ├── encoding/
    │       │   │   ├── defval/
    │       │   │   │   └── default.go
    │       │   │   ├── json/
    │       │   │   │   ├── decode.go
    │       │   │   │   ├── decode_number.go
    │       │   │   │   ├── decode_string.go
    │       │   │   │   ├── decode_token.go
    │       │   │   │   └── encode.go
    │       │   │   ├── messageset/
    │       │   │   │   └── messageset.go
    │       │   │   ├── tag/
    │       │   │   │   └── tag.go
    │       │   │   └── text/
    │       │   │       ├── decode.go
    │       │   │       ├── decode_number.go
    │       │   │       ├── decode_string.go
    │       │   │       ├── decode_token.go
    │       │   │       ├── doc.go
    │       │   │       └── encode.go
    │       │   ├── errors/
    │       │   │   └── errors.go
    │       │   ├── filedesc/
    │       │   │   ├── build.go
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_lazy.go
    │       │   │   ├── desc_list.go
    │       │   │   ├── desc_list_gen.go
    │       │   │   ├── editions.go
    │       │   │   ├── placeholder.go
    │       │   │   └── presence.go
    │       │   ├── filetype/
    │       │   │   └── build.go
    │       │   ├── flags/
    │       │   │   ├── flags.go
    │       │   │   ├── proto_legacy_disable.go
    │       │   │   └── proto_legacy_enable.go
    │       │   ├── genid/
    │       │   │   ├── any_gen.go
    │       │   │   ├── api_gen.go
    │       │   │   ├── descriptor_gen.go
    │       │   │   ├── doc.go
    │       │   │   ├── duration_gen.go
    │       │   │   ├── empty_gen.go
    │       │   │   ├── field_mask_gen.go
    │       │   │   ├── go_features_gen.go
    │       │   │   ├── goname.go
    │       │   │   ├── map_entry.go
    │       │   │   ├── name.go
    │       │   │   ├── source_context_gen.go
    │       │   │   ├── struct_gen.go
    │       │   │   ├── timestamp_gen.go
    │       │   │   ├── type_gen.go
    │       │   │   ├── wrappers.go
    │       │   │   └── wrappers_gen.go
    │       │   ├── impl/
    │       │   │   ├── api_export.go
    │       │   │   ├── api_export_opaque.go
    │       │   │   ├── bitmap.go
    │       │   │   ├── bitmap_race.go
    │       │   │   ├── checkinit.go
    │       │   │   ├── codec_extension.go
    │       │   │   ├── codec_field.go
    │       │   │   ├── codec_field_opaque.go
    │       │   │   ├── codec_gen.go
    │       │   │   ├── codec_map.go
    │       │   │   ├── codec_message.go
    │       │   │   ├── codec_message_opaque.go
    │       │   │   ├── codec_messageset.go
    │       │   │   ├── codec_tables.go
    │       │   │   ├── codec_unsafe.go
    │       │   │   ├── convert.go
    │       │   │   ├── convert_list.go
    │       │   │   ├── convert_map.go
    │       │   │   ├── decode.go
    │       │   │   ├── encode.go
    │       │   │   ├── enum.go
    │       │   │   ├── equal.go
    │       │   │   ├── extension.go
    │       │   │   ├── lazy.go
    │       │   │   ├── legacy_enum.go
    │       │   │   ├── legacy_export.go
    │       │   │   ├── legacy_extension.go
    │       │   │   ├── legacy_file.go
    │       │   │   ├── legacy_message.go
    │       │   │   ├── merge.go
    │       │   │   ├── merge_gen.go
    │       │   │   ├── message.go
    │       │   │   ├── message_opaque.go
    │       │   │   ├── message_opaque_gen.go
    │       │   │   ├── message_reflect.go
    │       │   │   ├── message_reflect_field.go
    │       │   │   ├── message_reflect_field_gen.go
    │       │   │   ├── message_reflect_gen.go
    │       │   │   ├── pointer_unsafe.go
    │       │   │   ├── pointer_unsafe_opaque.go
    │       │   │   ├── presence.go
    │       │   │   └── validate.go
    │       │   ├── order/
    │       │   │   ├── order.go
    │       │   │   └── range.go
    │       │   ├── pragma/
    │       │   │   └── pragma.go
    │       │   ├── protolazy/
    │       │   │   ├── bufferreader.go
    │       │   │   ├── lazy.go
    │       │   │   └── pointer_unsafe.go
    │       │   ├── set/
    │       │   │   └── ints.go
    │       │   ├── strs/
    │       │   │   ├── strings.go
    │       │   │   └── strings_unsafe.go
    │       │   └── version/
    │       │       └── version.go
    │       ├── proto/
    │       │   ├── checkinit.go
    │       │   ├── decode.go
    │       │   ├── decode_gen.go
    │       │   ├── doc.go
    │       │   ├── encode.go
    │       │   ├── encode_gen.go
    │       │   ├── equal.go
    │       │   ├── extension.go
    │       │   ├── merge.go
    │       │   ├── messageset.go
    │       │   ├── proto.go
    │       │   ├── proto_methods.go
    │       │   ├── proto_reflect.go
    │       │   ├── reset.go
    │       │   ├── size.go
    │       │   ├── size_gen.go
    │       │   ├── wrapperopaque.go
    │       │   └── wrappers.go
    │       ├── protoadapt/
    │       │   └── convert.go
    │       ├── reflect/
    │       │   ├── protodesc/
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_resolve.go
    │       │   │   ├── desc_validate.go
    │       │   │   ├── editions.go
    │       │   │   └── proto.go
    │       │   ├── protoreflect/
    │       │   │   ├── methods.go
    │       │   │   ├── proto.go
    │       │   │   ├── source.go
    │       │   │   ├── source_gen.go
    │       │   │   ├── type.go
    │       │   │   ├── value.go
    │       │   │   ├── value_equal.go
    │       │   │   ├── value_union.go
    │       │   │   └── value_unsafe.go
    │       │   └── protoregistry/
    │       │       └── registry.go
    │       ├── runtime/
    │       │   ├── protoiface/
    │       │   │   ├── legacy.go
    │       │   │   └── methods.go
    │       │   └── protoimpl/
    │       │       ├── impl.go
    │       │       └── version.go
    │       └── types/
    │           ├── descriptorpb/
    │           │   └── descriptor.pb.go
    │           ├── gofeaturespb/
    │           │   └── go_features.pb.go
    │           └── known/
    │               ├── anypb/
    │               │   └── any.pb.go
    │               ├── durationpb/
    │               │   └── duration.pb.go
    │               └── timestamppb/
    │                   └── timestamp.pb.go
    ├── gopkg.in/
    │   ├── inf.v0/
    │   │   ├── LICENSE
    │   │   ├── dec.go
    │   │   └── rounder.go
    │   ├── yaml.v2/
    │   │   ├── .travis.yml
    │   │   ├── LICENSE
    │   │   ├── LICENSE.libyaml
    │   │   ├── NOTICE
    │   │   ├── README.md
    │   │   ├── apic.go
    │   │   ├── decode.go
    │   │   ├── emitterc.go
    │   │   ├── encode.go
    │   │   ├── parserc.go
    │   │   ├── readerc.go
    │   │   ├── resolve.go
    │   │   ├── scannerc.go
    │   │   ├── sorter.go
    │   │   ├── writerc.go
    │   │   ├── yaml.go
    │   │   ├── yamlh.go
    │   │   └── yamlprivateh.go
    │   └── yaml.v3/
    │       ├── LICENSE
    │       ├── NOTICE
    │       ├── README.md
    │       ├── apic.go
    │       ├── decode.go
    │       ├── emitterc.go
    │       ├── encode.go
    │       ├── parserc.go
    │       ├── readerc.go
    │       ├── resolve.go
    │       ├── scannerc.go
    │       ├── sorter.go
    │       ├── writerc.go
    │       ├── yaml.go
    │       ├── yamlh.go
    │       └── yamlprivateh.go
    ├── k8s.io/
    │   ├── api/
    │   │   ├── LICENSE
    │   │   ├── admissionregistration/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apidiscovery/
    │   │   │   └── v2beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apiserverinternal/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── apps/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authentication/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authorization/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── autoscaling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v2beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── batch/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── certificates/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── coordination/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── core/
    │   │   │   └── v1/
    │   │   │       ├── annotation_key_constants.go
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── lifecycle.go
    │   │   │       ├── objectreference.go
    │   │   │       ├── register.go
    │   │   │       ├── resource.go
    │   │   │       ├── taint.go
    │   │   │       ├── toleration.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── well_known_taints.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── discovery/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── events/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── extensions/
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── flowcontrol/
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta3/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── networking/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_annotations.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_annotations.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── node/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── policy/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── rbac/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── resource/
    │   │   │   └── v1alpha2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── scheduling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   └── storage/
    │   │       ├── v1/
    │   │       │   ├── doc.go
    │   │       │   ├── generated.pb.go
    │   │       │   ├── generated.proto
    │   │       │   ├── register.go
    │   │       │   ├── types.go
    │   │       │   ├── types_swagger_doc_generated.go
    │   │       │   └── zz_generated.deepcopy.go
    │   │       ├── v1alpha1/
    │   │       │   ├── doc.go
    │   │       │   ├── generated.pb.go
    │   │       │   ├── generated.proto
    │   │       │   ├── register.go
    │   │       │   ├── types.go
    │   │       │   ├── types_swagger_doc_generated.go
    │   │       │   ├── zz_generated.deepcopy.go
    │   │       │   └── zz_generated.prerelease-lifecycle.go
    │   │       └── v1beta1/
    │   │           ├── doc.go
    │   │           ├── generated.pb.go
    │   │           ├── generated.proto
    │   │           ├── register.go
    │   │           ├── types.go
    │   │           ├── types_swagger_doc_generated.go
    │   │           ├── zz_generated.deepcopy.go
    │   │           └── zz_generated.prerelease-lifecycle.go
    │   ├── apimachinery/
    │   │   ├── LICENSE
    │   │   ├── pkg/
    │   │   │   ├── api/
    │   │   │   │   ├── equality/
    │   │   │   │   │   └── semantic.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── meta/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── conditions.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── firsthit_restmapper.go
    │   │   │   │   │   ├── help.go
    │   │   │   │   │   ├── interfaces.go
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── multirestmapper.go
    │   │   │   │   │   ├── priority.go
    │   │   │   │   │   └── restmapper.go
    │   │   │   │   ├── resource/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── amount.go
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── math.go
    │   │   │   │   │   ├── quantity.go
    │   │   │   │   │   ├── quantity_proto.go
    │   │   │   │   │   ├── scale_int.go
    │   │   │   │   │   ├── suffix.go
    │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   └── validation/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── generic.go
    │   │   │   │       └── objectmeta.go
    │   │   │   ├── apis/
    │   │   │   │   └── meta/
    │   │   │   │       └── v1/
    │   │   │   │           ├── OWNERS
    │   │   │   │           ├── controller_ref.go
    │   │   │   │           ├── conversion.go
    │   │   │   │           ├── deepcopy.go
    │   │   │   │           ├── doc.go
    │   │   │   │           ├── duration.go
    │   │   │   │           ├── generated.pb.go
    │   │   │   │           ├── generated.proto
    │   │   │   │           ├── group_version.go
    │   │   │   │           ├── helpers.go
    │   │   │   │           ├── labels.go
    │   │   │   │           ├── meta.go
    │   │   │   │           ├── micro_time.go
    │   │   │   │           ├── micro_time_fuzz.go
    │   │   │   │           ├── micro_time_proto.go
    │   │   │   │           ├── register.go
    │   │   │   │           ├── time.go
    │   │   │   │           ├── time_fuzz.go
    │   │   │   │           ├── time_proto.go
    │   │   │   │           ├── types.go
    │   │   │   │           ├── types_swagger_doc_generated.go
    │   │   │   │           ├── unstructured/
    │   │   │   │           │   ├── helpers.go
    │   │   │   │           │   ├── unstructured.go
    │   │   │   │           │   ├── unstructured_list.go
    │   │   │   │           │   └── zz_generated.deepcopy.go
    │   │   │   │           ├── validation/
    │   │   │   │           │   └── validation.go
    │   │   │   │           ├── watch.go
    │   │   │   │           ├── zz_generated.conversion.go
    │   │   │   │           ├── zz_generated.deepcopy.go
    │   │   │   │           └── zz_generated.defaults.go
    │   │   │   ├── conversion/
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── deep_equal.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helper.go
    │   │   │   │   └── queryparams/
    │   │   │   │       ├── convert.go
    │   │   │   │       └── doc.go
    │   │   │   ├── fields/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── fields.go
    │   │   │   │   ├── requirements.go
    │   │   │   │   └── selector.go
    │   │   │   ├── labels/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── selector.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── runtime/
    │   │   │   │   ├── allocator.go
    │   │   │   │   ├── codec.go
    │   │   │   │   ├── codec_check.go
    │   │   │   │   ├── conversion.go
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── embedded.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extension.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── helper.go
    │   │   │   │   ├── interfaces.go
    │   │   │   │   ├── mapper.go
    │   │   │   │   ├── negotiate.go
    │   │   │   │   ├── register.go
    │   │   │   │   ├── schema/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── group_version.go
    │   │   │   │   │   └── interfaces.go
    │   │   │   │   ├── scheme.go
    │   │   │   │   ├── scheme_builder.go
    │   │   │   │   ├── serializer/
    │   │   │   │   │   ├── codec_factory.go
    │   │   │   │   │   ├── json/
    │   │   │   │   │   │   ├── json.go
    │   │   │   │   │   │   └── meta.go
    │   │   │   │   │   ├── negotiated_codec.go
    │   │   │   │   │   ├── protobuf/
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   └── protobuf.go
    │   │   │   │   │   ├── recognizer/
    │   │   │   │   │   │   └── recognizer.go
    │   │   │   │   │   ├── streaming/
    │   │   │   │   │   │   └── streaming.go
    │   │   │   │   │   └── versioning/
    │   │   │   │   │       └── versioning.go
    │   │   │   │   ├── swagger_doc_generator.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_proto.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── selection/
    │   │   │   │   └── operator.go
    │   │   │   ├── types/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── namespacedname.go
    │   │   │   │   ├── nodename.go
    │   │   │   │   ├── patch.go
    │   │   │   │   └── uid.go
    │   │   │   ├── util/
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── framer/
    │   │   │   │   │   └── framer.go
    │   │   │   │   ├── intstr/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── instr_fuzz.go
    │   │   │   │   │   └── intstr.go
    │   │   │   │   ├── json/
    │   │   │   │   │   └── json.go
    │   │   │   │   ├── managedfields/
    │   │   │   │   │   ├── endpoints.yaml
    │   │   │   │   │   ├── extract.go
    │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   ├── gvkparser.go
    │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   ├── atmostevery.go
    │   │   │   │   │   │   ├── buildmanagerinfo.go
    │   │   │   │   │   │   ├── capmanagers.go
    │   │   │   │   │   │   ├── conflict.go
    │   │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   │   ├── fields.go
    │   │   │   │   │   │   ├── lastapplied.go
    │   │   │   │   │   │   ├── lastappliedmanager.go
    │   │   │   │   │   │   ├── lastappliedupdater.go
    │   │   │   │   │   │   ├── managedfields.go
    │   │   │   │   │   │   ├── managedfieldsupdater.go
    │   │   │   │   │   │   ├── manager.go
    │   │   │   │   │   │   ├── pathelement.go
    │   │   │   │   │   │   ├── skipnonapplied.go
    │   │   │   │   │   │   ├── stripmeta.go
    │   │   │   │   │   │   ├── structuredmerge.go
    │   │   │   │   │   │   ├── typeconverter.go
    │   │   │   │   │   │   └── versionconverter.go
    │   │   │   │   │   ├── node.yaml
    │   │   │   │   │   ├── pod.yaml
    │   │   │   │   │   ├── scalehandler.go
    │   │   │   │   │   └── typeconverter.go
    │   │   │   │   ├── mergepatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── naming/
    │   │   │   │   │   └── from_stack.go
    │   │   │   │   ├── net/
    │   │   │   │   │   ├── http.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── port_range.go
    │   │   │   │   │   ├── port_split.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── runtime/
    │   │   │   │   │   └── runtime.go
    │   │   │   │   ├── sets/
    │   │   │   │   │   ├── byte.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── empty.go
    │   │   │   │   │   ├── int.go
    │   │   │   │   │   ├── int32.go
    │   │   │   │   │   ├── int64.go
    │   │   │   │   │   ├── ordered.go
    │   │   │   │   │   ├── set.go
    │   │   │   │   │   └── string.go
    │   │   │   │   ├── strategicpatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── patch.go
    │   │   │   │   │   └── types.go
    │   │   │   │   ├── validation/
    │   │   │   │   │   ├── field/
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   └── path.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   ├── wait/
    │   │   │   │   │   ├── backoff.go
    │   │   │   │   │   ├── delay.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── error.go
    │   │   │   │   │   ├── loop.go
    │   │   │   │   │   ├── poll.go
    │   │   │   │   │   ├── timer.go
    │   │   │   │   │   └── wait.go
    │   │   │   │   └── yaml/
    │   │   │   │       └── decoder.go
    │   │   │   ├── version/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   └── types.go
    │   │   │   └── watch/
    │   │   │       ├── doc.go
    │   │   │       ├── filter.go
    │   │   │       ├── mux.go
    │   │   │       ├── streamwatcher.go
    │   │   │       ├── watch.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   └── third_party/
    │   │       └── forked/
    │   │           └── golang/
    │   │               ├── LICENSE
    │   │               ├── PATENTS
    │   │               ├── json/
    │   │               │   ├── OWNERS
    │   │               │   └── fields.go
    │   │               └── reflect/
    │   │                   └── deep_equal.go
    │   ├── client-go/
    │   │   ├── LICENSE
    │   │   ├── applyconfigurations/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── mutatingwebhook.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── rule.go
    │   │   │   │   │   ├── rulewithoperations.go
    │   │   │   │   │   ├── servicereference.go
    │   │   │   │   │   ├── validatingwebhook.go
    │   │   │   │   │   ├── validatingwebhookconfiguration.go
    │   │   │   │   │   └── webhookclientconfig.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── matchcondition.go
    │   │   │   │       ├── mutatingwebhook.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── servicereference.go
    │   │   │   │       ├── validatingwebhook.go
    │   │   │   │       ├── validatingwebhookconfiguration.go
    │   │   │   │       └── webhookclientconfig.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── serverstorageversion.go
    │   │   │   │       ├── storageversion.go
    │   │   │   │       ├── storageversioncondition.go
    │   │   │   │       └── storageversionstatus.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonsetcondition.go
    │   │   │   │   │   ├── daemonsetspec.go
    │   │   │   │   │   ├── daemonsetstatus.go
    │   │   │   │   │   ├── daemonsetupdatestrategy.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicasetcondition.go
    │   │   │   │   │   ├── replicasetspec.go
    │   │   │   │   │   ├── replicasetstatus.go
    │   │   │   │   │   ├── rollingupdatedaemonset.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── rollbackconfig.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │       ├── scale.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       ├── statefulsetcondition.go
    │   │   │   │       ├── statefulsetordinals.go
    │   │   │   │       ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │       ├── statefulsetspec.go
    │   │   │   │       ├── statefulsetstatus.go
    │   │   │   │       └── statefulsetupdatestrategy.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── scale.go
    │   │   │   │   │   ├── scalespec.go
    │   │   │   │   │   └── scalestatus.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerbehavior.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── hpascalingpolicy.go
    │   │   │   │   │   ├── hpascalingrules.go
    │   │   │   │   │   ├── metricidentifier.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── metrictarget.go
    │   │   │   │   │   ├── metricvaluestatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── containerresourcemetricsource.go
    │   │   │   │       ├── containerresourcemetricstatus.go
    │   │   │   │       ├── crossversionobjectreference.go
    │   │   │   │       ├── externalmetricsource.go
    │   │   │   │       ├── externalmetricstatus.go
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       ├── horizontalpodautoscalerbehavior.go
    │   │   │   │       ├── horizontalpodautoscalercondition.go
    │   │   │   │       ├── horizontalpodautoscalerspec.go
    │   │   │   │       ├── horizontalpodautoscalerstatus.go
    │   │   │   │       ├── hpascalingpolicy.go
    │   │   │   │       ├── hpascalingrules.go
    │   │   │   │       ├── metricidentifier.go
    │   │   │   │       ├── metricspec.go
    │   │   │   │       ├── metricstatus.go
    │   │   │   │       ├── metrictarget.go
    │   │   │   │       ├── metricvaluestatus.go
    │   │   │   │       ├── objectmetricsource.go
    │   │   │   │       ├── objectmetricstatus.go
    │   │   │   │       ├── podsmetricsource.go
    │   │   │   │       ├── podsmetricstatus.go
    │   │   │   │       ├── resourcemetricsource.go
    │   │   │   │       └── resourcemetricstatus.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── cronjobspec.go
    │   │   │   │   │   ├── cronjobstatus.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   ├── jobcondition.go
    │   │   │   │   │   ├── jobspec.go
    │   │   │   │   │   ├── jobstatus.go
    │   │   │   │   │   ├── jobtemplatespec.go
    │   │   │   │   │   ├── podfailurepolicy.go
    │   │   │   │   │   ├── podfailurepolicyonexitcodesrequirement.go
    │   │   │   │   │   ├── podfailurepolicyonpodconditionspattern.go
    │   │   │   │   │   ├── podfailurepolicyrule.go
    │   │   │   │   │   └── uncountedterminatedpods.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       ├── cronjobspec.go
    │   │   │   │       ├── cronjobstatus.go
    │   │   │   │       └── jobtemplatespec.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   ├── certificatesigningrequestcondition.go
    │   │   │   │   │   ├── certificatesigningrequestspec.go
    │   │   │   │   │   └── certificatesigningrequeststatus.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── clustertrustbundlespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       ├── certificatesigningrequestcondition.go
    │   │   │   │       ├── certificatesigningrequestspec.go
    │   │   │   │       └── certificatesigningrequeststatus.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── lease.go
    │   │   │   │   │   └── leasespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── lease.go
    │   │   │   │       └── leasespec.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── affinity.go
    │   │   │   │       ├── attachedvolume.go
    │   │   │   │       ├── awselasticblockstorevolumesource.go
    │   │   │   │       ├── azurediskvolumesource.go
    │   │   │   │       ├── azurefilepersistentvolumesource.go
    │   │   │   │       ├── azurefilevolumesource.go
    │   │   │   │       ├── capabilities.go
    │   │   │   │       ├── cephfspersistentvolumesource.go
    │   │   │   │       ├── cephfsvolumesource.go
    │   │   │   │       ├── cinderpersistentvolumesource.go
    │   │   │   │       ├── cindervolumesource.go
    │   │   │   │       ├── claimsource.go
    │   │   │   │       ├── clientipconfig.go
    │   │   │   │       ├── componentcondition.go
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── configmapenvsource.go
    │   │   │   │       ├── configmapkeyselector.go
    │   │   │   │       ├── configmapnodeconfigsource.go
    │   │   │   │       ├── configmapprojection.go
    │   │   │   │       ├── configmapvolumesource.go
    │   │   │   │       ├── container.go
    │   │   │   │       ├── containerimage.go
    │   │   │   │       ├── containerport.go
    │   │   │   │       ├── containerresizepolicy.go
    │   │   │   │       ├── containerstate.go
    │   │   │   │       ├── containerstaterunning.go
    │   │   │   │       ├── containerstateterminated.go
    │   │   │   │       ├── containerstatewaiting.go
    │   │   │   │       ├── containerstatus.go
    │   │   │   │       ├── csipersistentvolumesource.go
    │   │   │   │       ├── csivolumesource.go
    │   │   │   │       ├── daemonendpoint.go
    │   │   │   │       ├── downwardapiprojection.go
    │   │   │   │       ├── downwardapivolumefile.go
    │   │   │   │       ├── downwardapivolumesource.go
    │   │   │   │       ├── emptydirvolumesource.go
    │   │   │   │       ├── endpointaddress.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── endpointsubset.go
    │   │   │   │       ├── envfromsource.go
    │   │   │   │       ├── envvar.go
    │   │   │   │       ├── envvarsource.go
    │   │   │   │       ├── ephemeralcontainer.go
    │   │   │   │       ├── ephemeralcontainercommon.go
    │   │   │   │       ├── ephemeralvolumesource.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── eventseries.go
    │   │   │   │       ├── eventsource.go
    │   │   │   │       ├── execaction.go
    │   │   │   │       ├── fcvolumesource.go
    │   │   │   │       ├── flexpersistentvolumesource.go
    │   │   │   │       ├── flexvolumesource.go
    │   │   │   │       ├── flockervolumesource.go
    │   │   │   │       ├── gcepersistentdiskvolumesource.go
    │   │   │   │       ├── gitrepovolumesource.go
    │   │   │   │       ├── glusterfspersistentvolumesource.go
    │   │   │   │       ├── glusterfsvolumesource.go
    │   │   │   │       ├── grpcaction.go
    │   │   │   │       ├── hostalias.go
    │   │   │   │       ├── hostpathvolumesource.go
    │   │   │   │       ├── httpgetaction.go
    │   │   │   │       ├── httpheader.go
    │   │   │   │       ├── iscsipersistentvolumesource.go
    │   │   │   │       ├── iscsivolumesource.go
    │   │   │   │       ├── keytopath.go
    │   │   │   │       ├── lifecycle.go
    │   │   │   │       ├── lifecyclehandler.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── limitrangeitem.go
    │   │   │   │       ├── limitrangespec.go
    │   │   │   │       ├── loadbalanceringress.go
    │   │   │   │       ├── loadbalancerstatus.go
    │   │   │   │       ├── localobjectreference.go
    │   │   │   │       ├── localvolumesource.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── namespacecondition.go
    │   │   │   │       ├── namespacespec.go
    │   │   │   │       ├── namespacestatus.go
    │   │   │   │       ├── nfsvolumesource.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── nodeaddress.go
    │   │   │   │       ├── nodeaffinity.go
    │   │   │   │       ├── nodecondition.go
    │   │   │   │       ├── nodeconfigsource.go
    │   │   │   │       ├── nodeconfigstatus.go
    │   │   │   │       ├── nodedaemonendpoints.go
    │   │   │   │       ├── nodeselector.go
    │   │   │   │       ├── nodeselectorrequirement.go
    │   │   │   │       ├── nodeselectorterm.go
    │   │   │   │       ├── nodespec.go
    │   │   │   │       ├── nodestatus.go
    │   │   │   │       ├── nodesysteminfo.go
    │   │   │   │       ├── objectfieldselector.go
    │   │   │   │       ├── objectreference.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── persistentvolumeclaimcondition.go
    │   │   │   │       ├── persistentvolumeclaimspec.go
    │   │   │   │       ├── persistentvolumeclaimstatus.go
    │   │   │   │       ├── persistentvolumeclaimtemplate.go
    │   │   │   │       ├── persistentvolumeclaimvolumesource.go
    │   │   │   │       ├── persistentvolumesource.go
    │   │   │   │       ├── persistentvolumespec.go
    │   │   │   │       ├── persistentvolumestatus.go
    │   │   │   │       ├── photonpersistentdiskvolumesource.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podaffinity.go
    │   │   │   │       ├── podaffinityterm.go
    │   │   │   │       ├── podantiaffinity.go
    │   │   │   │       ├── podcondition.go
    │   │   │   │       ├── poddnsconfig.go
    │   │   │   │       ├── poddnsconfigoption.go
    │   │   │   │       ├── podip.go
    │   │   │   │       ├── podos.go
    │   │   │   │       ├── podreadinessgate.go
    │   │   │   │       ├── podresourceclaim.go
    │   │   │   │       ├── podschedulinggate.go
    │   │   │   │       ├── podsecuritycontext.go
    │   │   │   │       ├── podspec.go
    │   │   │   │       ├── podstatus.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── podtemplatespec.go
    │   │   │   │       ├── portstatus.go
    │   │   │   │       ├── portworxvolumesource.go
    │   │   │   │       ├── preferredschedulingterm.go
    │   │   │   │       ├── probe.go
    │   │   │   │       ├── probehandler.go
    │   │   │   │       ├── projectedvolumesource.go
    │   │   │   │       ├── quobytevolumesource.go
    │   │   │   │       ├── rbdpersistentvolumesource.go
    │   │   │   │       ├── rbdvolumesource.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontrollercondition.go
    │   │   │   │       ├── replicationcontrollerspec.go
    │   │   │   │       ├── replicationcontrollerstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourcefieldselector.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── resourcequotaspec.go
    │   │   │   │       ├── resourcequotastatus.go
    │   │   │   │       ├── resourcerequirements.go
    │   │   │   │       ├── scaleiopersistentvolumesource.go
    │   │   │   │       ├── scaleiovolumesource.go
    │   │   │   │       ├── scopedresourceselectorrequirement.go
    │   │   │   │       ├── scopeselector.go
    │   │   │   │       ├── seccompprofile.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── secretenvsource.go
    │   │   │   │       ├── secretkeyselector.go
    │   │   │   │       ├── secretprojection.go
    │   │   │   │       ├── secretreference.go
    │   │   │   │       ├── secretvolumesource.go
    │   │   │   │       ├── securitycontext.go
    │   │   │   │       ├── selinuxoptions.go
    │   │   │   │       ├── service.go
    │   │   │   │       ├── serviceaccount.go
    │   │   │   │       ├── serviceaccounttokenprojection.go
    │   │   │   │       ├── serviceport.go
    │   │   │   │       ├── servicespec.go
    │   │   │   │       ├── servicestatus.go
    │   │   │   │       ├── sessionaffinityconfig.go
    │   │   │   │       ├── storageospersistentvolumesource.go
    │   │   │   │       ├── storageosvolumesource.go
    │   │   │   │       ├── sysctl.go
    │   │   │   │       ├── taint.go
    │   │   │   │       ├── tcpsocketaction.go
    │   │   │   │       ├── toleration.go
    │   │   │   │       ├── topologyselectorlabelrequirement.go
    │   │   │   │       ├── topologyselectorterm.go
    │   │   │   │       ├── topologyspreadconstraint.go
    │   │   │   │       ├── typedlocalobjectreference.go
    │   │   │   │       ├── typedobjectreference.go
    │   │   │   │       ├── volume.go
    │   │   │   │       ├── volumedevice.go
    │   │   │   │       ├── volumemount.go
    │   │   │   │       ├── volumenodeaffinity.go
    │   │   │   │       ├── volumeprojection.go
    │   │   │   │       ├── volumesource.go
    │   │   │   │       ├── vspherevirtualdiskvolumesource.go
    │   │   │   │       ├── weightedpodaffinityterm.go
    │   │   │   │       └── windowssecuritycontextoptions.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpoint.go
    │   │   │   │   │   ├── endpointconditions.go
    │   │   │   │   │   ├── endpointhints.go
    │   │   │   │   │   ├── endpointport.go
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── forzone.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpoint.go
    │   │   │   │       ├── endpointconditions.go
    │   │   │   │       ├── endpointhints.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── forzone.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── eventseries.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── eventseries.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipblock.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── networkpolicyegressrule.go
    │   │   │   │       ├── networkpolicyingressrule.go
    │   │   │   │       ├── networkpolicypeer.go
    │   │   │   │       ├── networkpolicyport.go
    │   │   │   │       ├── networkpolicyspec.go
    │   │   │   │       ├── networkpolicystatus.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollbackconfig.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       └── scale.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── flowdistinguishermethod.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── flowschemacondition.go
    │   │   │   │       ├── flowschemaspec.go
    │   │   │   │       ├── flowschemastatus.go
    │   │   │   │       ├── groupsubject.go
    │   │   │   │       ├── limitedprioritylevelconfiguration.go
    │   │   │   │       ├── limitresponse.go
    │   │   │   │       ├── nonresourcepolicyrule.go
    │   │   │   │       ├── policyruleswithsubjects.go
    │   │   │   │       ├── prioritylevelconfiguration.go
    │   │   │   │       ├── prioritylevelconfigurationcondition.go
    │   │   │   │       ├── prioritylevelconfigurationreference.go
    │   │   │   │       ├── prioritylevelconfigurationspec.go
    │   │   │   │       ├── prioritylevelconfigurationstatus.go
    │   │   │   │       ├── queuingconfiguration.go
    │   │   │   │       ├── resourcepolicyrule.go
    │   │   │   │       ├── serviceaccountsubject.go
    │   │   │   │       ├── subject.go
    │   │   │   │       └── usersubject.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   ├── meta/
    │   │   │   │   └── v1/
    │   │   │   │       ├── condition.go
    │   │   │   │       ├── deleteoptions.go
    │   │   │   │       ├── labelselector.go
    │   │   │   │       ├── labelselectorrequirement.go
    │   │   │   │       ├── managedfieldsentry.go
    │   │   │   │       ├── objectmeta.go
    │   │   │   │       ├── ownerreference.go
    │   │   │   │       ├── preconditions.go
    │   │   │   │       ├── typemeta.go
    │   │   │   │       └── unstructured.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── httpingresspath.go
    │   │   │   │   │   ├── httpingressrulevalue.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressbackend.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── ingressclassparametersreference.go
    │   │   │   │   │   ├── ingressclassspec.go
    │   │   │   │   │   ├── ingressloadbalanceringress.go
    │   │   │   │   │   ├── ingressloadbalancerstatus.go
    │   │   │   │   │   ├── ingressportstatus.go
    │   │   │   │   │   ├── ingressrule.go
    │   │   │   │   │   ├── ingressrulevalue.go
    │   │   │   │   │   ├── ingressservicebackend.go
    │   │   │   │   │   ├── ingressspec.go
    │   │   │   │   │   ├── ingressstatus.go
    │   │   │   │   │   ├── ingresstls.go
    │   │   │   │   │   ├── ipblock.go
    │   │   │   │   │   ├── networkpolicy.go
    │   │   │   │   │   ├── networkpolicyegressrule.go
    │   │   │   │   │   ├── networkpolicyingressrule.go
    │   │   │   │   │   ├── networkpolicypeer.go
    │   │   │   │   │   ├── networkpolicyport.go
    │   │   │   │   │   ├── networkpolicyspec.go
    │   │   │   │   │   ├── networkpolicystatus.go
    │   │   │   │   │   └── servicebackendport.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustercidr.go
    │   │   │   │   │   ├── clustercidrspec.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   ├── ipaddressspec.go
    │   │   │   │   │   └── parentreference.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ingressclassparametersreference.go
    │   │   │   │       ├── ingressclassspec.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       └── ingresstls.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   ├── runtimeclassspec.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── overhead.go
    │   │   │   │       ├── runtimeclass.go
    │   │   │   │       └── scheduling.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   ├── poddisruptionbudgetspec.go
    │   │   │   │   │   └── poddisruptionbudgetstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── allowedcsidriver.go
    │   │   │   │       ├── allowedflexvolume.go
    │   │   │   │       ├── allowedhostpath.go
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── fsgroupstrategyoptions.go
    │   │   │   │       ├── hostportrange.go
    │   │   │   │       ├── idrange.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       ├── poddisruptionbudgetspec.go
    │   │   │   │       ├── poddisruptionbudgetstatus.go
    │   │   │   │       ├── podsecuritypolicy.go
    │   │   │   │       ├── podsecuritypolicyspec.go
    │   │   │   │       ├── runasgroupstrategyoptions.go
    │   │   │   │       ├── runasuserstrategyoptions.go
    │   │   │   │       ├── runtimeclassstrategyoptions.go
    │   │   │   │       ├── selinuxstrategyoptions.go
    │   │   │   │       └── supplementalgroupsstrategyoptions.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── aggregationrule.go
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── policyrule.go
    │   │   │   │       ├── role.go
    │   │   │   │       ├── rolebinding.go
    │   │   │   │       ├── roleref.go
    │   │   │   │       └── subject.go
    │   │   │   ├── resource/
    │   │   │   │   └── v1alpha2/
    │   │   │   │       ├── allocationresult.go
    │   │   │   │       ├── podschedulingcontext.go
    │   │   │   │       ├── podschedulingcontextspec.go
    │   │   │   │       ├── podschedulingcontextstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimconsumerreference.go
    │   │   │   │       ├── resourceclaimparametersreference.go
    │   │   │   │       ├── resourceclaimschedulingstatus.go
    │   │   │   │       ├── resourceclaimspec.go
    │   │   │   │       ├── resourceclaimstatus.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       ├── resourceclaimtemplatespec.go
    │   │   │   │       ├── resourceclass.go
    │   │   │   │       ├── resourceclassparametersreference.go
    │   │   │   │       └── resourcehandle.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       └── priorityclass.go
    │   │   │   └── storage/
    │   │   │       ├── v1/
    │   │   │       │   ├── csidriver.go
    │   │   │       │   ├── csidriverspec.go
    │   │   │       │   ├── csinode.go
    │   │   │       │   ├── csinodedriver.go
    │   │   │       │   ├── csinodespec.go
    │   │   │       │   ├── csistoragecapacity.go
    │   │   │       │   ├── storageclass.go
    │   │   │       │   ├── tokenrequest.go
    │   │   │       │   ├── volumeattachment.go
    │   │   │       │   ├── volumeattachmentsource.go
    │   │   │       │   ├── volumeattachmentspec.go
    │   │   │       │   ├── volumeattachmentstatus.go
    │   │   │       │   ├── volumeerror.go
    │   │   │       │   └── volumenoderesources.go
    │   │   │       ├── v1alpha1/
    │   │   │       │   ├── csistoragecapacity.go
    │   │   │       │   ├── volumeattachment.go
    │   │   │       │   ├── volumeattachmentsource.go
    │   │   │       │   ├── volumeattachmentspec.go
    │   │   │       │   ├── volumeattachmentstatus.go
    │   │   │       │   └── volumeerror.go
    │   │   │       └── v1beta1/
    │   │   │           ├── csidriver.go
    │   │   │           ├── csidriverspec.go
    │   │   │           ├── csinode.go
    │   │   │           ├── csinodedriver.go
    │   │   │           ├── csinodespec.go
    │   │   │           ├── csistoragecapacity.go
    │   │   │           ├── storageclass.go
    │   │   │           ├── tokenrequest.go
    │   │   │           ├── volumeattachment.go
    │   │   │           ├── volumeattachmentsource.go
    │   │   │           ├── volumeattachmentspec.go
    │   │   │           ├── volumeattachmentstatus.go
    │   │   │           ├── volumeerror.go
    │   │   │           └── volumenoderesources.go
    │   │   ├── discovery/
    │   │   │   ├── aggregated_discovery.go
    │   │   │   ├── discovery_client.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   └── discovery.go
    │   │   │   └── helper.go
    │   │   ├── kubernetes/
    │   │   │   ├── clientset.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   ├── clientset_generated.go
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   ├── import.go
    │   │   │   ├── scheme/
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   └── typed/
    │   │   │       ├── admissionregistration/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │   │   │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingwebhookconfiguration.go
    │   │   │       │   │   └── validatingwebhookconfiguration.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   └── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   └── validatingadmissionpolicybinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── admissionregistration_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_admissionregistration_client.go
    │   │   │       │       │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │       │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── mutatingwebhookconfiguration.go
    │   │   │       │       └── validatingwebhookconfiguration.go
    │   │   │       ├── apiserverinternal/
    │   │   │       │   └── v1alpha1/
    │   │   │       │       ├── apiserverinternal_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apiserverinternal_client.go
    │   │   │       │       │   └── fake_storageversion.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── storageversion.go
    │   │   │       ├── apps/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── daemonset.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_daemonset.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   ├── fake_replicaset.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── replicaset.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   └── v1beta2/
    │   │   │       │       ├── apps_client.go
    │   │   │       │       ├── controllerrevision.go
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apps_client.go
    │   │   │       │       │   ├── fake_controllerrevision.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_replicaset.go
    │   │   │       │       │   └── fake_statefulset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── replicaset.go
    │   │   │       │       └── statefulset.go
    │   │   │       ├── authentication/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_tokenreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── tokenreview.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_selfsubjectreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── selfsubjectreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authentication_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authentication_client.go
    │   │   │       │       │   ├── fake_selfsubjectreview.go
    │   │   │       │       │   └── fake_tokenreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── selfsubjectreview.go
    │   │   │       │       └── tokenreview.go
    │   │   │       ├── authorization/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authorization_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authorization_client.go
    │   │   │       │   │   │   ├── fake_localsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │   │   │   └── fake_subjectaccessreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── localsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectrulesreview.go
    │   │   │       │   │   └── subjectaccessreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authorization_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authorization_client.go
    │   │   │       │       │   ├── fake_localsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │       │   └── fake_subjectaccessreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── localsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectrulesreview.go
    │   │   │       │       └── subjectaccessreview.go
    │   │   │       ├── autoscaling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2beta1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   └── v2beta2/
    │   │   │       │       ├── autoscaling_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_autoscaling_client.go
    │   │   │       │       │   └── fake_horizontalpodautoscaler.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── horizontalpodautoscaler.go
    │   │   │       ├── batch/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── batch_client.go
    │   │   │       │   │   ├── cronjob.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_batch_client.go
    │   │   │       │   │   │   ├── fake_cronjob.go
    │   │   │       │   │   │   └── fake_job.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── job.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── batch_client.go
    │   │   │       │       ├── cronjob.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_batch_client.go
    │   │   │       │       │   └── fake_cronjob.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── certificates/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── certificatesigningrequest.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_certificatesigningrequest.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── clustertrustbundle.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_clustertrustbundle.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── certificates_client.go
    │   │   │       │       ├── certificatesigningrequest.go
    │   │   │       │       ├── certificatesigningrequest_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_certificates_client.go
    │   │   │       │       │   ├── fake_certificatesigningrequest.go
    │   │   │       │       │   └── fake_certificatesigningrequest_expansion.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── coordination/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_lease.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── lease.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── coordination_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_coordination_client.go
    │   │   │       │       │   └── fake_lease.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── lease.go
    │   │   │       ├── core/
    │   │   │       │   └── v1/
    │   │   │       │       ├── componentstatus.go
    │   │   │       │       ├── configmap.go
    │   │   │       │       ├── core_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpoints.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_componentstatus.go
    │   │   │       │       │   ├── fake_configmap.go
    │   │   │       │       │   ├── fake_core_client.go
    │   │   │       │       │   ├── fake_endpoints.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   ├── fake_limitrange.go
    │   │   │       │       │   ├── fake_namespace.go
    │   │   │       │       │   ├── fake_namespace_expansion.go
    │   │   │       │       │   ├── fake_node.go
    │   │   │       │       │   ├── fake_node_expansion.go
    │   │   │       │       │   ├── fake_persistentvolume.go
    │   │   │       │       │   ├── fake_persistentvolumeclaim.go
    │   │   │       │       │   ├── fake_pod.go
    │   │   │       │       │   ├── fake_pod_expansion.go
    │   │   │       │       │   ├── fake_podtemplate.go
    │   │   │       │       │   ├── fake_replicationcontroller.go
    │   │   │       │       │   ├── fake_resourcequota.go
    │   │   │       │       │   ├── fake_secret.go
    │   │   │       │       │   ├── fake_service.go
    │   │   │       │       │   ├── fake_service_expansion.go
    │   │   │       │       │   └── fake_serviceaccount.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── limitrange.go
    │   │   │       │       ├── namespace.go
    │   │   │       │       ├── namespace_expansion.go
    │   │   │       │       ├── node.go
    │   │   │       │       ├── node_expansion.go
    │   │   │       │       ├── persistentvolume.go
    │   │   │       │       ├── persistentvolumeclaim.go
    │   │   │       │       ├── pod.go
    │   │   │       │       ├── pod_expansion.go
    │   │   │       │       ├── podtemplate.go
    │   │   │       │       ├── replicationcontroller.go
    │   │   │       │       ├── resourcequota.go
    │   │   │       │       ├── secret.go
    │   │   │       │       ├── service.go
    │   │   │       │       ├── service_expansion.go
    │   │   │       │       └── serviceaccount.go
    │   │   │       ├── discovery/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── discovery_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── endpointslice.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_discovery_client.go
    │   │   │       │   │   │   └── fake_endpointslice.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── discovery_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpointslice.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_discovery_client.go
    │   │   │       │       │   └── fake_endpointslice.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── events/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── event.go
    │   │   │       │   │   ├── events_client.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_event.go
    │   │   │       │   │   │   └── fake_events_client.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── events_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   └── fake_events_client.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── extensions/
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── deployment_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── extensions_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_deployment_expansion.go
    │   │   │       │       │   ├── fake_extensions_client.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_networkpolicy.go
    │   │   │       │       │   └── fake_replicaset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── networkpolicy.go
    │   │   │       │       └── replicaset.go
    │   │   │       ├── flowcontrol/
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta2/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   └── v1beta3/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_flowcontrol_client.go
    │   │   │       │       │   ├── fake_flowschema.go
    │   │   │       │       │   └── fake_prioritylevelconfiguration.go
    │   │   │       │       ├── flowcontrol_client.go
    │   │   │       │       ├── flowschema.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── prioritylevelconfiguration.go
    │   │   │       ├── networking/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ingress.go
    │   │   │       │   │   │   ├── fake_ingressclass.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_networkpolicy.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ingress.go
    │   │   │       │   │   ├── ingressclass.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── networkpolicy.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clustercidr.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clustercidr.go
    │   │   │       │   │   │   ├── fake_ipaddress.go
    │   │   │       │   │   │   └── fake_networking_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ipaddress.go
    │   │   │       │   │   └── networking_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_ingressclass.go
    │   │   │       │       │   └── fake_networking_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── ingressclass.go
    │   │   │       │       └── networking_client.go
    │   │   │       ├── node/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_node_client.go
    │   │   │       │       │   └── fake_runtimeclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── node_client.go
    │   │   │       │       └── runtimeclass.go
    │   │   │       ├── policy/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── eviction.go
    │   │   │       │   │   ├── eviction_expansion.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_eviction.go
    │   │   │       │   │   │   ├── fake_eviction_expansion.go
    │   │   │       │   │   │   ├── fake_poddisruptionbudget.go
    │   │   │       │   │   │   └── fake_policy_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── poddisruptionbudget.go
    │   │   │       │   │   └── policy_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── eviction.go
    │   │   │       │       ├── eviction_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_eviction.go
    │   │   │       │       │   ├── fake_eviction_expansion.go
    │   │   │       │       │   ├── fake_poddisruptionbudget.go
    │   │   │       │       │   ├── fake_podsecuritypolicy.go
    │   │   │       │       │   └── fake_policy_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── poddisruptionbudget.go
    │   │   │       │       ├── podsecuritypolicy.go
    │   │   │       │       └── policy_client.go
    │   │   │       ├── rbac/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── clusterrole.go
    │   │   │       │       ├── clusterrolebinding.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_clusterrole.go
    │   │   │       │       │   ├── fake_clusterrolebinding.go
    │   │   │       │       │   ├── fake_rbac_client.go
    │   │   │       │       │   ├── fake_role.go
    │   │   │       │       │   └── fake_rolebinding.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── rbac_client.go
    │   │   │       │       ├── role.go
    │   │   │       │       └── rolebinding.go
    │   │   │       ├── resource/
    │   │   │       │   └── v1alpha2/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_podschedulingcontext.go
    │   │   │       │       │   ├── fake_resource_client.go
    │   │   │       │       │   ├── fake_resourceclaim.go
    │   │   │       │       │   ├── fake_resourceclaimtemplate.go
    │   │   │       │       │   └── fake_resourceclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── podschedulingcontext.go
    │   │   │       │       ├── resource_client.go
    │   │   │       │       ├── resourceclaim.go
    │   │   │       │       ├── resourceclaimtemplate.go
    │   │   │       │       └── resourceclass.go
    │   │   │       ├── scheduling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_priorityclass.go
    │   │   │       │       │   └── fake_scheduling_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── priorityclass.go
    │   │   │       │       └── scheduling_client.go
    │   │   │       └── storage/
    │   │   │           ├── v1/
    │   │   │           │   ├── csidriver.go
    │   │   │           │   ├── csinode.go
    │   │   │           │   ├── csistoragecapacity.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fake/
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── fake_csidriver.go
    │   │   │           │   │   ├── fake_csinode.go
    │   │   │           │   │   ├── fake_csistoragecapacity.go
    │   │   │           │   │   ├── fake_storage_client.go
    │   │   │           │   │   ├── fake_storageclass.go
    │   │   │           │   │   └── fake_volumeattachment.go
    │   │   │           │   ├── generated_expansion.go
    │   │   │           │   ├── storage_client.go
    │   │   │           │   ├── storageclass.go
    │   │   │           │   └── volumeattachment.go
    │   │   │           ├── v1alpha1/
    │   │   │           │   ├── csistoragecapacity.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fake/
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── fake_csistoragecapacity.go
    │   │   │           │   │   ├── fake_storage_client.go
    │   │   │           │   │   └── fake_volumeattachment.go
    │   │   │           │   ├── generated_expansion.go
    │   │   │           │   ├── storage_client.go
    │   │   │           │   └── volumeattachment.go
    │   │   │           └── v1beta1/
    │   │   │               ├── csidriver.go
    │   │   │               ├── csinode.go
    │   │   │               ├── csistoragecapacity.go
    │   │   │               ├── doc.go
    │   │   │               ├── fake/
    │   │   │               │   ├── doc.go
    │   │   │               │   ├── fake_csidriver.go
    │   │   │               │   ├── fake_csinode.go
    │   │   │               │   ├── fake_csistoragecapacity.go
    │   │   │               │   ├── fake_storage_client.go
    │   │   │               │   ├── fake_storageclass.go
    │   │   │               │   └── fake_volumeattachment.go
    │   │   │               ├── generated_expansion.go
    │   │   │               ├── storage_client.go
    │   │   │               ├── storageclass.go
    │   │   │               └── volumeattachment.go
    │   │   ├── openapi/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   └── groupversion.go
    │   │   ├── pkg/
    │   │   │   ├── apis/
    │   │   │   │   └── clientauthentication/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── install/
    │   │   │   │       │   └── install.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       ├── v1beta1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   └── version/
    │   │   │       ├── base.go
    │   │   │       ├── doc.go
    │   │   │       └── version.go
    │   │   ├── plugin/
    │   │   │   └── pkg/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── exec/
    │   │   │                   ├── exec.go
    │   │   │                   └── metrics.go
    │   │   ├── rest/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── config.go
    │   │   │   ├── exec.go
    │   │   │   ├── fake/
    │   │   │   │   └── fake.go
    │   │   │   ├── plugin.go
    │   │   │   ├── request.go
    │   │   │   ├── transport.go
    │   │   │   ├── url_utils.go
    │   │   │   ├── urlbackoff.go
    │   │   │   ├── warnings.go
    │   │   │   ├── watch/
    │   │   │   │   ├── decoder.go
    │   │   │   │   └── encoder.go
    │   │   │   ├── with_retry.go
    │   │   │   └── zz_generated.deepcopy.go
    │   │   ├── testing/
    │   │   │   ├── actions.go
    │   │   │   ├── fake.go
    │   │   │   ├── fixture.go
    │   │   │   └── interface.go
    │   │   ├── tools/
    │   │   │   ├── clientcmd/
    │   │   │   │   └── api/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── helpers.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   ├── metrics/
    │   │   │   │   ├── OWNERS
    │   │   │   │   └── metrics.go
    │   │   │   ├── record/
    │   │   │   │   ├── OWNERS
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── event.go
    │   │   │   │   ├── events_cache.go
    │   │   │   │   ├── fake.go
    │   │   │   │   └── util/
    │   │   │   │       └── util.go
    │   │   │   └── reference/
    │   │   │       └── ref.go
    │   │   ├── transport/
    │   │   │   ├── OWNERS
    │   │   │   ├── cache.go
    │   │   │   ├── cache_go118.go
    │   │   │   ├── cert_rotation.go
    │   │   │   ├── config.go
    │   │   │   ├── round_trippers.go
    │   │   │   ├── token_source.go
    │   │   │   └── transport.go
    │   │   └── util/
    │   │       ├── cert/
    │   │       │   ├── OWNERS
    │   │       │   ├── cert.go
    │   │       │   ├── csr.go
    │   │       │   ├── io.go
    │   │       │   ├── pem.go
    │   │       │   └── server_inspection.go
    │   │       ├── connrotation/
    │   │       │   └── connrotation.go
    │   │       ├── flowcontrol/
    │   │       │   ├── backoff.go
    │   │       │   └── throttle.go
    │   │       ├── keyutil/
    │   │       │   ├── OWNERS
    │   │       │   └── key.go
    │   │       └── workqueue/
    │   │           ├── default_rate_limiters.go
    │   │           ├── delaying_queue.go
    │   │           ├── doc.go
    │   │           ├── metrics.go
    │   │           ├── parallelizer.go
    │   │           ├── queue.go
    │   │           └── rate_limiting_queue.go
    │   ├── cri-api/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       └── apis/
    │   │           └── runtime/
    │   │               └── v1/
    │   │                   ├── api.pb.go
    │   │                   ├── api.proto
    │   │                   └── constants.go
    │   ├── klog/
    │   │   └── v2/
    │   │       ├── .gitignore
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── RELEASE.md
    │   │       ├── SECURITY.md
    │   │       ├── SECURITY_CONTACTS
    │   │       ├── code-of-conduct.md
    │   │       ├── contextual.go
    │   │       ├── exit.go
    │   │       ├── imports.go
    │   │       ├── internal/
    │   │       │   ├── buffer/
    │   │       │   │   └── buffer.go
    │   │       │   ├── clock/
    │   │       │   │   ├── README.md
    │   │       │   │   └── clock.go
    │   │       │   ├── dbg/
    │   │       │   │   └── dbg.go
    │   │       │   ├── serialize/
    │   │       │   │   └── keyvalues.go
    │   │       │   └── severity/
    │   │       │       └── severity.go
    │   │       ├── k8s_references.go
    │   │       ├── klog.go
    │   │       ├── klog_file.go
    │   │       ├── klog_file_others.go
    │   │       ├── klog_file_windows.go
    │   │       └── klogr.go
    │   ├── kube-openapi/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       ├── builder3/
    │   │       │   └── util/
    │   │       │       └── util.go
    │   │       ├── cached/
    │   │       │   └── cache.go
    │   │       ├── common/
    │   │       │   ├── common.go
    │   │       │   ├── doc.go
    │   │       │   └── interfaces.go
    │   │       ├── handler3/
    │   │       │   └── handler.go
    │   │       ├── internal/
    │   │       │   ├── flags.go
    │   │       │   ├── serialization.go
    │   │       │   └── third_party/
    │   │       │       └── go-json-experiment/
    │   │       │           └── json/
    │   │       │               ├── AUTHORS
    │   │       │               ├── CONTRIBUTORS
    │   │       │               ├── LICENSE
    │   │       │               ├── README.md
    │   │       │               ├── arshal.go
    │   │       │               ├── arshal_any.go
    │   │       │               ├── arshal_default.go
    │   │       │               ├── arshal_funcs.go
    │   │       │               ├── arshal_inlined.go
    │   │       │               ├── arshal_methods.go
    │   │       │               ├── arshal_time.go
    │   │       │               ├── decode.go
    │   │       │               ├── doc.go
    │   │       │               ├── encode.go
    │   │       │               ├── errors.go
    │   │       │               ├── fields.go
    │   │       │               ├── fold.go
    │   │       │               ├── intern.go
    │   │       │               ├── pools.go
    │   │       │               ├── state.go
    │   │       │               ├── token.go
    │   │       │               └── value.go
    │   │       ├── openapiconv/
    │   │       │   └── convert.go
    │   │       ├── schemaconv/
    │   │       │   ├── openapi.go
    │   │       │   ├── proto_models.go
    │   │       │   └── smd.go
    │   │       ├── schemamutation/
    │   │       │   └── walker.go
    │   │       ├── spec3/
    │   │       │   ├── component.go
    │   │       │   ├── encoding.go
    │   │       │   ├── example.go
    │   │       │   ├── external_documentation.go
    │   │       │   ├── fuzz.go
    │   │       │   ├── header.go
    │   │       │   ├── media_type.go
    │   │       │   ├── operation.go
    │   │       │   ├── parameter.go
    │   │       │   ├── path.go
    │   │       │   ├── request_body.go
    │   │       │   ├── response.go
    │   │       │   ├── security_scheme.go
    │   │       │   ├── server.go
    │   │       │   └── spec.go
    │   │       ├── util/
    │   │       │   └── proto/
    │   │       │       ├── OWNERS
    │   │       │       ├── doc.go
    │   │       │       ├── document.go
    │   │       │       ├── document_v3.go
    │   │       │       └── openapi.go
    │   │       └── validation/
    │   │           └── spec/
    │   │               ├── .gitignore
    │   │               ├── LICENSE
    │   │               ├── contact_info.go
    │   │               ├── external_docs.go
    │   │               ├── fuzz.go
    │   │               ├── gnostic.go
    │   │               ├── header.go
    │   │               ├── info.go
    │   │               ├── items.go
    │   │               ├── license.go
    │   │               ├── operation.go
    │   │               ├── parameter.go
    │   │               ├── path_item.go
    │   │               ├── paths.go
    │   │               ├── ref.go
    │   │               ├── response.go
    │   │               ├── responses.go
    │   │               ├── schema.go
    │   │               ├── security_scheme.go
    │   │               ├── swagger.go
    │   │               └── tag.go
    │   ├── kubelet/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       └── apis/
    │   │           ├── deviceplugin/
    │   │           │   └── v1beta1/
    │   │           │       ├── api.pb.go
    │   │           │       ├── api.proto
    │   │           │       └── constants.go
    │   │           └── podresources/
    │   │               └── v1alpha1/
    │   │                   ├── api.pb.go
    │   │                   └── api.proto
    │   └── utils/
    │       ├── LICENSE
    │       ├── clock/
    │       │   ├── README.md
    │       │   ├── clock.go
    │       │   └── testing/
    │       │       ├── fake_clock.go
    │       │       └── simple_interval_clock.go
    │       ├── integer/
    │       │   └── integer.go
    │       ├── internal/
    │       │   └── third_party/
    │       │       └── forked/
    │       │           └── golang/
    │       │               ├── LICENSE
    │       │               ├── PATENTS
    │       │               └── net/
    │       │                   ├── ip.go
    │       │                   └── parse.go
    │       ├── net/
    │       │   ├── ipfamily.go
    │       │   ├── ipnet.go
    │       │   ├── net.go
    │       │   ├── parse.go
    │       │   └── port.go
    │       └── strings/
    │           └── slices/
    │               └── slices.go
    ├── modules.txt
    └── sigs.k8s.io/
        ├── json/
        │   ├── CONTRIBUTING.md
        │   ├── LICENSE
        │   ├── Makefile
        │   ├── OWNERS
        │   ├── README.md
        │   ├── SECURITY.md
        │   ├── SECURITY_CONTACTS
        │   ├── code-of-conduct.md
        │   ├── doc.go
        │   ├── internal/
        │   │   └── golang/
        │   │       └── encoding/
        │   │           └── json/
        │   │               ├── decode.go
        │   │               ├── encode.go
        │   │               ├── fold.go
        │   │               ├── fuzz.go
        │   │               ├── indent.go
        │   │               ├── kubernetes_patch.go
        │   │               ├── scanner.go
        │   │               ├── stream.go
        │   │               ├── tables.go
        │   │               └── tags.go
        │   └── json.go
        ├── structured-merge-diff/
        │   └── v4/
        │       ├── LICENSE
        │       ├── fieldpath/
        │       │   ├── doc.go
        │       │   ├── element.go
        │       │   ├── fromvalue.go
        │       │   ├── managers.go
        │       │   ├── path.go
        │       │   ├── pathelementmap.go
        │       │   ├── serialize-pe.go
        │       │   ├── serialize.go
        │       │   └── set.go
        │       ├── merge/
        │       │   ├── conflict.go
        │       │   └── update.go
        │       ├── schema/
        │       │   ├── doc.go
        │       │   ├── elements.go
        │       │   ├── equals.go
        │       │   └── schemaschema.go
        │       ├── typed/
        │       │   ├── doc.go
        │       │   ├── helpers.go
        │       │   ├── merge.go
        │       │   ├── parser.go
        │       │   ├── reconcile_schema.go
        │       │   ├── remove.go
        │       │   ├── tofieldset.go
        │       │   ├── typed.go
        │       │   ├── union.go
        │       │   └── validate.go
        │       └── value/
        │           ├── allocator.go
        │           ├── doc.go
        │           ├── fields.go
        │           ├── jsontagutil.go
        │           ├── list.go
        │           ├── listreflect.go
        │           ├── listunstructured.go
        │           ├── map.go
        │           ├── mapreflect.go
        │           ├── mapunstructured.go
        │           ├── reflectcache.go
        │           ├── scalar.go
        │           ├── structreflect.go
        │           ├── value.go
        │           ├── valuereflect.go
        │           └── valueunstructured.go
        └── yaml/
            ├── .gitignore
            ├── .travis.yml
            ├── CONTRIBUTING.md
            ├── LICENSE
            ├── OWNERS
            ├── README.md
            ├── RELEASE.md
            ├── SECURITY_CONTACTS
            ├── code-of-conduct.md
            ├── fields.go
            ├── yaml.go
            └── yaml_go110.go
Copy disabled (too large) Download .txt
Showing preview only (13,785K chars total). Download the full file to get everything.
SYMBOL INDEX (154712 symbols across 2950 files)

FILE: build/boilerplate/boilerplate.py
  function get_refs (line 34) | def get_refs():
  function file_passes (line 46) | def file_passes(filename, refs, regexs):
  function file_extension (line 95) | def file_extension(filename):
  function normalize_files (line 99) | def normalize_files(files):
  function get_files (line 110) | def get_files(extensions):
  function get_regexs (line 136) | def get_regexs():
  function main (line 148) | def main():

FILE: cmd/nvidia_gpu/nvidia_gpu.go
  constant kubeletEndpoint (line 38) | kubeletEndpoint      = "kubelet.sock"
  constant pluginEndpointPrefix (line 39) | pluginEndpointPrefix = "nvidiaGPU"
  constant devDirectory (line 40) | devDirectory         = "/dev"
  constant procDirectory (line 42) | procDirectory = "/proc"
  function parseGPUConfig (line 59) | func parseGPUConfig(gpuConfigFile string) (gpumanager.GPUConfig, error) {
  function main (line 78) | func main() {

FILE: example/cuda-mps/cuda_mem_and_sm_count.c
  function main (line 19) | int main(int argc, const char **argv)

FILE: gke-topology-scheduler/label-nodes-daemon.py
  function update_node_labels (line 26) | def update_node_labels(kube: client.CoreV1Api) -> None:

FILE: gke-topology-scheduler/schedule-daemon.py
  function extract_job_name_label (line 66) | def extract_job_name_label(pod: kubernetes.client.models.V1Pod) -> str:
  function extract_kubeflow_job_name_label (line 78) | def extract_kubeflow_job_name_label(pod: kubernetes.client.models.V1Pod)...
  function extract_owner_reference_uid (line 90) | def extract_owner_reference_uid(pod: kubernetes.client.models.V1Pod) -> ...
  function extract_helm_job_name_label (line 105) | def extract_helm_job_name_label(pod: kubernetes.client.models.V1Pod) -> ...
  function pod_sorting_key (line 119) | def pod_sorting_key(pod_info: dict[str, Any]) -> tuple[str, int]:
  function node_topology_distance (line 153) | def node_topology_distance(node1: dict[str, Any], node2: dict[str, Any])...
  function node_topology_key (line 175) | def node_topology_key(
  function get_pod_used_resources (line 198) | def get_pod_used_resources(
  function all_pods_have_same_tolerations (line 225) | def all_pods_have_same_tolerations(
  function find_schedulable_nodes (line 245) | def find_schedulable_nodes(
  function find_pod_gates (line 335) | def find_pod_gates(
  function find_schedulable_pods (line 356) | def find_schedulable_pods(
  function can_schedule (line 420) | def can_schedule(node: dict[str, Any], pod: dict[str, Any]) -> bool:
  function schedule_pod_on_node (line 447) | def schedule_pod_on_node(
  function calculate_pods_assignment (line 500) | def calculate_pods_assignment(
  function list_pods (line 547) | def list_pods(
  function schedule_pod_with_gate (line 568) | def schedule_pod_with_gate(
  function run_scheduling_loop (line 751) | def run_scheduling_loop() -> None:

FILE: gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.py
  function update_node_labels (line 24) | def update_node_labels(kube):

FILE: gpudirect-tcpxo/topology-scheduler/schedule-daemon.py
  function split_pods_based_on_jobs (line 26) | def split_pods_based_on_jobs(pods):
  function sort_jobs_by_time (line 34) | def sort_jobs_by_time(job):
  function pod_sorting_key (line 40) | def pod_sorting_key(pod):
  function node_topology_distance (line 63) | def node_topology_distance(node1, node2):
  function node_topology_key (line 74) | def node_topology_key(node):
  function get_pod_used_resources (line 94) | def get_pod_used_resources(pod):
  function get_pods_taint_toleration (line 112) | def get_pods_taint_toleration(pods):
  function find_schedulable_nodes (line 127) | def find_schedulable_nodes(nodes, pods, tolerated_taints):
  function find_pod_gates (line 204) | def find_pod_gates(pods, prefix):
  function find_schedulable_pods (line 215) | def find_schedulable_pods(pods, gate_name):
  function can_schedule (line 288) | def can_schedule(node, pod):
  function schedule_pod_on_node (line 305) | def schedule_pod_on_node(v1, pod_name, pod_namespace, node, gate_name):
  function calculate_pods_assignment (line 338) | def calculate_pods_assignment(sorted_nodes, sorted_pods):
  function schedule_pod_with_gate (line 372) | def schedule_pod_with_gate(v1, pods, gate):
  function run_scheduling_loop (line 411) | def run_scheduling_loop():

FILE: nri_device_injector/nri_device_injector.go
  constant deviceKeyPrefix (line 31) | deviceKeyPrefix = "devices.gke.io"
  constant ctrDeviceKeyPrefix (line 33) | ctrDeviceKeyPrefix = deviceKeyPrefix + "/container."
  constant pluginName (line 34) | pluginName         = "device_injector_nri"
  constant pluginIdx (line 35) | pluginIdx          = "10"
  constant blockDevice (line 37) | blockDevice = "b"
  constant charDevice (line 38) | charDevice  = "c"
  constant fifoDevice (line 39) | fifoDevice  = "p"
  type device (line 42) | type device struct
    method toNRIDevice (line 158) | func (d *device) toNRIDevice() (*api.LinuxDevice, error) {
  type plugin (line 52) | type plugin struct
    method onClose (line 79) | func (p *plugin) onClose() {
    method CreateContainer (line 86) | func (p *plugin) CreateContainer(_ context.Context, pod *api.PodSandbo...
  function main (line 56) | func main() {
  function getDevices (line 126) | func getDevices(ctrName string, podAnnotations map[string]string) ([]dev...

FILE: nri_device_injector/nri_device_injector_test.go
  function TestToNRIDevice (line 25) | func TestToNRIDevice(t *testing.T) {
  function TestGetDevices (line 95) | func TestGetDevices(t *testing.T) {

FILE: nvidia-persistenced-installer/nvidia_persistenced_installer.go
  constant minUVMSupportedVersion (line 34) | minUVMSupportedVersion = 550
  constant SIGRTMIN (line 35) | SIGRTMIN               = 34
  function main (line 47) | func main() {
  function enablePersistenceMode (line 105) | func enablePersistenceMode(ctx context.Context) error {
  function setGPUReadyState (line 124) | func setGPUReadyState(ctx context.Context) (string, error) {
  function updateContainerLdCache (line 133) | func updateContainerLdCache() error {
  function getLoadedNVIDIAKernelModuleVersion (line 148) | func getLoadedNVIDIAKernelModuleVersion(ctx context.Context, versionFile...
  function nvidiaVersionMajor (line 162) | func nvidiaVersionMajor(ctx context.Context) (int, error) {
  function checkConfidentialGPUEnablement (line 181) | func checkConfidentialGPUEnablement(ctx context.Context) (bool, error) {
  function rebootNode (line 196) | func rebootNode() error {
  function getMachineTypeFromFile (line 201) | func getMachineTypeFromFile(ctx context.Context) (string, error) {
  function enableGriddDaemon (line 213) | func enableGriddDaemon(ctx context.Context, machineType string) error {

FILE: nvidia-persistenced-installer/nvidia_persistenced_installer_test.go
  type fakeReadFileFunc (line 23) | type fakeReadFileFunc
  function TestCheckConfidentialGPUEnabled (line 25) | func TestCheckConfidentialGPUEnabled(t *testing.T) {

FILE: partition_gpu/partition_gpu.go
  constant SIGRTMIN (line 142) | SIGRTMIN         = 34
  constant NvidiaGB200 (line 143) | NvidiaGB200      = "NVIDIA GB200"
  constant NvidiaB200 (line 144) | NvidiaB200       = "NVIDIA B200"
  constant Nvidia141gbH200 (line 145) | Nvidia141gbH200  = "NVIDIA H200"
  constant Nvidia80gbH100 (line 146) | Nvidia80gbH100   = "NVIDIA H100 80GB HBM3"
  constant Nvidia40gbA100 (line 147) | Nvidia40gbA100   = "NVIDIA A100-SXM4-40GB"
  constant Nvidia80gbA100 (line 148) | Nvidia80gbA100   = "NVIDIA A100-SXM4-80GB"
  constant NvidiaRtxPro6000 (line 149) | NvidiaRtxPro6000 = "NVIDIA RTX PRO 6000"
  type GPUConfig (line 153) | type GPUConfig struct
  function main (line 157) | func main() {
  function parseGPUConfig (line 238) | func parseGPUConfig(gpuConfigFile string) (GPUConfig, error) {
  function currentMigMode (line 253) | func currentMigMode() (bool, error) {
  function enableMigMode (line 268) | func enableMigMode() error {
  function checkGpuType (line 273) | func checkGpuType() (string, error) {
  function rebootNode (line 297) | func rebootNode() error {
  function cleanupAllGPUPartitions (line 302) | func cleanupAllGPUPartitions() error {
  function createGPUPartitions (line 323) | func createGPUPartitions(partitionSize string) error {
  function buildPartitionStr (line 349) | func buildPartitionStr(partitionSize string) (string, error) {
  function checkCurrentPartitionProfileCounts (line 369) | func checkCurrentPartitionProfileCounts(desiredMaxCount int) bool {
  function parseLGIOutput (line 394) | func parseLGIOutput(lgiOutput string) (map[string][]string, bool, error) {
  function checkDesired (line 446) | func checkDesired(partitions map[string][]string, desiredMaxCount int) b...
  function runNvidiaSmiStatus (line 460) | func runNvidiaSmiStatus() {

FILE: partition_gpu/partition_gpu_test.go
  function Test_buildPartitionStr (line 22) | func Test_buildPartitionStr(t *testing.T) {
  function Test_parseLGIOutput (line 68) | func Test_parseLGIOutput(t *testing.T) {
  function Test_checkDesired (line 173) | func Test_checkDesired(t *testing.T) {

FILE: pkg/gpu/nvidia/beta_plugin.go
  type pluginServiceV1Beta1 (line 31) | type pluginServiceV1Beta1 struct
    method GetDevicePluginOptions (line 35) | func (s *pluginServiceV1Beta1) GetDevicePluginOptions(ctx context.Cont...
    method ListAndWatch (line 39) | func (s *pluginServiceV1Beta1) ListAndWatch(emtpy *pluginapi.Empty, st...
    method Allocate (line 56) | func (s *pluginServiceV1Beta1) Allocate(ctx context.Context, requests ...
    method PreStartContainer (line 95) | func (s *pluginServiceV1Beta1) PreStartContainer(ctx context.Context, ...
    method GetPreferredAllocation (line 100) | func (s *pluginServiceV1Beta1) GetPreferredAllocation(context.Context,...
    method RegisterService (line 105) | func (s *pluginServiceV1Beta1) RegisterService() {
    method sendDevices (line 133) | func (s *pluginServiceV1Beta1) sendDevices(stream pluginapi.DevicePlug...
  function RegisterWithV1Beta1Kubelet (line 110) | func RegisterWithV1Beta1Kubelet(kubeletEndpoint, pluginEndpoint, resourc...

FILE: pkg/gpu/nvidia/beta_plugin_test.go
  type KubeletStub (line 36) | type KubeletStub struct
    method Register (line 50) | func (k *KubeletStub) Register(ctx context.Context, r *pluginapi.Regis...
    method Start (line 57) | func (k *KubeletStub) Start() error {
  function NewKubeletStub (line 44) | func NewKubeletStub(socket string) *KubeletStub {
  function TestNvidiaGPUManagerBetaAPI (line 72) | func TestNvidiaGPUManagerBetaAPI(t *testing.T) {
  function testNvidiaGPUManagerBetaAPI (line 244) | func testNvidiaGPUManagerBetaAPI(gpuConfig GPUConfig, wantDevices map[st...
  function testNvidiaGPUManagerBetaAPIWithMig (line 391) | func testNvidiaGPUManagerBetaAPIWithMig(gpuConfig GPUConfig, wantDevices...

FILE: pkg/gpu/nvidia/gpusharing/gpusharing.go
  type GPUSharingStrategy (line 23) | type GPUSharingStrategy
  constant Undefined (line 26) | Undefined   GPUSharingStrategy = ""
  constant TimeSharing (line 27) | TimeSharing GPUSharingStrategy = "time-sharing"
  constant MPS (line 28) | MPS         GPUSharingStrategy = "mps"
  function ValidateRequest (line 40) | func ValidateRequest(requestDevicesIDs []string, deviceCount int) error {
  function VirtualToPhysicalDeviceID (line 53) | func VirtualToPhysicalDeviceID(virtualDeviceID string) (string, error) {
  function IsVirtualDeviceID (line 63) | func IsVirtualDeviceID(virtualDeviceID string) bool {
  function isVirtualDeviceIDForDefaultMode (line 67) | func isVirtualDeviceIDForDefaultMode(virtualDeviceID string) bool {
  function isVirtualDeviceIDForMIGMode (line 73) | func isVirtualDeviceIDForMIGMode(virtualDeviceID string) bool {

FILE: pkg/gpu/nvidia/gpusharing/gpusharing_test.go
  function TestValidateRequest (line 24) | func TestValidateRequest(t *testing.T) {
  function TestVirtualToPhysicalDeviceID (line 80) | func TestVirtualToPhysicalDeviceID(t *testing.T) {

FILE: pkg/gpu/nvidia/health_check/health_checker.go
  constant XIDConditionType (line 41) | XIDConditionType = "XidCriticalError"
  constant eventSource (line 42) | eventSource      = "nvidia-gpu-device-plugin"
  constant resetXIDConditionTimeout (line 44) | resetXIDConditionTimeout = 2 * time.Minute
  type GPUHealthChecker (line 50) | type GPUHealthChecker struct
    method resetXIDConditionWithBackoff (line 103) | func (hc *GPUHealthChecker) resetXIDConditionWithBackoff() {
    method resetXIDCondition (line 129) | func (hc *GPUHealthChecker) resetXIDCondition() error {
    method Start (line 163) | func (hc *GPUHealthChecker) Start() error {
    method addDevice (line 243) | func (hc *GPUHealthChecker) addDevice(deviceName string, device *nvml....
    method addMigEnabledDevice (line 253) | func (hc *GPUHealthChecker) addMigEnabledDevice(deviceName string, dev...
    method monitorXidevent (line 288) | func (hc *GPUHealthChecker) monitorXidevent(e nvml.Event) {
    method setXIDheartbeat (line 348) | func (hc *GPUHealthChecker) setXIDheartbeat() {
    method updateLastHeartbeatTime (line 360) | func (hc *GPUHealthChecker) updateLastHeartbeatTime() {
    method recordXIDEvent (line 386) | func (hc *GPUHealthChecker) recordXIDEvent(e nvml.Event) error {
    method catchError (line 395) | func (hc *GPUHealthChecker) catchError(e nvml.Event, cd callDevice) {
    method listenToEvents (line 452) | func (hc *GPUHealthChecker) listenToEvents() error {
    method Stop (line 471) | func (hc *GPUHealthChecker) Stop() {
  function NewGPUHealthChecker (line 65) | func NewGPUHealthChecker(devices map[string]pluginapi.Device, health cha...
  type callDevice (line 279) | type callDevice interface
  type GPUDevice (line 282) | type GPUDevice struct
    method parseMigDeviceUUID (line 284) | func (gd *GPUDevice) parseMigDeviceUUID(UUID string) (string, uint, ui...

FILE: pkg/gpu/nvidia/health_check/health_checker_test.go
  function pointer (line 34) | func pointer[T any](s T) *T {
  type mockGPUDevice (line 38) | type mockGPUDevice struct
    method parseMigDeviceUUID (line 40) | func (gp *mockGPUDevice) parseMigDeviceUUID(UUID string) (string, uint...
  function TestCatchError (line 44) | func TestCatchError(t *testing.T) {
  function TestUpdateLastHeartbeatTime (line 266) | func TestUpdateLastHeartbeatTime(t *testing.T) {
  function TestResetXIDConditionWithBackoff (line 297) | func TestResetXIDConditionWithBackoff(t *testing.T) {
  function TestMonitorXidevent (line 359) | func TestMonitorXidevent(t *testing.T) {
  function makeNode (line 464) | func makeNode(labels map[string]string, annotations map[string]string, c...

FILE: pkg/gpu/nvidia/manager.go
  constant nvidiaCtlDevice (line 48) | nvidiaCtlDevice = "nvidiactl"
  constant nvidiaUVMDevice (line 49) | nvidiaUVMDevice = "nvidia-uvm"
  constant nvidiaUVMToolsDevice (line 52) | nvidiaUVMToolsDevice = "nvidia-uvm-tools"
  constant nvidiaModesetDevice (line 53) | nvidiaModesetDevice  = "nvidia-modeset"
  constant nvidiaDeviceRE (line 55) | nvidiaDeviceRE            = `^nvidia[0-9]*$`
  constant gpuCheckInterval (line 56) | gpuCheckInterval          = 10 * time.Second
  constant pluginSocketCheckInterval (line 57) | pluginSocketCheckInterval = 1 * time.Second
  constant nvidiaMpsDir (line 59) | nvidiaMpsDir       = "/tmp/nvidia-mps"
  constant mpsControlBin (line 60) | mpsControlBin      = "/usr/local/nvidia/bin/nvidia-cuda-mps-control"
  constant mpsActiveThreadCmd (line 61) | mpsActiveThreadCmd = "get_default_active_thread_percentage"
  constant mpsMemLimitEnv (line 62) | mpsMemLimitEnv     = "CUDA_MPS_PINNED_DEVICE_MEM_LIMIT"
  constant mpsThreadLimitEnv (line 63) | mpsThreadLimitEnv  = "CUDA_MPS_ACTIVE_THREAD_PERCENTAGE"
  type GPUConfig (line 72) | type GPUConfig struct
    method AddDefaultsAndValidate (line 90) | func (config *GPUConfig) AddDefaultsAndValidate() error {
    method AddHealthCriticalXid (line 117) | func (config *GPUConfig) AddHealthCriticalXid() error {
  type GPUSharingConfig (line 83) | type GPUSharingConfig struct
  type nvidiaGPUManager (line 140) | type nvidiaGPUManager struct
    method ListPhysicalDevices (line 173) | func (ngm *nvidiaGPUManager) ListPhysicalDevices() map[string]pluginap...
    method ListHealthCriticalXid (line 180) | func (ngm *nvidiaGPUManager) ListHealthCriticalXid() []int {
    method ListDevices (line 185) | func (ngm *nvidiaGPUManager) ListDevices() map[string]pluginapi.Device {
    method DeviceSpec (line 205) | func (ngm *nvidiaGPUManager) DeviceSpec(deviceID string) ([]pluginapi....
    method discoverGPUs (line 235) | func (ngm *nvidiaGPUManager) discoverGPUs() error {
    method hasAdditionalGPUsInstalled (line 269) | func (ngm *nvidiaGPUManager) hasAdditionalGPUsInstalled() bool {
    method discoverNumGPUs (line 286) | func (ngm *nvidiaGPUManager) discoverNumGPUs() (int, error) {
    method isMpsHealthy (line 305) | func (ngm *nvidiaGPUManager) isMpsHealthy() error {
    method Envs (line 333) | func (ngm *nvidiaGPUManager) Envs(numDevicesRequested int) map[string]...
    method SetDeviceHealth (line 349) | func (ngm *nvidiaGPUManager) SetDeviceHealth(name string, health strin...
    method CheckDevicePaths (line 364) | func (ngm *nvidiaGPUManager) CheckDevicePaths() error {
    method Start (line 376) | func (ngm *nvidiaGPUManager) Start() error {
    method Serve (line 432) | func (ngm *nvidiaGPUManager) Serve(pMountPath, kEndpoint, pluginEndpoi...
    method Stop (line 541) | func (ngm *nvidiaGPUManager) Stop() error {
  function NewNvidiaGPUManager (line 157) | func NewNvidiaGPUManager(devDirectory, procDirectory string, mountPaths ...
  function totalMemPerGPU (line 413) | func totalMemPerGPU() (uint64, error) {

FILE: pkg/gpu/nvidia/manager_test.go
  function TestGPUConfig_AddDefaultsAndValidate (line 30) | func TestGPUConfig_AddDefaultsAndValidate(t *testing.T) {
  function TestGPUConfig_AddHealthCriticalXid (line 93) | func TestGPUConfig_AddHealthCriticalXid(t *testing.T) {
  function Test_nvidiaGPUManager_Envs (line 150) | func Test_nvidiaGPUManager_Envs(t *testing.T) {
  function Test_topology (line 223) | func Test_topology(t *testing.T) {

FILE: pkg/gpu/nvidia/metrics/devices.go
  type ContainerID (line 43) | type ContainerID struct
  function GetDevicesForAllContainers (line 51) | func GetDevicesForAllContainers() (map[ContainerID][]string, error) {
  function GetAllGpuDevices (line 103) | func GetAllGpuDevices() map[string]*nvml.Device {
  function DiscoverGPUDevices (line 108) | func DiscoverGPUDevices() error {
  function DeviceFromName (line 133) | func DeviceFromName(deviceName string) (*nvml.Device, error) {

FILE: pkg/gpu/nvidia/metrics/metrics.go
  type metricsCollector (line 29) | type metricsCollector interface
  type mCollector (line 37) | type mCollector struct
    method collectGPUDevice (line 47) | func (t *mCollector) collectGPUDevice(deviceName string) (*nvml.Device...
    method collectDutyCycle (line 51) | func (t *mCollector) collectDutyCycle(uuid string, since time.Duration...
    method collectGpuMetricsInfo (line 55) | func (t *mCollector) collectGpuMetricsInfo(device string, d *nvml.Devi...
  type metricsInfo (line 39) | type metricsInfo struct
  constant metricsResetInterval (line 117) | metricsResetInterval = time.Minute
  type MetricServer (line 120) | type MetricServer struct
    method Start (line 137) | func (m *MetricServer) Start() error {
    method collectMetrics (line 163) | func (m *MetricServer) collectMetrics() {
    method updateMetrics (line 208) | func (m *MetricServer) updateMetrics(containerDevices map[ContainerID]...
    method resetMetricsIfNeeded (line 241) | func (m *MetricServer) resetMetricsIfNeeded() {
    method Stop (line 256) | func (m *MetricServer) Stop() {
  function NewMetricServer (line 127) | func NewMetricServer(collectionInterval, port int, metricsEndpointPath s...
  function getGpuMetricsInfo (line 182) | func getGpuMetricsInfo(device string, d *nvml.Device) (metricsInfo, erro...

FILE: pkg/gpu/nvidia/metrics/metrics_test.go
  type mockCollector (line 26) | type mockCollector struct
    method collectGPUDevice (line 28) | func (t *mockCollector) collectGPUDevice(deviceName string) (*nvml.Dev...
    method collectDutyCycle (line 32) | func (t *mockCollector) collectDutyCycle(uuid string, since time.Durat...
    method collectGpuMetricsInfo (line 40) | func (t *mockCollector) collectGpuMetricsInfo(device string, d *nvml.D...
  function TestMetricsUpdate (line 115) | func TestMetricsUpdate(t *testing.T) {

FILE: pkg/gpu/nvidia/metrics/util.go
  function AverageGPUUtilization (line 97) | func AverageGPUUtilization(uuid string, since time.Duration) (uint, erro...

FILE: pkg/gpu/nvidia/mig/mig.go
  constant nvidiaDeviceRE (line 31) | nvidiaDeviceRE = `^nvidia[0-9]*$`
  type DeviceManager (line 87) | type DeviceManager struct
    method ListGPUPartitionDevices (line 106) | func (d *DeviceManager) ListGPUPartitionDevices() map[string]pluginapi...
    method DeviceSpec (line 111) | func (d *DeviceManager) DeviceSpec(deviceID string) ([]pluginapi.Devic...
    method Start (line 121) | func (d *DeviceManager) Start(partitionSize string) error {
    method SetDeviceHealth (line 257) | func (d *DeviceManager) SetDeviceHealth(name string, health string, to...
    method discoverNumGPUs (line 262) | func (d *DeviceManager) discoverNumGPUs() (int, error) {
    method topology (line 282) | func (d *DeviceManager) topology(deviceIndex string) (*pluginapi.Topol...
  function NewDeviceManager (line 95) | func NewDeviceManager(devDirectory, procDirectory string) DeviceManager {

FILE: pkg/gpu/nvidia/mig/mig_test.go
  function TestDiscoverGPUPartitions (line 29) | func TestDiscoverGPUPartitions(t *testing.T) {

FILE: pkg/gpu/nvidia/nvmlutil/nvml_mock.go
  constant nvidiaDeviceRE (line 26) | nvidiaDeviceRE = `^nvidia[0-9]*$`
  type MockDeviceInfo (line 28) | type MockDeviceInfo struct
    method DeviceCount (line 34) | func (gpuDeviceInfo *MockDeviceInfo) DeviceCount() (int, nvml.Return) {
    method DeviceHandleByIndex (line 51) | func (gpuDeviceInfo *MockDeviceInfo) DeviceHandleByIndex(i int) (nvml....
    method MigDeviceHandleByIndex (line 56) | func (gpuDeviceInfo *MockDeviceInfo) MigDeviceHandleByIndex(d nvml.Dev...
    method MigMode (line 60) | func (gpuDeviceInfo *MockDeviceInfo) MigMode(d nvml.Device) (int, int,...
    method MinorNumber (line 64) | func (gpuDeviceInfo *MockDeviceInfo) MinorNumber(d nvml.Device) (int, ...
    method PciInfo (line 68) | func (gpuDeviceInfo *MockDeviceInfo) PciInfo(d nvml.Device) (nvml.PciI...

FILE: pkg/gpu/nvidia/nvmlutil/nvmlutil.go
  type NvmlOperations (line 30) | type NvmlOperations interface
  type DeviceInfo (line 45) | type DeviceInfo struct
    method DeviceCount (line 47) | func (gpuDeviceInfo *DeviceInfo) DeviceCount() (int, nvml.Return) {
    method DeviceHandleByIndex (line 51) | func (gpuDeviceInfo *DeviceInfo) DeviceHandleByIndex(i int) (nvml.Devi...
    method MigDeviceHandleByIndex (line 55) | func (gpuDeviceInfo *DeviceInfo) MigDeviceHandleByIndex(d nvml.Device,...
    method MigMode (line 64) | func (gpuDeviceInfo *DeviceInfo) MigMode(d nvml.Device) (int, int, nvm...
    method MinorNumber (line 68) | func (gpuDeviceInfo *DeviceInfo) MinorNumber(d nvml.Device) (int, nvml...
    method PciInfo (line 72) | func (gpuDeviceInfo *DeviceInfo) PciInfo(d nvml.Device) (nvml.PciInfo,...
  function Topology (line 88) | func Topology(d nvml.Device, pciDevicesRoot string) (*pluginapi.Topology...
  function numaNode (line 114) | func numaNode(d nvml.Device, pciDevicesRoot string) (numaEnabled bool, n...

FILE: pkg/gpu/nvidia/util/util.go
  function DeviceNameFromPath (line 29) | func DeviceNameFromPath(path string) (string, error) {
  function Files (line 39) | func Files(files ...string) (*fsnotify.Watcher, error) {
  function BuildKubeClient (line 55) | func BuildKubeClient() (client.Interface, error) {

FILE: pkg/gpu/nvidia/util/util_test.go
  function TestDeviceNameFromPath (line 23) | func TestDeviceNameFromPath(t *testing.T) {

FILE: pkg/gpu/nvidia/version_visibility/version_visibility.go
  constant DriverVersionPrefix (line 30) | DriverVersionPrefix   = "cloud.google.com/cuda.driver-version"
  constant DriverVersionMajor (line 31) | DriverVersionMajor    = DriverVersionPrefix + ".major"
  constant DriverVersionMinor (line 32) | DriverVersionMinor    = DriverVersionPrefix + ".minor"
  constant DriverVersionRevision (line 33) | DriverVersionRevision = DriverVersionPrefix + ".revision"
  constant DriverVersionFull (line 34) | DriverVersionFull     = DriverVersionPrefix + ".full"
  function PublishDriverVersionAnnotations (line 38) | func PublishDriverVersionAnnotations(ctx context.Context, kubeClient kub...
  function parseDriverAnnotations (line 48) | func parseDriverAnnotations(version string) map[string]string {
  function patchNodeAnnotations (line 67) | func patchNodeAnnotations(ctx context.Context, kubeClient kubernetes.Int...

FILE: pkg/gpu/nvidia/version_visibility/version_visibility_test.go
  function TestParseDriverAnnotations (line 26) | func TestParseDriverAnnotations(t *testing.T) {
  function TestPatchNodeAnnotations (line 86) | func TestPatchNodeAnnotations(t *testing.T) {

FILE: vendor/cloud.google.com/go/compute/metadata/log.go
  type noOpHandler (line 32) | type noOpHandler struct
    method Enabled (line 34) | func (h noOpHandler) Enabled(_ context.Context, _ slog.Level) bool {
    method Handle (line 38) | func (h noOpHandler) Handle(_ context.Context, _ slog.Record) error {
    method WithAttrs (line 42) | func (h noOpHandler) WithAttrs(_ []slog.Attr) slog.Handler {
    method WithGroup (line 46) | func (h noOpHandler) WithGroup(_ string) slog.Handler {
  function httpRequest (line 52) | func httpRequest(req *http.Request, body []byte) slog.LogValuer {
  type request (line 59) | type request struct
    method LogValue (line 64) | func (r *request) LogValue() slog.Value {
  function httpResponse (line 90) | func httpResponse(resp *http.Response, body []byte) slog.LogValuer {
  type response (line 97) | type response struct
    method LogValue (line 102) | func (r *response) LogValue() slog.Value {
  function processPayload (line 125) | func processPayload(payload []byte) (slog.Attr, bool) {

FILE: vendor/cloud.google.com/go/compute/metadata/metadata.go
  constant metadataIP (line 40) | metadataIP = "169.254.169.254"
  constant metadataHostEnv (line 47) | metadataHostEnv = "GCE_METADATA_HOST"
  constant userAgent (line 49) | userAgent = "gcloud-golang/0.1"
  type cachedValue (line 52) | type cachedValue struct
    method get (line 100) | func (c *cachedValue) get(ctx context.Context, cl *Client) (v string, ...
  function newDefaultHTTPClient (line 71) | func newDefaultHTTPClient(enableTimeouts bool) *http.Client {
  type NotDefinedError (line 94) | type NotDefinedError
    method Error (line 96) | func (suffix NotDefinedError) Error() string {
  function OnGCE (line 125) | func OnGCE() bool {
  function OnGCEWithContext (line 133) | func OnGCEWithContext(ctx context.Context) bool {
  function Subscribe (line 143) | func Subscribe(suffix string, fn func(v string, ok bool) error) error {
  function SubscribeWithContext (line 148) | func SubscribeWithContext(ctx context.Context, suffix string, fn func(ct...
  function Get (line 155) | func Get(suffix string) (string, error) {
  function GetWithContext (line 160) | func GetWithContext(ctx context.Context, suffix string) (string, error) {
  function ProjectID (line 167) | func ProjectID() (string, error) {
  function ProjectIDWithContext (line 172) | func ProjectIDWithContext(ctx context.Context) (string, error) {
  function NumericProjectID (line 179) | func NumericProjectID() (string, error) {
  function NumericProjectIDWithContext (line 184) | func NumericProjectIDWithContext(ctx context.Context) (string, error) {
  function InternalIP (line 191) | func InternalIP() (string, error) {
  function InternalIPWithContext (line 196) | func InternalIPWithContext(ctx context.Context) (string, error) {
  function ExternalIP (line 203) | func ExternalIP() (string, error) {
  function ExternalIPWithContext (line 208) | func ExternalIPWithContext(ctx context.Context) (string, error) {
  function Email (line 215) | func Email(serviceAccount string) (string, error) {
  function EmailWithContext (line 220) | func EmailWithContext(ctx context.Context, serviceAccount string) (strin...
  function Hostname (line 228) | func Hostname() (string, error) {
  function HostnameWithContext (line 234) | func HostnameWithContext(ctx context.Context) (string, error) {
  function InstanceTags (line 242) | func InstanceTags() ([]string, error) {
  function InstanceTagsWithContext (line 248) | func InstanceTagsWithContext(ctx context.Context) ([]string, error) {
  function InstanceID (line 255) | func InstanceID() (string, error) {
  function InstanceIDWithContext (line 260) | func InstanceIDWithContext(ctx context.Context) (string, error) {
  function InstanceName (line 267) | func InstanceName() (string, error) {
  function InstanceNameWithContext (line 272) | func InstanceNameWithContext(ctx context.Context) (string, error) {
  function Zone (line 279) | func Zone() (string, error) {
  function ZoneWithContext (line 284) | func ZoneWithContext(ctx context.Context) (string, error) {
  function InstanceAttributes (line 291) | func InstanceAttributes() ([]string, error) {
  function InstanceAttributesWithContext (line 296) | func InstanceAttributesWithContext(ctx context.Context) ([]string, error) {
  function ProjectAttributes (line 303) | func ProjectAttributes() ([]string, error) {
  function ProjectAttributesWithContext (line 308) | func ProjectAttributesWithContext(ctx context.Context) ([]string, error) {
  function InstanceAttributeValue (line 315) | func InstanceAttributeValue(attr string) (string, error) {
  function InstanceAttributeValueWithContext (line 320) | func InstanceAttributeValueWithContext(ctx context.Context, attr string)...
  function ProjectAttributeValue (line 327) | func ProjectAttributeValue(attr string) (string, error) {
  function ProjectAttributeValueWithContext (line 332) | func ProjectAttributeValueWithContext(ctx context.Context, attr string) ...
  function Scopes (line 339) | func Scopes(serviceAccount string) ([]string, error) {
  function ScopesWithContext (line 344) | func ScopesWithContext(ctx context.Context, serviceAccount string) ([]st...
  function strsContains (line 348) | func strsContains(ss []string, s string) bool {
  type Client (line 358) | type Client struct
    method OnGCEWithContext (line 456) | func (c *Client) OnGCEWithContext(ctx context.Context) bool {
    method getETag (line 509) | func (c *Client) getETag(ctx context.Context, suffix string) (value, e...
    method getETagWithSubClient (line 513) | func (c *Client) getETagWithSubClient(ctx context.Context, suffix stri...
    method Get (line 591) | func (c *Client) Get(suffix string) (string, error) {
    method GetWithContext (line 607) | func (c *Client) GetWithContext(ctx context.Context, suffix string) (s...
    method getTrimmed (line 612) | func (c *Client) getTrimmed(ctx context.Context, suffix string) (s str...
    method lines (line 618) | func (c *Client) lines(ctx context.Context, suffix string) ([]string, ...
    method ProjectID (line 633) | func (c *Client) ProjectID() (string, error) { return c.ProjectIDWithC...
    method ProjectIDWithContext (line 636) | func (c *Client) ProjectIDWithContext(ctx context.Context) (string, er...
    method NumericProjectID (line 641) | func (c *Client) NumericProjectID() (string, error) {
    method NumericProjectIDWithContext (line 646) | func (c *Client) NumericProjectIDWithContext(ctx context.Context) (str...
    method InstanceID (line 653) | func (c *Client) InstanceID() (string, error) {
    method InstanceIDWithContext (line 658) | func (c *Client) InstanceIDWithContext(ctx context.Context) (string, e...
    method InternalIP (line 665) | func (c *Client) InternalIP() (string, error) {
    method InternalIPWithContext (line 670) | func (c *Client) InternalIPWithContext(ctx context.Context) (string, e...
    method Email (line 677) | func (c *Client) Email(serviceAccount string) (string, error) {
    method EmailWithContext (line 684) | func (c *Client) EmailWithContext(ctx context.Context, serviceAccount ...
    method ExternalIP (line 694) | func (c *Client) ExternalIP() (string, error) {
    method ExternalIPWithContext (line 699) | func (c *Client) ExternalIPWithContext(ctx context.Context) (string, e...
    method Hostname (line 707) | func (c *Client) Hostname() (string, error) {
    method HostnameWithContext (line 713) | func (c *Client) HostnameWithContext(ctx context.Context) (string, err...
    method InstanceTags (line 720) | func (c *Client) InstanceTags() ([]string, error) {
    method InstanceTagsWithContext (line 726) | func (c *Client) InstanceTagsWithContext(ctx context.Context) ([]strin...
    method InstanceName (line 741) | func (c *Client) InstanceName() (string, error) {
    method InstanceNameWithContext (line 746) | func (c *Client) InstanceNameWithContext(ctx context.Context) (string,...
    method Zone (line 753) | func (c *Client) Zone() (string, error) {
    method ZoneWithContext (line 758) | func (c *Client) ZoneWithContext(ctx context.Context) (string, error) {
    method InstanceAttributes (line 772) | func (c *Client) InstanceAttributes() ([]string, error) {
    method InstanceAttributesWithContext (line 779) | func (c *Client) InstanceAttributesWithContext(ctx context.Context) ([...
    method ProjectAttributes (line 788) | func (c *Client) ProjectAttributes() ([]string, error) {
    method ProjectAttributesWithContext (line 795) | func (c *Client) ProjectAttributesWithContext(ctx context.Context) ([]...
    method InstanceAttributeValue (line 809) | func (c *Client) InstanceAttributeValue(attr string) (string, error) {
    method InstanceAttributeValueWithContext (line 821) | func (c *Client) InstanceAttributeValueWithContext(ctx context.Context...
    method ProjectAttributeValue (line 835) | func (c *Client) ProjectAttributeValue(attr string) (string, error) {
    method ProjectAttributeValueWithContext (line 847) | func (c *Client) ProjectAttributeValueWithContext(ctx context.Context,...
    method Scopes (line 856) | func (c *Client) Scopes(serviceAccount string) ([]string, error) {
    method ScopesWithContext (line 863) | func (c *Client) ScopesWithContext(ctx context.Context, serviceAccount...
    method Subscribe (line 875) | func (c *Client) Subscribe(suffix string, fn func(v string, ok bool) e...
    method SubscribeWithContext (line 888) | func (c *Client) SubscribeWithContext(ctx context.Context, suffix stri...
  type Options (line 368) | type Options struct
  function NewClient (line 390) | func NewClient(c *http.Client) *Client {
  function NewWithOptions (line 400) | func NewWithOptions(opts *Options) *Client {
  type Error (line 928) | type Error struct
    method Error (line 935) | func (e *Error) Error() string {

FILE: vendor/cloud.google.com/go/compute/metadata/retry.go
  constant maxRetryAttempts (line 26) | maxRetryAttempts = 5
  type defaultBackoff (line 35) | type defaultBackoff struct
    method Pause (line 41) | func (b *defaultBackoff) Pause() time.Duration {
  function sleep (line 51) | func sleep(ctx context.Context, d time.Duration) error {
  function newRetryer (line 62) | func newRetryer() *metadataRetryer {
  type backoff (line 70) | type backoff interface
  type metadataRetryer (line 74) | type metadataRetryer struct
    method Retry (line 79) | func (r *metadataRetryer) Retry(status int, err error) (time.Duration,...
  function shouldRetry (line 94) | func shouldRetry(status int, err error) bool {

FILE: vendor/cloud.google.com/go/compute/metadata/retry_linux.go
  function init (line 25) | func init() {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl.go
  constant RTLD_LAZY (line 30) | RTLD_LAZY     = C.RTLD_LAZY
  constant RTLD_NOW (line 31) | RTLD_NOW      = C.RTLD_NOW
  constant RTLD_GLOBAL (line 32) | RTLD_GLOBAL   = C.RTLD_GLOBAL
  constant RTLD_LOCAL (line 33) | RTLD_LOCAL    = C.RTLD_LOCAL
  constant RTLD_NODELETE (line 34) | RTLD_NODELETE = C.RTLD_NODELETE
  constant RTLD_NOLOAD (line 35) | RTLD_NOLOAD   = C.RTLD_NOLOAD
  type DynamicLibrary (line 38) | type DynamicLibrary struct
    method Open (line 67) | func (dl *DynamicLibrary) Open() error {
    method Close (line 84) | func (dl *DynamicLibrary) Close() error {
    method Lookup (line 100) | func (dl *DynamicLibrary) Lookup(symbol string) error {
  function New (line 44) | func New(name string, flags int) *DynamicLibrary {
  function withOSLock (line 52) | func withOSLock(action func() error) error {
  function dlError (line 59) | func dlError() error {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl_linux.go
  constant RTLD_DEEPBIND (line 25) | RTLD_DEEPBIND = C.RTLD_DEEPBIND

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/api.go
  type Library (line 20) | type Library interface
  type dynamicLibrary (line 28) | type dynamicLibrary interface
  type Interface (line 35) | type Interface interface

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers.go
  type stringHeader (line 25) | type stringHeader struct
  function clen (line 30) | func clen(n []byte) int {
  function uint32SliceToIntSlice (line 39) | func uint32SliceToIntSlice(s []uint32) []int {
  function packPCharString (line 48) | func packPCharString(p *C.char) (raw string) {
  function unpackPCharString (line 61) | func unpackPCharString(str string) (*C.char, *struct{}) {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go
  constant NO_UNVERSIONED_FUNC_DEFS (line 32) | NO_UNVERSIONED_FUNC_DEFS = 1
  constant API_VERSION (line 34) | API_VERSION = 11
  constant API_VERSION_STR (line 36) | API_VERSION_STR = "11"
  constant VALUE_NOT_AVAILABLE (line 38) | VALUE_NOT_AVAILABLE = -1
  constant DEVICE_PCI_BUS_ID_BUFFER_SIZE (line 40) | DEVICE_PCI_BUS_ID_BUFFER_SIZE = 32
  constant DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE (line 42) | DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE = 16
  constant DEVICE_PCI_BUS_ID_LEGACY_FMT (line 44) | DEVICE_PCI_BUS_ID_LEGACY_FMT = "%04X:%02X:%02X.0"
  constant DEVICE_PCI_BUS_ID_FMT (line 46) | DEVICE_PCI_BUS_ID_FMT = "%08X:%02X:%02X.0"
  constant NVLINK_MAX_LINKS (line 48) | NVLINK_MAX_LINKS = 18
  constant TOPOLOGY_CPU (line 50) | TOPOLOGY_CPU = 0
  constant MAX_PHYSICAL_BRIDGE (line 52) | MAX_PHYSICAL_BRIDGE = 128
  constant MAX_THERMAL_SENSORS_PER_GPU (line 54) | MAX_THERMAL_SENSORS_PER_GPU = 3
  constant FlagDefault (line 56) | FlagDefault = 0
  constant FlagForce (line 58) | FlagForce = 1
  constant SINGLE_BIT_ECC (line 60) | SINGLE_BIT_ECC = 0
  constant DOUBLE_BIT_ECC (line 62) | DOUBLE_BIT_ECC = 0
  constant MAX_GPU_PERF_PSTATES (line 64) | MAX_GPU_PERF_PSTATES = 16
  constant GRID_LICENSE_EXPIRY_NOT_AVAILABLE (line 66) | GRID_LICENSE_EXPIRY_NOT_AVAILABLE = 0
  constant GRID_LICENSE_EXPIRY_INVALID (line 68) | GRID_LICENSE_EXPIRY_INVALID = 1
  constant GRID_LICENSE_EXPIRY_VALID (line 70) | GRID_LICENSE_EXPIRY_VALID = 2
  constant GRID_LICENSE_EXPIRY_NOT_APPLICABLE (line 72) | GRID_LICENSE_EXPIRY_NOT_APPLICABLE = 3
  constant GRID_LICENSE_EXPIRY_PERMANENT (line 74) | GRID_LICENSE_EXPIRY_PERMANENT = 4
  constant GRID_LICENSE_BUFFER_SIZE (line 76) | GRID_LICENSE_BUFFER_SIZE = 128
  constant VGPU_NAME_BUFFER_SIZE (line 78) | VGPU_NAME_BUFFER_SIZE = 64
  constant GRID_LICENSE_FEATURE_MAX_COUNT (line 80) | GRID_LICENSE_FEATURE_MAX_COUNT = 3
  constant VGPU_SCHEDULER_POLICY_UNKNOWN (line 82) | VGPU_SCHEDULER_POLICY_UNKNOWN = 0
  constant VGPU_SCHEDULER_POLICY_BEST_EFFORT (line 84) | VGPU_SCHEDULER_POLICY_BEST_EFFORT = 1
  constant VGPU_SCHEDULER_POLICY_EQUAL_SHARE (line 86) | VGPU_SCHEDULER_POLICY_EQUAL_SHARE = 2
  constant VGPU_SCHEDULER_POLICY_FIXED_SHARE (line 88) | VGPU_SCHEDULER_POLICY_FIXED_SHARE = 3
  constant SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT (line 90) | SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT = 3
  constant SCHEDULER_SW_MAX_LOG_ENTRIES (line 92) | SCHEDULER_SW_MAX_LOG_ENTRIES = 200
  constant GRID_LICENSE_STATE_UNKNOWN (line 94) | GRID_LICENSE_STATE_UNKNOWN = 0
  constant GRID_LICENSE_STATE_UNINITIALIZED (line 96) | GRID_LICENSE_STATE_UNINITIALIZED = 1
  constant GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED (line 98) | GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED = 2
  constant GRID_LICENSE_STATE_UNLICENSED_RESTRICTED (line 100) | GRID_LICENSE_STATE_UNLICENSED_RESTRICTED = 3
  constant GRID_LICENSE_STATE_UNLICENSED (line 102) | GRID_LICENSE_STATE_UNLICENSED = 4
  constant GRID_LICENSE_STATE_LICENSED (line 104) | GRID_LICENSE_STATE_LICENSED = 5
  constant GSP_FIRMWARE_VERSION_BUF_SIZE (line 106) | GSP_FIRMWARE_VERSION_BUF_SIZE = 64
  constant DEVICE_ARCH_KEPLER (line 108) | DEVICE_ARCH_KEPLER = 2
  constant DEVICE_ARCH_MAXWELL (line 110) | DEVICE_ARCH_MAXWELL = 3
  constant DEVICE_ARCH_PASCAL (line 112) | DEVICE_ARCH_PASCAL = 4
  constant DEVICE_ARCH_VOLTA (line 114) | DEVICE_ARCH_VOLTA = 5
  constant DEVICE_ARCH_TURING (line 116) | DEVICE_ARCH_TURING = 6
  constant DEVICE_ARCH_AMPERE (line 118) | DEVICE_ARCH_AMPERE = 7
  constant DEVICE_ARCH_ADA (line 120) | DEVICE_ARCH_ADA = 8
  constant DEVICE_ARCH_HOPPER (line 122) | DEVICE_ARCH_HOPPER = 9
  constant DEVICE_ARCH_UNKNOWN (line 124) | DEVICE_ARCH_UNKNOWN = 4294967295
  constant BUS_TYPE_UNKNOWN (line 126) | BUS_TYPE_UNKNOWN = 0
  constant BUS_TYPE_PCI (line 128) | BUS_TYPE_PCI = 1
  constant BUS_TYPE_PCIE (line 130) | BUS_TYPE_PCIE = 2
  constant BUS_TYPE_FPCI (line 132) | BUS_TYPE_FPCI = 3
  constant BUS_TYPE_AGP (line 134) | BUS_TYPE_AGP = 4
  constant FAN_POLICY_TEMPERATURE_CONTINOUS_SW (line 136) | FAN_POLICY_TEMPERATURE_CONTINOUS_SW = 0
  constant FAN_POLICY_MANUAL (line 138) | FAN_POLICY_MANUAL = 1
  constant POWER_SOURCE_AC (line 140) | POWER_SOURCE_AC = 0
  constant POWER_SOURCE_BATTERY (line 142) | POWER_SOURCE_BATTERY = 1
  constant PCIE_LINK_MAX_SPEED_INVALID (line 144) | PCIE_LINK_MAX_SPEED_INVALID = 0
  constant PCIE_LINK_MAX_SPEED_2500MBPS (line 146) | PCIE_LINK_MAX_SPEED_2500MBPS = 1
  constant PCIE_LINK_MAX_SPEED_5000MBPS (line 148) | PCIE_LINK_MAX_SPEED_5000MBPS = 2
  constant PCIE_LINK_MAX_SPEED_8000MBPS (line 150) | PCIE_LINK_MAX_SPEED_8000MBPS = 3
  constant PCIE_LINK_MAX_SPEED_16000MBPS (line 152) | PCIE_LINK_MAX_SPEED_16000MBPS = 4
  constant PCIE_LINK_MAX_SPEED_32000MBPS (line 154) | PCIE_LINK_MAX_SPEED_32000MBPS = 5
  constant PCIE_LINK_MAX_SPEED_64000MBPS (line 156) | PCIE_LINK_MAX_SPEED_64000MBPS = 6
  constant ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED (line 158) | ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED = 0
  constant ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED (line 160) | ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED = 1
  constant MAX_GPU_UTILIZATIONS (line 162) | MAX_GPU_UTILIZATIONS = 8
  constant FI_DEV_ECC_CURRENT (line 164) | FI_DEV_ECC_CURRENT = 1
  constant FI_DEV_ECC_PENDING (line 166) | FI_DEV_ECC_PENDING = 2
  constant FI_DEV_ECC_SBE_VOL_TOTAL (line 168) | FI_DEV_ECC_SBE_VOL_TOTAL = 3
  constant FI_DEV_ECC_DBE_VOL_TOTAL (line 170) | FI_DEV_ECC_DBE_VOL_TOTAL = 4
  constant FI_DEV_ECC_SBE_AGG_TOTAL (line 172) | FI_DEV_ECC_SBE_AGG_TOTAL = 5
  constant FI_DEV_ECC_DBE_AGG_TOTAL (line 174) | FI_DEV_ECC_DBE_AGG_TOTAL = 6
  constant FI_DEV_ECC_SBE_VOL_L1 (line 176) | FI_DEV_ECC_SBE_VOL_L1 = 7
  constant FI_DEV_ECC_DBE_VOL_L1 (line 178) | FI_DEV_ECC_DBE_VOL_L1 = 8
  constant FI_DEV_ECC_SBE_VOL_L2 (line 180) | FI_DEV_ECC_SBE_VOL_L2 = 9
  constant FI_DEV_ECC_DBE_VOL_L2 (line 182) | FI_DEV_ECC_DBE_VOL_L2 = 10
  constant FI_DEV_ECC_SBE_VOL_DEV (line 184) | FI_DEV_ECC_SBE_VOL_DEV = 11
  constant FI_DEV_ECC_DBE_VOL_DEV (line 186) | FI_DEV_ECC_DBE_VOL_DEV = 12
  constant FI_DEV_ECC_SBE_VOL_REG (line 188) | FI_DEV_ECC_SBE_VOL_REG = 13
  constant FI_DEV_ECC_DBE_VOL_REG (line 190) | FI_DEV_ECC_DBE_VOL_REG = 14
  constant FI_DEV_ECC_SBE_VOL_TEX (line 192) | FI_DEV_ECC_SBE_VOL_TEX = 15
  constant FI_DEV_ECC_DBE_VOL_TEX (line 194) | FI_DEV_ECC_DBE_VOL_TEX = 16
  constant FI_DEV_ECC_DBE_VOL_CBU (line 196) | FI_DEV_ECC_DBE_VOL_CBU = 17
  constant FI_DEV_ECC_SBE_AGG_L1 (line 198) | FI_DEV_ECC_SBE_AGG_L1 = 18
  constant FI_DEV_ECC_DBE_AGG_L1 (line 200) | FI_DEV_ECC_DBE_AGG_L1 = 19
  constant FI_DEV_ECC_SBE_AGG_L2 (line 202) | FI_DEV_ECC_SBE_AGG_L2 = 20
  constant FI_DEV_ECC_DBE_AGG_L2 (line 204) | FI_DEV_ECC_DBE_AGG_L2 = 21
  constant FI_DEV_ECC_SBE_AGG_DEV (line 206) | FI_DEV_ECC_SBE_AGG_DEV = 22
  constant FI_DEV_ECC_DBE_AGG_DEV (line 208) | FI_DEV_ECC_DBE_AGG_DEV = 23
  constant FI_DEV_ECC_SBE_AGG_REG (line 210) | FI_DEV_ECC_SBE_AGG_REG = 24
  constant FI_DEV_ECC_DBE_AGG_REG (line 212) | FI_DEV_ECC_DBE_AGG_REG = 25
  constant FI_DEV_ECC_SBE_AGG_TEX (line 214) | FI_DEV_ECC_SBE_AGG_TEX = 26
  constant FI_DEV_ECC_DBE_AGG_TEX (line 216) | FI_DEV_ECC_DBE_AGG_TEX = 27
  constant FI_DEV_ECC_DBE_AGG_CBU (line 218) | FI_DEV_ECC_DBE_AGG_CBU = 28
  constant FI_DEV_RETIRED_SBE (line 220) | FI_DEV_RETIRED_SBE = 29
  constant FI_DEV_RETIRED_DBE (line 222) | FI_DEV_RETIRED_DBE = 30
  constant FI_DEV_RETIRED_PENDING (line 224) | FI_DEV_RETIRED_PENDING = 31
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0 (line 226) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0 = 32
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1 (line 228) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1 = 33
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2 (line 230) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2 = 34
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3 (line 232) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3 = 35
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4 (line 234) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4 = 36
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5 (line 236) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5 = 37
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL (line 238) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL = 38
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0 (line 240) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0 = 39
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1 (line 242) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1 = 40
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2 (line 244) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2 = 41
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3 (line 246) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3 = 42
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4 (line 248) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4 = 43
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5 (line 250) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5 = 44
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL (line 252) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL = 45
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0 (line 254) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0 = 46
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1 (line 256) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1 = 47
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2 (line 258) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2 = 48
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3 (line 260) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3 = 49
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4 (line 262) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4 = 50
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5 (line 264) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5 = 51
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL (line 266) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL = 52
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0 (line 268) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0 = 53
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1 (line 270) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1 = 54
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2 (line 272) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2 = 55
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3 (line 274) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3 = 56
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4 (line 276) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4 = 57
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5 (line 278) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5 = 58
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL (line 280) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL = 59
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L0 (line 282) | FI_DEV_NVLINK_BANDWIDTH_C0_L0 = 60
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L1 (line 284) | FI_DEV_NVLINK_BANDWIDTH_C0_L1 = 61
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L2 (line 286) | FI_DEV_NVLINK_BANDWIDTH_C0_L2 = 62
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L3 (line 288) | FI_DEV_NVLINK_BANDWIDTH_C0_L3 = 63
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L4 (line 290) | FI_DEV_NVLINK_BANDWIDTH_C0_L4 = 64
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L5 (line 292) | FI_DEV_NVLINK_BANDWIDTH_C0_L5 = 65
  constant FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL (line 294) | FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL = 66
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L0 (line 296) | FI_DEV_NVLINK_BANDWIDTH_C1_L0 = 67
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L1 (line 298) | FI_DEV_NVLINK_BANDWIDTH_C1_L1 = 68
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L2 (line 300) | FI_DEV_NVLINK_BANDWIDTH_C1_L2 = 69
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L3 (line 302) | FI_DEV_NVLINK_BANDWIDTH_C1_L3 = 70
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L4 (line 304) | FI_DEV_NVLINK_BANDWIDTH_C1_L4 = 71
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L5 (line 306) | FI_DEV_NVLINK_BANDWIDTH_C1_L5 = 72
  constant FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL (line 308) | FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL = 73
  constant FI_DEV_PERF_POLICY_POWER (line 310) | FI_DEV_PERF_POLICY_POWER = 74
  constant FI_DEV_PERF_POLICY_THERMAL (line 312) | FI_DEV_PERF_POLICY_THERMAL = 75
  constant FI_DEV_PERF_POLICY_SYNC_BOOST (line 314) | FI_DEV_PERF_POLICY_SYNC_BOOST = 76
  constant FI_DEV_PERF_POLICY_BOARD_LIMIT (line 316) | FI_DEV_PERF_POLICY_BOARD_LIMIT = 77
  constant FI_DEV_PERF_POLICY_LOW_UTILIZATION (line 318) | FI_DEV_PERF_POLICY_LOW_UTILIZATION = 78
  constant FI_DEV_PERF_POLICY_RELIABILITY (line 320) | FI_DEV_PERF_POLICY_RELIABILITY = 79
  constant FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS (line 322) | FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS = 80
  constant FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS (line 324) | FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS = 81
  constant FI_DEV_MEMORY_TEMP (line 326) | FI_DEV_MEMORY_TEMP = 82
  constant FI_DEV_TOTAL_ENERGY_CONSUMPTION (line 328) | FI_DEV_TOTAL_ENERGY_CONSUMPTION = 83
  constant FI_DEV_NVLINK_SPEED_MBPS_L0 (line 330) | FI_DEV_NVLINK_SPEED_MBPS_L0 = 84
  constant FI_DEV_NVLINK_SPEED_MBPS_L1 (line 332) | FI_DEV_NVLINK_SPEED_MBPS_L1 = 85
  constant FI_DEV_NVLINK_SPEED_MBPS_L2 (line 334) | FI_DEV_NVLINK_SPEED_MBPS_L2 = 86
  constant FI_DEV_NVLINK_SPEED_MBPS_L3 (line 336) | FI_DEV_NVLINK_SPEED_MBPS_L3 = 87
  constant FI_DEV_NVLINK_SPEED_MBPS_L4 (line 338) | FI_DEV_NVLINK_SPEED_MBPS_L4 = 88
  constant FI_DEV_NVLINK_SPEED_MBPS_L5 (line 340) | FI_DEV_NVLINK_SPEED_MBPS_L5 = 89
  constant FI_DEV_NVLINK_SPEED_MBPS_COMMON (line 342) | FI_DEV_NVLINK_SPEED_MBPS_COMMON = 90
  constant FI_DEV_NVLINK_LINK_COUNT (line 344) | FI_DEV_NVLINK_LINK_COUNT = 91
  constant FI_DEV_RETIRED_PENDING_SBE (line 346) | FI_DEV_RETIRED_PENDING_SBE = 92
  constant FI_DEV_RETIRED_PENDING_DBE (line 348) | FI_DEV_RETIRED_PENDING_DBE = 93
  constant FI_DEV_PCIE_REPLAY_COUNTER (line 350) | FI_DEV_PCIE_REPLAY_COUNTER = 94
  constant FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER (line 352) | FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER = 95
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6 (line 354) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6 = 96
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7 (line 356) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7 = 97
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8 (line 358) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8 = 98
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9 (line 360) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9 = 99
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10 (line 362) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10 = 100
  constant FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11 (line 364) | FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11 = 101
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6 (line 366) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6 = 102
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7 (line 368) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7 = 103
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8 (line 370) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8 = 104
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9 (line 372) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9 = 105
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10 (line 374) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10 = 106
  constant FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11 (line 376) | FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11 = 107
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6 (line 378) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6 = 108
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7 (line 380) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7 = 109
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8 (line 382) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8 = 110
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9 (line 384) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9 = 111
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10 (line 386) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10 = 112
  constant FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11 (line 388) | FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11 = 113
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6 (line 390) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6 = 114
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7 (line 392) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7 = 115
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8 (line 394) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8 = 116
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9 (line 396) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9 = 117
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10 (line 398) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10 = 118
  constant FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11 (line 400) | FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11 = 119
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L6 (line 402) | FI_DEV_NVLINK_BANDWIDTH_C0_L6 = 120
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L7 (line 404) | FI_DEV_NVLINK_BANDWIDTH_C0_L7 = 121
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L8 (line 406) | FI_DEV_NVLINK_BANDWIDTH_C0_L8 = 122
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L9 (line 408) | FI_DEV_NVLINK_BANDWIDTH_C0_L9 = 123
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L10 (line 410) | FI_DEV_NVLINK_BANDWIDTH_C0_L10 = 124
  constant FI_DEV_NVLINK_BANDWIDTH_C0_L11 (line 412) | FI_DEV_NVLINK_BANDWIDTH_C0_L11 = 125
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L6 (line 414) | FI_DEV_NVLINK_BANDWIDTH_C1_L6 = 126
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L7 (line 416) | FI_DEV_NVLINK_BANDWIDTH_C1_L7 = 127
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L8 (line 418) | FI_DEV_NVLINK_BANDWIDTH_C1_L8 = 128
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L9 (line 420) | FI_DEV_NVLINK_BANDWIDTH_C1_L9 = 129
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L10 (line 422) | FI_DEV_NVLINK_BANDWIDTH_C1_L10 = 130
  constant FI_DEV_NVLINK_BANDWIDTH_C1_L11 (line 424) | FI_DEV_NVLINK_BANDWIDTH_C1_L11 = 131
  constant FI_DEV_NVLINK_SPEED_MBPS_L6 (line 426) | FI_DEV_NVLINK_SPEED_MBPS_L6 = 132
  constant FI_DEV_NVLINK_SPEED_MBPS_L7 (line 428) | FI_DEV_NVLINK_SPEED_MBPS_L7 = 133
  constant FI_DEV_NVLINK_SPEED_MBPS_L8 (line 430) | FI_DEV_NVLINK_SPEED_MBPS_L8 = 134
  constant FI_DEV_NVLINK_SPEED_MBPS_L9 (line 432) | FI_DEV_NVLINK_SPEED_MBPS_L9 = 135
  constant FI_DEV_NVLINK_SPEED_MBPS_L10 (line 434) | FI_DEV_NVLINK_SPEED_MBPS_L10 = 136
  constant FI_DEV_NVLINK_SPEED_MBPS_L11 (line 436) | FI_DEV_NVLINK_SPEED_MBPS_L11 = 137
  constant FI_DEV_NVLINK_THROUGHPUT_DATA_TX (line 438) | FI_DEV_NVLINK_THROUGHPUT_DATA_TX = 138
  constant FI_DEV_NVLINK_THROUGHPUT_DATA_RX (line 440) | FI_DEV_NVLINK_THROUGHPUT_DATA_RX = 139
  constant FI_DEV_NVLINK_THROUGHPUT_RAW_TX (line 442) | FI_DEV_NVLINK_THROUGHPUT_RAW_TX = 140
  constant FI_DEV_NVLINK_THROUGHPUT_RAW_RX (line 444) | FI_DEV_NVLINK_THROUGHPUT_RAW_RX = 141
  constant FI_DEV_REMAPPED_COR (line 446) | FI_DEV_REMAPPED_COR = 142
  constant FI_DEV_REMAPPED_UNC (line 448) | FI_DEV_REMAPPED_UNC = 143
  constant FI_DEV_REMAPPED_PENDING (line 450) | FI_DEV_REMAPPED_PENDING = 144
  constant FI_DEV_REMAPPED_FAILURE (line 452) | FI_DEV_REMAPPED_FAILURE = 145
  constant FI_DEV_NVLINK_REMOTE_NVLINK_ID (line 454) | FI_DEV_NVLINK_REMOTE_NVLINK_ID = 146
  constant FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT (line 456) | FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT = 147
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0 (line 458) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0 = 148
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1 (line 460) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1 = 149
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2 (line 462) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2 = 150
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3 (line 464) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3 = 151
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4 (line 466) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4 = 152
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5 (line 468) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5 = 153
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6 (line 470) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6 = 154
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7 (line 472) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7 = 155
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8 (line 474) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8 = 156
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9 (line 476) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9 = 157
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10 (line 478) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10 = 158
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11 (line 480) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11 = 159
  constant FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL (line 482) | FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL = 160
  constant FI_DEV_NVLINK_ERROR_DL_REPLAY (line 484) | FI_DEV_NVLINK_ERROR_DL_REPLAY = 161
  constant FI_DEV_NVLINK_ERROR_DL_RECOVERY (line 486) | FI_DEV_NVLINK_ERROR_DL_RECOVERY = 162
  constant FI_DEV_NVLINK_ERROR_DL_CRC (line 488) | FI_DEV_NVLINK_ERROR_DL_CRC = 163
  constant FI_DEV_NVLINK_GET_SPEED (line 490) | FI_DEV_NVLINK_GET_SPEED = 164
  constant FI_DEV_NVLINK_GET_STATE (line 492) | FI_DEV_NVLINK_GET_STATE = 165
  constant FI_DEV_NVLINK_GET_VERSION (line 494) | FI_DEV_NVLINK_GET_VERSION = 166
  constant FI_DEV_NVLINK_GET_POWER_STATE (line 496) | FI_DEV_NVLINK_GET_POWER_STATE = 167
  constant FI_DEV_NVLINK_GET_POWER_THRESHOLD (line 498) | FI_DEV_NVLINK_GET_POWER_THRESHOLD = 168
  constant FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER (line 500) | FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER = 169
  constant FI_MAX (line 502) | FI_MAX = 170
  constant EventTypeSingleBitEccError (line 504) | EventTypeSingleBitEccError = 1
  constant EventTypeDoubleBitEccError (line 506) | EventTypeDoubleBitEccError = 2
  constant EventTypePState (line 508) | EventTypePState = 4
  constant EventTypeXidCriticalError (line 510) | EventTypeXidCriticalError = 8
  constant EventTypeClock (line 512) | EventTypeClock = 16
  constant EventTypePowerSourceChange (line 514) | EventTypePowerSourceChange = 128
  constant EventMigConfigChange (line 516) | EventMigConfigChange = 256
  constant EventTypeNone (line 518) | EventTypeNone = 0
  constant EventTypeAll (line 520) | EventTypeAll = 415
  constant ClocksThrottleReasonGpuIdle (line 522) | ClocksThrottleReasonGpuIdle = 1
  constant ClocksThrottleReasonApplicationsClocksSetting (line 524) | ClocksThrottleReasonApplicationsClocksSetting = 2
  constant ClocksThrottleReasonUserDefinedClocks (line 526) | ClocksThrottleReasonUserDefinedClocks = 2
  constant ClocksThrottleReasonSwPowerCap (line 528) | ClocksThrottleReasonSwPowerCap = 4
  constant ClocksThrottleReasonHwSlowdown (line 530) | ClocksThrottleReasonHwSlowdown = 8
  constant ClocksThrottleReasonSyncBoost (line 532) | ClocksThrottleReasonSyncBoost = 16
  constant ClocksThrottleReasonSwThermalSlowdown (line 534) | ClocksThrottleReasonSwThermalSlowdown = 32
  constant ClocksThrottleReasonHwThermalSlowdown (line 536) | ClocksThrottleReasonHwThermalSlowdown = 64
  constant ClocksThrottleReasonHwPowerBrakeSlowdown (line 538) | ClocksThrottleReasonHwPowerBrakeSlowdown = 128
  constant ClocksThrottleReasonDisplayClockSetting (line 540) | ClocksThrottleReasonDisplayClockSetting = 256
  constant ClocksThrottleReasonNone (line 542) | ClocksThrottleReasonNone = 0
  constant ClocksThrottleReasonAll (line 544) | ClocksThrottleReasonAll = 511
  constant NVFBC_SESSION_FLAG_DIFFMAP_ENABLED (line 546) | NVFBC_SESSION_FLAG_DIFFMAP_ENABLED = 1
  constant NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED (line 548) | NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED = 2
  constant NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT (line 550) | NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT = 4
  constant NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE (line 552) | NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE = 8
  constant NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT (line 554) | NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT = 16
  constant GPU_FABRIC_UUID_LEN (line 556) | GPU_FABRIC_UUID_LEN = 16
  constant GPU_FABRIC_STATE_NOT_SUPPORTED (line 558) | GPU_FABRIC_STATE_NOT_SUPPORTED = 0
  constant GPU_FABRIC_STATE_NOT_STARTED (line 560) | GPU_FABRIC_STATE_NOT_STARTED = 1
  constant GPU_FABRIC_STATE_IN_PROGRESS (line 562) | GPU_FABRIC_STATE_IN_PROGRESS = 2
  constant GPU_FABRIC_STATE_COMPLETED (line 564) | GPU_FABRIC_STATE_COMPLETED = 3
  constant INIT_FLAG_NO_GPUS (line 566) | INIT_FLAG_NO_GPUS = 1
  constant INIT_FLAG_NO_ATTACH (line 568) | INIT_FLAG_NO_ATTACH = 2
  constant DEVICE_INFOROM_VERSION_BUFFER_SIZE (line 570) | DEVICE_INFOROM_VERSION_BUFFER_SIZE = 16
  constant DEVICE_UUID_BUFFER_SIZE (line 572) | DEVICE_UUID_BUFFER_SIZE = 80
  constant DEVICE_UUID_V2_BUFFER_SIZE (line 574) | DEVICE_UUID_V2_BUFFER_SIZE = 96
  constant DEVICE_PART_NUMBER_BUFFER_SIZE (line 576) | DEVICE_PART_NUMBER_BUFFER_SIZE = 80
  constant SYSTEM_DRIVER_VERSION_BUFFER_SIZE (line 578) | SYSTEM_DRIVER_VERSION_BUFFER_SIZE = 80
  constant SYSTEM_NVML_VERSION_BUFFER_SIZE (line 580) | SYSTEM_NVML_VERSION_BUFFER_SIZE = 80
  constant DEVICE_NAME_BUFFER_SIZE (line 582) | DEVICE_NAME_BUFFER_SIZE = 64
  constant DEVICE_NAME_V2_BUFFER_SIZE (line 584) | DEVICE_NAME_V2_BUFFER_SIZE = 96
  constant DEVICE_SERIAL_BUFFER_SIZE (line 586) | DEVICE_SERIAL_BUFFER_SIZE = 30
  constant DEVICE_VBIOS_VERSION_BUFFER_SIZE (line 588) | DEVICE_VBIOS_VERSION_BUFFER_SIZE = 32
  constant AFFINITY_SCOPE_NODE (line 590) | AFFINITY_SCOPE_NODE = 0
  constant AFFINITY_SCOPE_SOCKET (line 592) | AFFINITY_SCOPE_SOCKET = 1
  constant DEVICE_MIG_DISABLE (line 594) | DEVICE_MIG_DISABLE = 0
  constant DEVICE_MIG_ENABLE (line 596) | DEVICE_MIG_ENABLE = 1
  constant GPU_INSTANCE_PROFILE_1_SLICE (line 598) | GPU_INSTANCE_PROFILE_1_SLICE = 0
  constant GPU_INSTANCE_PROFILE_2_SLICE (line 600) | GPU_INSTANCE_PROFILE_2_SLICE = 1
  constant GPU_INSTANCE_PROFILE_3_SLICE (line 602) | GPU_INSTANCE_PROFILE_3_SLICE = 2
  constant GPU_INSTANCE_PROFILE_4_SLICE (line 604) | GPU_INSTANCE_PROFILE_4_SLICE = 3
  constant GPU_INSTANCE_PROFILE_7_SLICE (line 606) | GPU_INSTANCE_PROFILE_7_SLICE = 4
  constant GPU_INSTANCE_PROFILE_8_SLICE (line 608) | GPU_INSTANCE_PROFILE_8_SLICE = 5
  constant GPU_INSTANCE_PROFILE_6_SLICE (line 610) | GPU_INSTANCE_PROFILE_6_SLICE = 6
  constant GPU_INSTANCE_PROFILE_1_SLICE_REV1 (line 612) | GPU_INSTANCE_PROFILE_1_SLICE_REV1 = 7
  constant GPU_INSTANCE_PROFILE_2_SLICE_REV1 (line 614) | GPU_INSTANCE_PROFILE_2_SLICE_REV1 = 8
  constant GPU_INSTANCE_PROFILE_1_SLICE_REV2 (line 616) | GPU_INSTANCE_PROFILE_1_SLICE_REV2 = 9
  constant GPU_INSTANCE_PROFILE_COUNT (line 618) | GPU_INSTANCE_PROFILE_COUNT = 10
  constant COMPUTE_INSTANCE_PROFILE_1_SLICE (line 620) | COMPUTE_INSTANCE_PROFILE_1_SLICE = 0
  constant COMPUTE_INSTANCE_PROFILE_2_SLICE (line 622) | COMPUTE_INSTANCE_PROFILE_2_SLICE = 1
  constant COMPUTE_INSTANCE_PROFILE_3_SLICE (line 624) | COMPUTE_INSTANCE_PROFILE_3_SLICE = 2
  constant COMPUTE_INSTANCE_PROFILE_4_SLICE (line 626) | COMPUTE_INSTANCE_PROFILE_4_SLICE = 3
  constant COMPUTE_INSTANCE_PROFILE_7_SLICE (line 628) | COMPUTE_INSTANCE_PROFILE_7_SLICE = 4
  constant COMPUTE_INSTANCE_PROFILE_8_SLICE (line 630) | COMPUTE_INSTANCE_PROFILE_8_SLICE = 5
  constant COMPUTE_INSTANCE_PROFILE_6_SLICE (line 632) | COMPUTE_INSTANCE_PROFILE_6_SLICE = 6
  constant COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1 (line 634) | COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1 = 7
  constant COMPUTE_INSTANCE_PROFILE_COUNT (line 636) | COMPUTE_INSTANCE_PROFILE_COUNT = 8
  constant COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED (line 638) | COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED = 0
  constant COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT (line 640) | COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT = 1
  constant GPM_METRICS_GET_VERSION (line 642) | GPM_METRICS_GET_VERSION = 1
  constant GPM_SUPPORT_VERSION (line 644) | GPM_SUPPORT_VERSION = 1
  constant COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE (line 646) | COUNTER_COLLECTION_UNIT_STREAM_STATE_DISABLE = 0
  constant COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE (line 648) | COUNTER_COLLECTION_UNIT_STREAM_STATE_ENABLE = 1
  constant NVLINK_POWER_STATE_HIGH_SPEED (line 650) | NVLINK_POWER_STATE_HIGH_SPEED = 0
  constant NVLINK_POWER_STATE_LOW (line 652) | NVLINK_POWER_STATE_LOW = 1
  constant NVLINK_LOW_POWER_THRESHOLD_MIN (line 654) | NVLINK_LOW_POWER_THRESHOLD_MIN = 1
  constant NVLINK_LOW_POWER_THRESHOLD_MAX (line 656) | NVLINK_LOW_POWER_THRESHOLD_MAX = 8191
  constant NVLINK_LOW_POWER_THRESHOLD_RESET (line 658) | NVLINK_LOW_POWER_THRESHOLD_RESET = 4294967295
  type BridgeChipType (line 662) | type BridgeChipType
  constant BRIDGE_CHIP_PLX (line 666) | BRIDGE_CHIP_PLX  BridgeChipType = iota
  constant BRIDGE_CHIP_BRO4 (line 667) | BRIDGE_CHIP_BRO4 BridgeChipType = 1
  type NvLinkUtilizationCountUnits (line 671) | type NvLinkUtilizationCountUnits
  constant NVLINK_COUNTER_UNIT_CYCLES (line 675) | NVLINK_COUNTER_UNIT_CYCLES   NvLinkUtilizationCountUnits = iota
  constant NVLINK_COUNTER_UNIT_PACKETS (line 676) | NVLINK_COUNTER_UNIT_PACKETS  NvLinkUtilizationCountUnits = 1
  constant NVLINK_COUNTER_UNIT_BYTES (line 677) | NVLINK_COUNTER_UNIT_BYTES    NvLinkUtilizationCountUnits = 2
  constant NVLINK_COUNTER_UNIT_RESERVED (line 678) | NVLINK_COUNTER_UNIT_RESERVED NvLinkUtilizationCountUnits = 3
  constant NVLINK_COUNTER_UNIT_COUNT (line 679) | NVLINK_COUNTER_UNIT_COUNT    NvLinkUtilizationCountUnits = 4
  type NvLinkUtilizationCountPktTypes (line 683) | type NvLinkUtilizationCountPktTypes
  constant NVLINK_COUNTER_PKTFILTER_NOP (line 687) | NVLINK_COUNTER_PKTFILTER_NOP        NvLinkUtilizationCountPktTypes = 1
  constant NVLINK_COUNTER_PKTFILTER_READ (line 688) | NVLINK_COUNTER_PKTFILTER_READ       NvLinkUtilizationCountPktTypes = 2
  constant NVLINK_COUNTER_PKTFILTER_WRITE (line 689) | NVLINK_COUNTER_PKTFILTER_WRITE      NvLinkUtilizationCountPktTypes = 4
  constant NVLINK_COUNTER_PKTFILTER_RATOM (line 690) | NVLINK_COUNTER_PKTFILTER_RATOM      NvLinkUtilizationCountPktTypes = 8
  constant NVLINK_COUNTER_PKTFILTER_NRATOM (line 691) | NVLINK_COUNTER_PKTFILTER_NRATOM     NvLinkUtilizationCountPktTypes = 16
  constant NVLINK_COUNTER_PKTFILTER_FLUSH (line 692) | NVLINK_COUNTER_PKTFILTER_FLUSH      NvLinkUtilizationCountPktTypes = 32
  constant NVLINK_COUNTER_PKTFILTER_RESPDATA (line 693) | NVLINK_COUNTER_PKTFILTER_RESPDATA   NvLinkUtilizationCountPktTypes = 64
  constant NVLINK_COUNTER_PKTFILTER_RESPNODATA (line 694) | NVLINK_COUNTER_PKTFILTER_RESPNODATA NvLinkUtilizationCountPktTypes = 128
  constant NVLINK_COUNTER_PKTFILTER_ALL (line 695) | NVLINK_COUNTER_PKTFILTER_ALL        NvLinkUtilizationCountPktTypes = 255
  type NvLinkCapability (line 699) | type NvLinkCapability
  constant NVLINK_CAP_P2P_SUPPORTED (line 703) | NVLINK_CAP_P2P_SUPPORTED  NvLinkCapability = iota
  constant NVLINK_CAP_SYSMEM_ACCESS (line 704) | NVLINK_CAP_SYSMEM_ACCESS  NvLinkCapability = 1
  constant NVLINK_CAP_P2P_ATOMICS (line 705) | NVLINK_CAP_P2P_ATOMICS    NvLinkCapability = 2
  constant NVLINK_CAP_SYSMEM_ATOMICS (line 706) | NVLINK_CAP_SYSMEM_ATOMICS NvLinkCapability = 3
  constant NVLINK_CAP_SLI_BRIDGE (line 707) | NVLINK_CAP_SLI_BRIDGE     NvLinkCapability = 4
  constant NVLINK_CAP_VALID (line 708) | NVLINK_CAP_VALID          NvLinkCapability = 5
  constant NVLINK_CAP_COUNT (line 709) | NVLINK_CAP_COUNT          NvLinkCapability = 6
  type NvLinkErrorCounter (line 713) | type NvLinkErrorCounter
  constant NVLINK_ERROR_DL_REPLAY (line 717) | NVLINK_ERROR_DL_REPLAY   NvLinkErrorCounter = iota
  constant NVLINK_ERROR_DL_RECOVERY (line 718) | NVLINK_ERROR_DL_RECOVERY NvLinkErrorCounter = 1
  constant NVLINK_ERROR_DL_CRC_FLIT (line 719) | NVLINK_ERROR_DL_CRC_FLIT NvLinkErrorCounter = 2
  constant NVLINK_ERROR_DL_CRC_DATA (line 720) | NVLINK_ERROR_DL_CRC_DATA NvLinkErrorCounter = 3
  constant NVLINK_ERROR_DL_ECC_DATA (line 721) | NVLINK_ERROR_DL_ECC_DATA NvLinkErrorCounter = 4
  constant NVLINK_ERROR_COUNT (line 722) | NVLINK_ERROR_COUNT       NvLinkErrorCounter = 5
  type IntNvLinkDeviceType (line 726) | type IntNvLinkDeviceType
  constant NVLINK_DEVICE_TYPE_GPU (line 730) | NVLINK_DEVICE_TYPE_GPU     IntNvLinkDeviceType = iota
  constant NVLINK_DEVICE_TYPE_IBMNPU (line 731) | NVLINK_DEVICE_TYPE_IBMNPU  IntNvLinkDeviceType = 1
  constant NVLINK_DEVICE_TYPE_SWITCH (line 732) | NVLINK_DEVICE_TYPE_SWITCH  IntNvLinkDeviceType = 2
  constant NVLINK_DEVICE_TYPE_UNKNOWN (line 733) | NVLINK_DEVICE_TYPE_UNKNOWN IntNvLinkDeviceType = 255
  type GpuTopologyLevel (line 737) | type GpuTopologyLevel
  constant TOPOLOGY_INTERNAL (line 741) | TOPOLOGY_INTERNAL   GpuTopologyLevel = iota
  constant TOPOLOGY_SINGLE (line 742) | TOPOLOGY_SINGLE     GpuTopologyLevel = 10
  constant TOPOLOGY_MULTIPLE (line 743) | TOPOLOGY_MULTIPLE   GpuTopologyLevel = 20
  constant TOPOLOGY_HOSTBRIDGE (line 744) | TOPOLOGY_HOSTBRIDGE GpuTopologyLevel = 30
  constant TOPOLOGY_NODE (line 745) | TOPOLOGY_NODE       GpuTopologyLevel = 40
  constant TOPOLOGY_SYSTEM (line 746) | TOPOLOGY_SYSTEM     GpuTopologyLevel = 50
  type GpuP2PStatus (line 750) | type GpuP2PStatus
  constant P2P_STATUS_OK (line 754) | P2P_STATUS_OK                         GpuP2PStatus = iota
  constant P2P_STATUS_CHIPSET_NOT_SUPPORED (line 755) | P2P_STATUS_CHIPSET_NOT_SUPPORED       GpuP2PStatus = 1
  constant P2P_STATUS_GPU_NOT_SUPPORTED (line 756) | P2P_STATUS_GPU_NOT_SUPPORTED          GpuP2PStatus = 2
  constant P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED (line 757) | P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED GpuP2PStatus = 3
  constant P2P_STATUS_DISABLED_BY_REGKEY (line 758) | P2P_STATUS_DISABLED_BY_REGKEY         GpuP2PStatus = 4
  constant P2P_STATUS_NOT_SUPPORTED (line 759) | P2P_STATUS_NOT_SUPPORTED              GpuP2PStatus = 5
  constant P2P_STATUS_UNKNOWN (line 760) | P2P_STATUS_UNKNOWN                    GpuP2PStatus = 6
  type GpuP2PCapsIndex (line 764) | type GpuP2PCapsIndex
  constant P2P_CAPS_INDEX_READ (line 768) | P2P_CAPS_INDEX_READ    GpuP2PCapsIndex = iota
  constant P2P_CAPS_INDEX_WRITE (line 769) | P2P_CAPS_INDEX_WRITE   GpuP2PCapsIndex = 1
  constant P2P_CAPS_INDEX_NVLINK (line 770) | P2P_CAPS_INDEX_NVLINK  GpuP2PCapsIndex = 2
  constant P2P_CAPS_INDEX_ATOMICS (line 771) | P2P_CAPS_INDEX_ATOMICS GpuP2PCapsIndex = 3
  constant P2P_CAPS_INDEX_PROP (line 772) | P2P_CAPS_INDEX_PROP    GpuP2PCapsIndex = 4
  constant P2P_CAPS_INDEX_UNKNOWN (line 773) | P2P_CAPS_INDEX_UNKNOWN GpuP2PCapsIndex = 5
  type SamplingType (line 777) | type SamplingType
  constant TOTAL_POWER_SAMPLES (line 781) | TOTAL_POWER_SAMPLES        SamplingType = iota
  constant GPU_UTILIZATION_SAMPLES (line 782) | GPU_UTILIZATION_SAMPLES    SamplingType = 1
  constant MEMORY_UTILIZATION_SAMPLES (line 783) | MEMORY_UTILIZATION_SAMPLES SamplingType = 2
  constant ENC_UTILIZATION_SAMPLES (line 784) | ENC_UTILIZATION_SAMPLES    SamplingType = 3
  constant DEC_UTILIZATION_SAMPLES (line 785) | DEC_UTILIZATION_SAMPLES    SamplingType = 4
  constant PROCESSOR_CLK_SAMPLES (line 786) | PROCESSOR_CLK_SAMPLES      SamplingType = 5
  constant MEMORY_CLK_SAMPLES (line 787) | MEMORY_CLK_SAMPLES         SamplingType = 6
  constant SAMPLINGTYPE_COUNT (line 788) | SAMPLINGTYPE_COUNT         SamplingType = 7
  type PcieUtilCounter (line 792) | type PcieUtilCounter
  constant PCIE_UTIL_TX_BYTES (line 796) | PCIE_UTIL_TX_BYTES PcieUtilCounter = iota
  constant PCIE_UTIL_RX_BYTES (line 797) | PCIE_UTIL_RX_BYTES PcieUtilCounter = 1
  constant PCIE_UTIL_COUNT (line 798) | PCIE_UTIL_COUNT    PcieUtilCounter = 2
  type ValueType (line 802) | type ValueType
  constant VALUE_TYPE_DOUBLE (line 806) | VALUE_TYPE_DOUBLE             ValueType = iota
  constant VALUE_TYPE_UNSIGNED_INT (line 807) | VALUE_TYPE_UNSIGNED_INT       ValueType = 1
  constant VALUE_TYPE_UNSIGNED_LONG (line 808) | VALUE_TYPE_UNSIGNED_LONG      ValueType = 2
  constant VALUE_TYPE_UNSIGNED_LONG_LONG (line 809) | VALUE_TYPE_UNSIGNED_LONG_LONG ValueType = 3
  constant VALUE_TYPE_SIGNED_LONG_LONG (line 810) | VALUE_TYPE_SIGNED_LONG_LONG   ValueType = 4
  constant VALUE_TYPE_COUNT (line 811) | VALUE_TYPE_COUNT              ValueType = 5
  type PerfPolicyType (line 815) | type PerfPolicyType
  constant PERF_POLICY_POWER (line 819) | PERF_POLICY_POWER             PerfPolicyType = iota
  constant PERF_POLICY_THERMAL (line 820) | PERF_POLICY_THERMAL           PerfPolicyType = 1
  constant PERF_POLICY_SYNC_BOOST (line 821) | PERF_POLICY_SYNC_BOOST        PerfPolicyType = 2
  constant PERF_POLICY_BOARD_LIMIT (line 822) | PERF_POLICY_BOARD_LIMIT       PerfPolicyType = 3
  constant PERF_POLICY_LOW_UTILIZATION (line 823) | PERF_POLICY_LOW_UTILIZATION   PerfPolicyType = 4
  constant PERF_POLICY_RELIABILITY (line 824) | PERF_POLICY_RELIABILITY       PerfPolicyType = 5
  constant PERF_POLICY_TOTAL_APP_CLOCKS (line 825) | PERF_POLICY_TOTAL_APP_CLOCKS  PerfPolicyType = 10
  constant PERF_POLICY_TOTAL_BASE_CLOCKS (line 826) | PERF_POLICY_TOTAL_BASE_CLOCKS PerfPolicyType = 11
  constant PERF_POLICY_COUNT (line 827) | PERF_POLICY_COUNT             PerfPolicyType = 12
  type EnableState (line 831) | type EnableState
  constant FEATURE_DISABLED (line 835) | FEATURE_DISABLED EnableState = iota
  constant FEATURE_ENABLED (line 836) | FEATURE_ENABLED  EnableState = 1
  type BrandType (line 840) | type BrandType
  constant BRAND_UNKNOWN (line 844) | BRAND_UNKNOWN             BrandType = iota
  constant BRAND_QUADRO (line 845) | BRAND_QUADRO              BrandType = 1
  constant BRAND_TESLA (line 846) | BRAND_TESLA               BrandType = 2
  constant BRAND_NVS (line 847) | BRAND_NVS                 BrandType = 3
  constant BRAND_GRID (line 848) | BRAND_GRID                BrandType = 4
  constant BRAND_GEFORCE (line 849) | BRAND_GEFORCE             BrandType = 5
  constant BRAND_TITAN (line 850) | BRAND_TITAN               BrandType = 6
  constant BRAND_NVIDIA_VAPPS (line 851) | BRAND_NVIDIA_VAPPS        BrandType = 7
  constant BRAND_NVIDIA_VPC (line 852) | BRAND_NVIDIA_VPC          BrandType = 8
  constant BRAND_NVIDIA_VCS (line 853) | BRAND_NVIDIA_VCS          BrandType = 9
  constant BRAND_NVIDIA_VWS (line 854) | BRAND_NVIDIA_VWS          BrandType = 10
  constant BRAND_NVIDIA_CLOUD_GAMING (line 855) | BRAND_NVIDIA_CLOUD_GAMING BrandType = 11
  constant BRAND_NVIDIA_VGAMING (line 856) | BRAND_NVIDIA_VGAMING      BrandType = 11
  constant BRAND_QUADRO_RTX (line 857) | BRAND_QUADRO_RTX          BrandType = 12
  constant BRAND_NVIDIA_RTX (line 858) | BRAND_NVIDIA_RTX          BrandType = 13
  constant BRAND_NVIDIA (line 859) | BRAND_NVIDIA              BrandType = 14
  constant BRAND_GEFORCE_RTX (line 860) | BRAND_GEFORCE_RTX         BrandType = 15
  constant BRAND_TITAN_RTX (line 861) | BRAND_TITAN_RTX           BrandType = 16
  constant BRAND_COUNT (line 862) | BRAND_COUNT               BrandType = 17
  type TemperatureThresholds (line 866) | type TemperatureThresholds
  constant TEMPERATURE_THRESHOLD_SHUTDOWN (line 870) | TEMPERATURE_THRESHOLD_SHUTDOWN      TemperatureThresholds = iota
  constant TEMPERATURE_THRESHOLD_SLOWDOWN (line 871) | TEMPERATURE_THRESHOLD_SLOWDOWN      TemperatureThresholds = 1
  constant TEMPERATURE_THRESHOLD_MEM_MAX (line 872) | TEMPERATURE_THRESHOLD_MEM_MAX       TemperatureThresholds = 2
  constant TEMPERATURE_THRESHOLD_GPU_MAX (line 873) | TEMPERATURE_THRESHOLD_GPU_MAX       TemperatureThresholds = 3
  constant TEMPERATURE_THRESHOLD_ACOUSTIC_MIN (line 874) | TEMPERATURE_THRESHOLD_ACOUSTIC_MIN  TemperatureThresholds = 4
  constant TEMPERATURE_THRESHOLD_ACOUSTIC_CURR (line 875) | TEMPERATURE_THRESHOLD_ACOUSTIC_CURR TemperatureThresholds = 5
  constant TEMPERATURE_THRESHOLD_ACOUSTIC_MAX (line 876) | TEMPERATURE_THRESHOLD_ACOUSTIC_MAX  TemperatureThresholds = 6
  constant TEMPERATURE_THRESHOLD_COUNT (line 877) | TEMPERATURE_THRESHOLD_COUNT         TemperatureThresholds = 7
  type TemperatureSensors (line 881) | type TemperatureSensors
  constant TEMPERATURE_GPU (line 885) | TEMPERATURE_GPU   TemperatureSensors = iota
  constant TEMPERATURE_COUNT (line 886) | TEMPERATURE_COUNT TemperatureSensors = 1
  type ComputeMode (line 890) | type ComputeMode
  constant COMPUTEMODE_DEFAULT (line 894) | COMPUTEMODE_DEFAULT           ComputeMode = iota
  constant COMPUTEMODE_EXCLUSIVE_THREAD (line 895) | COMPUTEMODE_EXCLUSIVE_THREAD  ComputeMode = 1
  constant COMPUTEMODE_PROHIBITED (line 896) | COMPUTEMODE_PROHIBITED        ComputeMode = 2
  constant COMPUTEMODE_EXCLUSIVE_PROCESS (line 897) | COMPUTEMODE_EXCLUSIVE_PROCESS ComputeMode = 3
  constant COMPUTEMODE_COUNT (line 898) | COMPUTEMODE_COUNT             ComputeMode = 4
  type MemoryErrorType (line 902) | type MemoryErrorType
  constant MEMORY_ERROR_TYPE_CORRECTED (line 906) | MEMORY_ERROR_TYPE_CORRECTED   MemoryErrorType = iota
  constant MEMORY_ERROR_TYPE_UNCORRECTED (line 907) | MEMORY_ERROR_TYPE_UNCORRECTED MemoryErrorType = 1
  constant MEMORY_ERROR_TYPE_COUNT (line 908) | MEMORY_ERROR_TYPE_COUNT       MemoryErrorType = 2
  type EccCounterType (line 912) | type EccCounterType
  constant VOLATILE_ECC (line 916) | VOLATILE_ECC           EccCounterType = iota
  constant AGGREGATE_ECC (line 917) | AGGREGATE_ECC          EccCounterType = 1
  constant ECC_COUNTER_TYPE_COUNT (line 918) | ECC_COUNTER_TYPE_COUNT EccCounterType = 2
  type ClockType (line 922) | type ClockType
  constant CLOCK_GRAPHICS (line 926) | CLOCK_GRAPHICS ClockType = iota
  constant CLOCK_SM (line 927) | CLOCK_SM       ClockType = 1
  constant CLOCK_MEM (line 928) | CLOCK_MEM      ClockType = 2
  constant CLOCK_VIDEO (line 929) | CLOCK_VIDEO    ClockType = 3
  constant CLOCK_COUNT (line 930) | CLOCK_COUNT    ClockType = 4
  type ClockId (line 934) | type ClockId
  constant CLOCK_ID_CURRENT (line 938) | CLOCK_ID_CURRENT            ClockId = iota
  constant CLOCK_ID_APP_CLOCK_TARGET (line 939) | CLOCK_ID_APP_CLOCK_TARGET   ClockId = 1
  constant CLOCK_ID_APP_CLOCK_DEFAULT (line 940) | CLOCK_ID_APP_CLOCK_DEFAULT  ClockId = 2
  constant CLOCK_ID_CUSTOMER_BOOST_MAX (line 941) | CLOCK_ID_CUSTOMER_BOOST_MAX ClockId = 3
  constant CLOCK_ID_COUNT (line 942) | CLOCK_ID_COUNT              ClockId = 4
  type DriverModel (line 946) | type DriverModel
  constant DRIVER_WDDM (line 950) | DRIVER_WDDM DriverModel = iota
  constant DRIVER_WDM (line 951) | DRIVER_WDM  DriverModel = 1
  type Pstates (line 955) | type Pstates
  constant PSTATE_0 (line 959) | PSTATE_0       Pstates = iota
  constant PSTATE_1 (line 960) | PSTATE_1       Pstates = 1
  constant PSTATE_2 (line 961) | PSTATE_2       Pstates = 2
  constant PSTATE_3 (line 962) | PSTATE_3       Pstates = 3
  constant PSTATE_4 (line 963) | PSTATE_4       Pstates = 4
  constant PSTATE_5 (line 964) | PSTATE_5       Pstates = 5
  constant PSTATE_6 (line 965) | PSTATE_6       Pstates = 6
  constant PSTATE_7 (line 966) | PSTATE_7       Pstates = 7
  constant PSTATE_8 (line 967) | PSTATE_8       Pstates = 8
  constant PSTATE_9 (line 968) | PSTATE_9       Pstates = 9
  constant PSTATE_10 (line 969) | PSTATE_10      Pstates = 10
  constant PSTATE_11 (line 970) | PSTATE_11      Pstates = 11
  constant PSTATE_12 (line 971) | PSTATE_12      Pstates = 12
  constant PSTATE_13 (line 972) | PSTATE_13      Pstates = 13
  constant PSTATE_14 (line 973) | PSTATE_14      Pstates = 14
  constant PSTATE_15 (line 974) | PSTATE_15      Pstates = 15
  constant PSTATE_UNKNOWN (line 975) | PSTATE_UNKNOWN Pstates = 32
  type GpuOperationMode (line 979) | type GpuOperationMode
  constant GOM_ALL_ON (line 983) | GOM_ALL_ON  GpuOperationMode = iota
  constant GOM_COMPUTE (line 984) | GOM_COMPUTE GpuOperationMode = 1
  constant GOM_LOW_DP (line 985) | GOM_LOW_DP  GpuOperationMode = 2
  type InforomObject (line 989) | type InforomObject
  constant INFOROM_OEM (line 993) | INFOROM_OEM   InforomObject = iota
  constant INFOROM_ECC (line 994) | INFOROM_ECC   InforomObject = 1
  constant INFOROM_POWER (line 995) | INFOROM_POWER InforomObject = 2
  constant INFOROM_COUNT (line 996) | INFOROM_COUNT InforomObject = 3
  type Return (line 1000) | type Return
  constant SUCCESS (line 1004) | SUCCESS                         Return = iota
  constant ERROR_UNINITIALIZED (line 1005) | ERROR_UNINITIALIZED             Return = 1
  constant ERROR_INVALID_ARGUMENT (line 1006) | ERROR_INVALID_ARGUMENT          Return = 2
  constant ERROR_NOT_SUPPORTED (line 1007) | ERROR_NOT_SUPPORTED             Return = 3
  constant ERROR_NO_PERMISSION (line 1008) | ERROR_NO_PERMISSION             Return = 4
  constant ERROR_ALREADY_INITIALIZED (line 1009) | ERROR_ALREADY_INITIALIZED       Return = 5
  constant ERROR_NOT_FOUND (line 1010) | ERROR_NOT_FOUND                 Return = 6
  constant ERROR_INSUFFICIENT_SIZE (line 1011) | ERROR_INSUFFICIENT_SIZE         Return = 7
  constant ERROR_INSUFFICIENT_POWER (line 1012) | ERROR_INSUFFICIENT_POWER        Return = 8
  constant ERROR_DRIVER_NOT_LOADED (line 1013) | ERROR_DRIVER_NOT_LOADED         Return = 9
  constant ERROR_TIMEOUT (line 1014) | ERROR_TIMEOUT                   Return = 10
  constant ERROR_IRQ_ISSUE (line 1015) | ERROR_IRQ_ISSUE                 Return = 11
  constant ERROR_LIBRARY_NOT_FOUND (line 1016) | ERROR_LIBRARY_NOT_FOUND         Return = 12
  constant ERROR_FUNCTION_NOT_FOUND (line 1017) | ERROR_FUNCTION_NOT_FOUND        Return = 13
  constant ERROR_CORRUPTED_INFOROM (line 1018) | ERROR_CORRUPTED_INFOROM         Return = 14
  constant ERROR_GPU_IS_LOST (line 1019) | ERROR_GPU_IS_LOST               Return = 15
  constant ERROR_RESET_REQUIRED (line 1020) | ERROR_RESET_REQUIRED            Return = 16
  constant ERROR_OPERATING_SYSTEM (line 1021) | ERROR_OPERATING_SYSTEM          Return = 17
  constant ERROR_LIB_RM_VERSION_MISMATCH (line 1022) | ERROR_LIB_RM_VERSION_MISMATCH   Return = 18
  constant ERROR_IN_USE (line 1023) | ERROR_IN_USE                    Return = 19
  constant ERROR_MEMORY (line 1024) | ERROR_MEMORY                    Return = 20
  constant ERROR_NO_DATA (line 1025) | ERROR_NO_DATA                   Return = 21
  constant ERROR_VGPU_ECC_NOT_SUPPORTED (line 1026) | ERROR_VGPU_ECC_NOT_SUPPORTED    Return = 22
  constant ERROR_INSUFFICIENT_RESOURCES (line 1027) | ERROR_INSUFFICIENT_RESOURCES    Return = 23
  constant ERROR_FREQ_NOT_SUPPORTED (line 1028) | ERROR_FREQ_NOT_SUPPORTED        Return = 24
  constant ERROR_ARGUMENT_VERSION_MISMATCH (line 1029) | ERROR_ARGUMENT_VERSION_MISMATCH Return = 25
  constant ERROR_DEPRECATED (line 1030) | ERROR_DEPRECATED                Return = 26
  constant ERROR_UNKNOWN (line 1031) | ERROR_UNKNOWN                   Return = 999
  type MemoryLocation (line 1035) | type MemoryLocation
  constant MEMORY_LOCATION_L1_CACHE (line 1039) | MEMORY_LOCATION_L1_CACHE       MemoryLocation = iota
  constant MEMORY_LOCATION_L2_CACHE (line 1040) | MEMORY_LOCATION_L2_CACHE       MemoryLocation = 1
  constant MEMORY_LOCATION_DRAM (line 1041) | MEMORY_LOCATION_DRAM           MemoryLocation = 2
  constant MEMORY_LOCATION_DEVICE_MEMORY (line 1042) | MEMORY_LOCATION_DEVICE_MEMORY  MemoryLocation = 2
  constant MEMORY_LOCATION_REGISTER_FILE (line 1043) | MEMORY_LOCATION_REGISTER_FILE  MemoryLocation = 3
  constant MEMORY_LOCATION_TEXTURE_MEMORY (line 1044) | MEMORY_LOCATION_TEXTURE_MEMORY MemoryLocation = 4
  constant MEMORY_LOCATION_TEXTURE_SHM (line 1045) | MEMORY_LOCATION_TEXTURE_SHM    MemoryLocation = 5
  constant MEMORY_LOCATION_CBU (line 1046) | MEMORY_LOCATION_CBU            MemoryLocation = 6
  constant MEMORY_LOCATION_SRAM (line 1047) | MEMORY_LOCATION_SRAM           MemoryLocation = 7
  constant MEMORY_LOCATION_COUNT (line 1048) | MEMORY_LOCATION_COUNT          MemoryLocation = 8
  type PageRetirementCause (line 1052) | type PageRetirementCause
  constant PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS (line 1056) | PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS PageRetirementCause...
  constant PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR (line 1057) | PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR           PageRetirementCause...
  constant PAGE_RETIREMENT_CAUSE_COUNT (line 1058) | PAGE_RETIREMENT_CAUSE_COUNT                          PageRetirementCause...
  type RestrictedAPI (line 1062) | type RestrictedAPI
  constant RESTRICTED_API_SET_APPLICATION_CLOCKS (line 1066) | RESTRICTED_API_SET_APPLICATION_CLOCKS  RestrictedAPI = iota
  constant RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS (line 1067) | RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS RestrictedAPI = 1
  constant RESTRICTED_API_COUNT (line 1068) | RESTRICTED_API_COUNT                   RestrictedAPI = 2
  type GpuVirtualizationMode (line 1072) | type GpuVirtualizationMode
  constant GPU_VIRTUALIZATION_MODE_NONE (line 1076) | GPU_VIRTUALIZATION_MODE_NONE        GpuVirtualizationMode = iota
  constant GPU_VIRTUALIZATION_MODE_PASSTHROUGH (line 1077) | GPU_VIRTUALIZATION_MODE_PASSTHROUGH GpuVirtualizationMode = 1
  constant GPU_VIRTUALIZATION_MODE_VGPU (line 1078) | GPU_VIRTUALIZATION_MODE_VGPU        GpuVirtualizationMode = 2
  constant GPU_VIRTUALIZATION_MODE_HOST_VGPU (line 1079) | GPU_VIRTUALIZATION_MODE_HOST_VGPU   GpuVirtualizationMode = 3
  constant GPU_VIRTUALIZATION_MODE_HOST_VSGA (line 1080) | GPU_VIRTUALIZATION_MODE_HOST_VSGA   GpuVirtualizationMode = 4
  type HostVgpuMode (line 1084) | type HostVgpuMode
  constant HOST_VGPU_MODE_NON_SRIOV (line 1088) | HOST_VGPU_MODE_NON_SRIOV HostVgpuMode = iota
  constant HOST_VGPU_MODE_SRIOV (line 1089) | HOST_VGPU_MODE_SRIOV     HostVgpuMode = 1
  type VgpuVmIdType (line 1093) | type VgpuVmIdType
  constant VGPU_VM_ID_DOMAIN_ID (line 1097) | VGPU_VM_ID_DOMAIN_ID VgpuVmIdType = iota
  constant VGPU_VM_ID_UUID (line 1098) | VGPU_VM_ID_UUID      VgpuVmIdType = 1
  type VgpuGuestInfoState (line 1102) | type VgpuGuestInfoState
  constant VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED (line 1106) | VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED VgpuGuestInfoState = iota
  constant VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED (line 1107) | VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED   VgpuGuestInfoState = 1
  type VgpuCapability (line 1111) | type VgpuCapability
  constant VGPU_CAP_NVLINK_P2P (line 1115) | VGPU_CAP_NVLINK_P2P           VgpuCapability = iota
  constant VGPU_CAP_GPUDIRECT (line 1116) | VGPU_CAP_GPUDIRECT            VgpuCapability = 1
  constant VGPU_CAP_MULTI_VGPU_EXCLUSIVE (line 1117) | VGPU_CAP_MULTI_VGPU_EXCLUSIVE VgpuCapability = 2
  constant VGPU_CAP_EXCLUSIVE_TYPE (line 1118) | VGPU_CAP_EXCLUSIVE_TYPE       VgpuCapability = 3
  constant VGPU_CAP_EXCLUSIVE_SIZE (line 1119) | VGPU_CAP_EXCLUSIVE_SIZE       VgpuCapability = 4
  constant VGPU_CAP_COUNT (line 1120) | VGPU_CAP_COUNT                VgpuCapability = 5
  type VgpuDriverCapability (line 1124) | type VgpuDriverCapability
  constant VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU (line 1128) | VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU VgpuDriverCapability = iota
  constant VGPU_DRIVER_CAP_COUNT (line 1129) | VGPU_DRIVER_CAP_COUNT                    VgpuDriverCapability = 1
  type DeviceVgpuCapability (line 1133) | type DeviceVgpuCapability
  constant DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU (line 1137) | DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU            DeviceVgpuCapability = ...
  constant DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES (line 1138) | DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES DeviceVgpuCapability = 1
  constant DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES (line 1139) | DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES    DeviceVgpuCapability = 2
  constant DEVICE_VGPU_CAP_COUNT (line 1140) | DEVICE_VGPU_CAP_COUNT                            DeviceVgpuCapability = 3
  type GpuUtilizationDomainId (line 1144) | type GpuUtilizationDomainId
  constant GPU_UTILIZATION_DOMAIN_GPU (line 1148) | GPU_UTILIZATION_DOMAIN_GPU GpuUtilizationDomainId = iota
  constant GPU_UTILIZATION_DOMAIN_FB (line 1149) | GPU_UTILIZATION_DOMAIN_FB  GpuUtilizationDomainId = 1
  constant GPU_UTILIZATION_DOMAIN_VID (line 1150) | GPU_UTILIZATION_DOMAIN_VID GpuUtilizationDomainId = 2
  constant GPU_UTILIZATION_DOMAIN_BUS (line 1151) | GPU_UTILIZATION_DOMAIN_BUS GpuUtilizationDomainId = 3
  type FanState (line 1155) | type FanState
  constant FAN_NORMAL (line 1159) | FAN_NORMAL FanState = iota
  constant FAN_FAILED (line 1160) | FAN_FAILED FanState = 1
  type LedColor (line 1164) | type LedColor
  constant LED_COLOR_GREEN (line 1168) | LED_COLOR_GREEN LedColor = iota
  constant LED_COLOR_AMBER (line 1169) | LED_COLOR_AMBER LedColor = 1
  type EncoderType (line 1173) | type EncoderType
  constant ENCODER_QUERY_H264 (line 1177) | ENCODER_QUERY_H264 EncoderType = iota
  constant ENCODER_QUERY_HEVC (line 1178) | ENCODER_QUERY_HEVC EncoderType = 1
  type FBCSessionType (line 1182) | type FBCSessionType
  constant FBC_SESSION_TYPE_UNKNOWN (line 1186) | FBC_SESSION_TYPE_UNKNOWN FBCSessionType = iota
  constant FBC_SESSION_TYPE_TOSYS (line 1187) | FBC_SESSION_TYPE_TOSYS   FBCSessionType = 1
  constant FBC_SESSION_TYPE_CUDA (line 1188) | FBC_SESSION_TYPE_CUDA    FBCSessionType = 2
  constant FBC_SESSION_TYPE_VID (line 1189) | FBC_SESSION_TYPE_VID     FBCSessionType = 3
  constant FBC_SESSION_TYPE_HWENC (line 1190) | FBC_SESSION_TYPE_HWENC   FBCSessionType = 4
  type DetachGpuState (line 1194) | type DetachGpuState
  constant DETACH_GPU_KEEP (line 1198) | DETACH_GPU_KEEP   DetachGpuState = iota
  constant DETACH_GPU_REMOVE (line 1199) | DETACH_GPU_REMOVE DetachGpuState = 1
  type PcieLinkState (line 1203) | type PcieLinkState
  constant PCIE_LINK_KEEP (line 1207) | PCIE_LINK_KEEP      PcieLinkState = iota
  constant PCIE_LINK_SHUT_DOWN (line 1208) | PCIE_LINK_SHUT_DOWN PcieLinkState = 1
  type ClockLimitId (line 1212) | type ClockLimitId
  constant CLOCK_LIMIT_ID_RANGE_START (line 1216) | CLOCK_LIMIT_ID_RANGE_START ClockLimitId = -256
  constant CLOCK_LIMIT_ID_TDP (line 1217) | CLOCK_LIMIT_ID_TDP         ClockLimitId = -255
  constant CLOCK_LIMIT_ID_UNLIMITED (line 1218) | CLOCK_LIMIT_ID_UNLIMITED   ClockLimitId = -254
  type VgpuVmCompatibility (line 1222) | type VgpuVmCompatibility
  constant VGPU_VM_COMPATIBILITY_NONE (line 1226) | VGPU_VM_COMPATIBILITY_NONE      VgpuVmCompatibility = iota
  constant VGPU_VM_COMPATIBILITY_COLD (line 1227) | VGPU_VM_COMPATIBILITY_COLD      VgpuVmCompatibility = 1
  constant VGPU_VM_COMPATIBILITY_HIBERNATE (line 1228) | VGPU_VM_COMPATIBILITY_HIBERNATE VgpuVmCompatibility = 2
  constant VGPU_VM_COMPATIBILITY_SLEEP (line 1229) | VGPU_VM_COMPATIBILITY_SLEEP     VgpuVmCompatibility = 4
  constant VGPU_VM_COMPATIBILITY_LIVE (line 1230) | VGPU_VM_COMPATIBILITY_LIVE      VgpuVmCompatibility = 8
  type VgpuPgpuCompatibilityLimitCode (line 1234) | type VgpuPgpuCompatibilityLimitCode
  constant VGPU_COMPATIBILITY_LIMIT_NONE (line 1238) | VGPU_COMPATIBILITY_LIMIT_NONE         VgpuPgpuCompatibilityLimitCode = iota
  constant VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER (line 1239) | VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER  VgpuPgpuCompatibilityLimitCode = 1
  constant VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER (line 1240) | VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER VgpuPgpuCompatibilityLimitCode = 2
  constant VGPU_COMPATIBILITY_LIMIT_GPU (line 1241) | VGPU_COMPATIBILITY_LIMIT_GPU          VgpuPgpuCompatibilityLimitCode = 4
  constant VGPU_COMPATIBILITY_LIMIT_OTHER (line 1242) | VGPU_COMPATIBILITY_LIMIT_OTHER        VgpuPgpuCompatibilityLimitCode = -...
  type ThermalTarget (line 1246) | type ThermalTarget
  constant THERMAL_TARGET_NONE (line 1250) | THERMAL_TARGET_NONE         ThermalTarget = iota
  constant THERMAL_TARGET_GPU (line 1251) | THERMAL_TARGET_GPU          ThermalTarget = 1
  constant THERMAL_TARGET_MEMORY (line 1252) | THERMAL_TARGET_MEMORY       ThermalTarget = 2
  constant THERMAL_TARGET_POWER_SUPPLY (line 1253) | THERMAL_TARGET_POWER_SUPPLY ThermalTarget = 4
  constant THERMAL_TARGET_BOARD (line 1254) | THERMAL_TARGET_BOARD        ThermalTarget = 8
  constant THERMAL_TARGET_VCD_BOARD (line 1255) | THERMAL_TARGET_VCD_BOARD    ThermalTarget = 9
  constant THERMAL_TARGET_VCD_INLET (line 1256) | THERMAL_TARGET_VCD_INLET    ThermalTarget = 10
  constant THERMAL_TARGET_VCD_OUTLET (line 1257) | THERMAL_TARGET_VCD_OUTLET   ThermalTarget = 11
  constant THERMAL_TARGET_ALL (line 1258) | THERMAL_TARGET_ALL          ThermalTarget = 15
  constant THERMAL_TARGET_UNKNOWN (line 1259) | THERMAL_TARGET_UNKNOWN      ThermalTarget = -1
  type ThermalController (line 1263) | type ThermalController
  constant THERMAL_CONTROLLER_NONE (line 1267) | THERMAL_CONTROLLER_NONE            ThermalController = iota
  constant THERMAL_CONTROLLER_GPU_INTERNAL (line 1268) | THERMAL_CONTROLLER_GPU_INTERNAL    ThermalController = 1
  constant THERMAL_CONTROLLER_ADM1032 (line 1269) | THERMAL_CONTROLLER_ADM1032         ThermalController = 2
  constant THERMAL_CONTROLLER_ADT7461 (line 1270) | THERMAL_CONTROLLER_ADT7461         ThermalController = 3
  constant THERMAL_CONTROLLER_MAX6649 (line 1271) | THERMAL_CONTROLLER_MAX6649         ThermalController = 4
  constant THERMAL_CONTROLLER_MAX1617 (line 1272) | THERMAL_CONTROLLER_MAX1617         ThermalController = 5
  constant THERMAL_CONTROLLER_LM99 (line 1273) | THERMAL_CONTROLLER_LM99            ThermalController = 6
  constant THERMAL_CONTROLLER_LM89 (line 1274) | THERMAL_CONTROLLER_LM89            ThermalController = 7
  constant THERMAL_CONTROLLER_LM64 (line 1275) | THERMAL_CONTROLLER_LM64            ThermalController = 8
  constant THERMAL_CONTROLLER_G781 (line 1276) | THERMAL_CONTROLLER_G781            ThermalController = 9
  constant THERMAL_CONTROLLER_ADT7473 (line 1277) | THERMAL_CONTROLLER_ADT7473         ThermalController = 10
  constant THERMAL_CONTROLLER_SBMAX6649 (line 1278) | THERMAL_CONTROLLER_SBMAX6649       ThermalController = 11
  constant THERMAL_CONTROLLER_VBIOSEVT (line 1279) | THERMAL_CONTROLLER_VBIOSEVT        ThermalController = 12
  constant THERMAL_CONTROLLER_OS (line 1280) | THERMAL_CONTROLLER_OS              ThermalController = 13
  constant THERMAL_CONTROLLER_NVSYSCON_CANOAS (line 1281) | THERMAL_CONTROLLER_NVSYSCON_CANOAS ThermalController = 14
  constant THERMAL_CONTROLLER_NVSYSCON_E551 (line 1282) | THERMAL_CONTROLLER_NVSYSCON_E551   ThermalController = 15
  constant THERMAL_CONTROLLER_MAX6649R (line 1283) | THERMAL_CONTROLLER_MAX6649R        ThermalController = 16
  constant THERMAL_CONTROLLER_ADT7473S (line 1284) | THERMAL_CONTROLLER_ADT7473S        ThermalController = 17
  constant THERMAL_CONTROLLER_UNKNOWN (line 1285) | THERMAL_CONTROLLER_UNKNOWN         ThermalController = -1
  type GridLicenseFeatureCode (line 1289) | type GridLicenseFeatureCode
  constant GRID_LICENSE_FEATURE_CODE_UNKNOWN (line 1293) | GRID_LICENSE_FEATURE_CODE_UNKNOWN      GridLicenseFeatureCode = iota
  constant GRID_LICENSE_FEATURE_CODE_VGPU (line 1294) | GRID_LICENSE_FEATURE_CODE_VGPU         GridLicenseFeatureCode = 1
  constant GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX (line 1295) | GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX   GridLicenseFeatureCode = 2
  constant GRID_LICENSE_FEATURE_CODE_VWORKSTATION (line 1296) | GRID_LICENSE_FEATURE_CODE_VWORKSTATION GridLicenseFeatureCode = 2
  constant GRID_LICENSE_FEATURE_CODE_GAMING (line 1297) | GRID_LICENSE_FEATURE_CODE_GAMING       GridLicenseFeatureCode = 3
  constant GRID_LICENSE_FEATURE_CODE_COMPUTE (line 1298) | GRID_LICENSE_FEATURE_CODE_COMPUTE      GridLicenseFeatureCode = 4
  type GpmMetricId (line 1302) | type GpmMetricId
  constant GPM_METRIC_GRAPHICS_UTIL (line 1306) | GPM_METRIC_GRAPHICS_UTIL           GpmMetricId = 1
  constant GPM_METRIC_SM_UTIL (line 1307) | GPM_METRIC_SM_UTIL                 GpmMetricId = 2
  constant GPM_METRIC_SM_OCCUPANCY (line 1308) | GPM_METRIC_SM_OCCUPANCY            GpmMetricId = 3
  constant GPM_METRIC_INTEGER_UTIL (line 1309) | GPM_METRIC_INTEGER_UTIL            GpmMetricId = 4
  constant GPM_METRIC_ANY_TENSOR_UTIL (line 1310) | GPM_METRIC_ANY_TENSOR_UTIL         GpmMetricId = 5
  constant GPM_METRIC_DFMA_TENSOR_UTIL (line 1311) | GPM_METRIC_DFMA_TENSOR_UTIL        GpmMetricId = 6
  constant GPM_METRIC_HMMA_TENSOR_UTIL (line 1312) | GPM_METRIC_HMMA_TENSOR_UTIL        GpmMetricId = 7
  constant GPM_METRIC_IMMA_TENSOR_UTIL (line 1313) | GPM_METRIC_IMMA_TENSOR_UTIL        GpmMetricId = 9
  constant GPM_METRIC_DRAM_BW_UTIL (line 1314) | GPM_METRIC_DRAM_BW_UTIL            GpmMetricId = 10
  constant GPM_METRIC_FP64_UTIL (line 1315) | GPM_METRIC_FP64_UTIL               GpmMetricId = 11
  constant GPM_METRIC_FP32_UTIL (line 1316) | GPM_METRIC_FP32_UTIL               GpmMetricId = 12
  constant GPM_METRIC_FP16_UTIL (line 1317) | GPM_METRIC_FP16_UTIL               GpmMetricId = 13
  constant GPM_METRIC_PCIE_TX_PER_SEC (line 1318) | GPM_METRIC_PCIE_TX_PER_SEC         GpmMetricId = 20
  constant GPM_METRIC_PCIE_RX_PER_SEC (line 1319) | GPM_METRIC_PCIE_RX_PER_SEC         GpmMetricId = 21
  constant GPM_METRIC_NVDEC_0_UTIL (line 1320) | GPM_METRIC_NVDEC_0_UTIL            GpmMetricId = 30
  constant GPM_METRIC_NVDEC_1_UTIL (line 1321) | GPM_METRIC_NVDEC_1_UTIL            GpmMetricId = 31
  constant GPM_METRIC_NVDEC_2_UTIL (line 1322) | GPM_METRIC_NVDEC_2_UTIL            GpmMetricId = 32
  constant GPM_METRIC_NVDEC_3_UTIL (line 1323) | GPM_METRIC_NVDEC_3_UTIL            GpmMetricId = 33
  constant GPM_METRIC_NVDEC_4_UTIL (line 1324) | GPM_METRIC_NVDEC_4_UTIL            GpmMetricId = 34
  constant GPM_METRIC_NVDEC_5_UTIL (line 1325) | GPM_METRIC_NVDEC_5_UTIL            GpmMetricId = 35
  constant GPM_METRIC_NVDEC_6_UTIL (line 1326) | GPM_METRIC_NVDEC_6_UTIL            GpmMetricId = 36
  constant GPM_METRIC_NVDEC_7_UTIL (line 1327) | GPM_METRIC_NVDEC_7_UTIL            GpmMetricId = 37
  constant GPM_METRIC_NVJPG_0_UTIL (line 1328) | GPM_METRIC_NVJPG_0_UTIL            GpmMetricId = 40
  constant GPM_METRIC_NVJPG_1_UTIL (line 1329) | GPM_METRIC_NVJPG_1_UTIL            GpmMetricId = 41
  constant GPM_METRIC_NVJPG_2_UTIL (line 1330) | GPM_METRIC_NVJPG_2_UTIL            GpmMetricId = 42
  constant GPM_METRIC_NVJPG_3_UTIL (line 1331) | GPM_METRIC_NVJPG_3_UTIL            GpmMetricId = 43
  constant GPM_METRIC_NVJPG_4_UTIL (line 1332) | GPM_METRIC_NVJPG_4_UTIL            GpmMetricId = 44
  constant GPM_METRIC_NVJPG_5_UTIL (line 1333) | GPM_METRIC_NVJPG_5_UTIL            GpmMetricId = 45
  constant GPM_METRIC_NVJPG_6_UTIL (line 1334) | GPM_METRIC_NVJPG_6_UTIL            GpmMetricId = 46
  constant GPM_METRIC_NVJPG_7_UTIL (line 1335) | GPM_METRIC_NVJPG_7_UTIL            GpmMetricId = 47
  constant GPM_METRIC_NVOFA_0_UTIL (line 1336) | GPM_METRIC_NVOFA_0_UTIL            GpmMetricId = 50
  constant GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC (line 1337) | GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC GpmMetricId = 60
  constant GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC (line 1338) | GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC GpmMetricId = 61
  constant GPM_METRIC_NVLINK_L0_RX_PER_SEC (line 1339) | GPM_METRIC_NVLINK_L0_RX_PER_SEC    GpmMetricId = 62
  constant GPM_METRIC_NVLINK_L0_TX_PER_SEC (line 1340) | GPM_METRIC_NVLINK_L0_TX_PER_SEC    GpmMetricId = 63
  constant GPM_METRIC_NVLINK_L1_RX_PER_SEC (line 1341) | GPM_METRIC_NVLINK_L1_RX_PER_SEC    GpmMetricId = 64
  constant GPM_METRIC_NVLINK_L1_TX_PER_SEC (line 1342) | GPM_METRIC_NVLINK_L1_TX_PER_SEC    GpmMetricId = 65
  constant GPM_METRIC_NVLINK_L2_RX_PER_SEC (line 1343) | GPM_METRIC_NVLINK_L2_RX_PER_SEC    GpmMetricId = 66
  constant GPM_METRIC_NVLINK_L2_TX_PER_SEC (line 1344) | GPM_METRIC_NVLINK_L2_TX_PER_SEC    GpmMetricId = 67
  constant GPM_METRIC_NVLINK_L3_RX_PER_SEC (line 1345) | GPM_METRIC_NVLINK_L3_RX_PER_SEC    GpmMetricId = 68
  constant GPM_METRIC_NVLINK_L3_TX_PER_SEC (line 1346) | GPM_METRIC_NVLINK_L3_TX_PER_SEC    GpmMetricId = 69
  constant GPM_METRIC_NVLINK_L4_RX_PER_SEC (line 1347) | GPM_METRIC_NVLINK_L4_RX_PER_SEC    GpmMetricId = 70
  constant GPM_METRIC_NVLINK_L4_TX_PER_SEC (line 1348) | GPM_METRIC_NVLINK_L4_TX_PER_SEC    GpmMetricId = 71
  constant GPM_METRIC_NVLINK_L5_RX_PER_SEC (line 1349) | GPM_METRIC_NVLINK_L5_RX_PER_SEC    GpmMetricId = 72
  constant GPM_METRIC_NVLINK_L5_TX_PER_SEC (line 1350) | GPM_METRIC_NVLINK_L5_TX_PER_SEC    GpmMetricId = 73
  constant GPM_METRIC_NVLINK_L6_RX_PER_SEC (line 1351) | GPM_METRIC_NVLINK_L6_RX_PER_SEC    GpmMetricId = 74
  constant GPM_METRIC_NVLINK_L6_TX_PER_SEC (line 1352) | GPM_METRIC_NVLINK_L6_TX_PER_SEC    GpmMetricId = 75
  constant GPM_METRIC_NVLINK_L7_RX_PER_SEC (line 1353) | GPM_METRIC_NVLINK_L7_RX_PER_SEC    GpmMetricId = 76
  constant GPM_METRIC_NVLINK_L7_TX_PER_SEC (line 1354) | GPM_METRIC_NVLINK_L7_TX_PER_SEC    GpmMetricId = 77
  constant GPM_METRIC_NVLINK_L8_RX_PER_SEC (line 1355) | GPM_METRIC_NVLINK_L8_RX_PER_SEC    GpmMetricId = 78
  constant GPM_METRIC_NVLINK_L8_TX_PER_SEC (line 1356) | GPM_METRIC_NVLINK_L8_TX_PER_SEC    GpmMetricId = 79
  constant GPM_METRIC_NVLINK_L9_RX_PER_SEC (line 1357) | GPM_METRIC_NVLINK_L9_RX_PER_SEC    GpmMetricId = 80
  constant GPM_METRIC_NVLINK_L9_TX_PER_SEC (line 1358) | GPM_METRIC_NVLINK_L9_TX_PER_SEC    GpmMetricId = 81
  constant GPM_METRIC_NVLINK_L10_RX_PER_SEC (line 1359) | GPM_METRIC_NVLINK_L10_RX_PER_SEC   GpmMetricId = 82
  constant GPM_METRIC_NVLINK_L10_TX_PER_SEC (line 1360) | GPM_METRIC_NVLINK_L10_TX_PER_SEC   GpmMetricId = 83
  constant GPM_METRIC_NVLINK_L11_RX_PER_SEC (line 1361) | GPM_METRIC_NVLINK_L11_RX_PER_SEC   GpmMetricId = 84
  constant GPM_METRIC_NVLINK_L11_TX_PER_SEC (line 1362) | GPM_METRIC_NVLINK_L11_TX_PER_SEC   GpmMetricId = 85
  constant GPM_METRIC_NVLINK_L12_RX_PER_SEC (line 1363) | GPM_METRIC_NVLINK_L12_RX_PER_SEC   GpmMetricId = 86
  constant GPM_METRIC_NVLINK_L12_TX_PER_SEC (line 1364) | GPM_METRIC_NVLINK_L12_TX_PER_SEC   GpmMetricId = 87
  constant GPM_METRIC_NVLINK_L13_RX_PER_SEC (line 1365) | GPM_METRIC_NVLINK_L13_RX_PER_SEC   GpmMetricId = 88
  constant GPM_METRIC_NVLINK_L13_TX_PER_SEC (line 1366) | GPM_METRIC_NVLINK_L13_TX_PER_SEC   GpmMetricId = 89
  constant GPM_METRIC_NVLINK_L14_RX_PER_SEC (line 1367) | GPM_METRIC_NVLINK_L14_RX_PER_SEC   GpmMetricId = 90
  constant GPM_METRIC_NVLINK_L14_TX_PER_SEC (line 1368) | GPM_METRIC_NVLINK_L14_TX_PER_SEC   GpmMetricId = 91
  constant GPM_METRIC_NVLINK_L15_RX_PER_SEC (line 1369) | GPM_METRIC_NVLINK_L15_RX_PER_SEC   GpmMetricId = 92
  constant GPM_METRIC_NVLINK_L15_TX_PER_SEC (line 1370) | GPM_METRIC_NVLINK_L15_TX_PER_SEC   GpmMetricId = 93
  constant GPM_METRIC_NVLINK_L16_RX_PER_SEC (line 1371) | GPM_METRIC_NVLINK_L16_RX_PER_SEC   GpmMetricId = 94
  constant GPM_METRIC_NVLINK_L16_TX_PER_SEC (line 1372) | GPM_METRIC_NVLINK_L16_TX_PER_SEC   GpmMetricId = 95
  constant GPM_METRIC_NVLINK_L17_RX_PER_SEC (line 1373) | GPM_METRIC_NVLINK_L17_RX_PER_SEC   GpmMetricId = 96
  constant GPM_METRIC_NVLINK_L17_TX_PER_SEC (line 1374) | GPM_METRIC_NVLINK_L17_TX_PER_SEC   GpmMetricId = 97
  constant GPM_METRIC_MAX (line 1375) | GPM_METRIC_MAX                     GpmMetricId = 98

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const_gen.go
  constant SYSTEM_PROCESS_NAME_BUFFER_SIZE (line 22) | SYSTEM_PROCESS_NAME_BUFFER_SIZE = 256
  function STRUCT_VERSION (line 25) | func STRUCT_VERSION(data interface{}, version uint32) uint32 {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go
  function DeviceGetCount (line 25) | func DeviceGetCount() (int, Return) {
  function DeviceGetHandleByIndex (line 32) | func DeviceGetHandleByIndex(Index int) (Device, Return) {
  function DeviceGetHandleBySerial (line 39) | func DeviceGetHandleBySerial(Serial string) (Device, Return) {
  function DeviceGetHandleByUUID (line 46) | func DeviceGetHandleByUUID(Uuid string) (Device, Return) {
  function DeviceGetHandleByPciBusId (line 53) | func DeviceGetHandleByPciBusId(PciBusId string) (Device, Return) {
  function DeviceGetName (line 60) | func DeviceGetName(Device Device) (string, Return) {
  method GetName (line 66) | func (Device Device) GetName() (string, Return) {
  function DeviceGetBrand (line 71) | func DeviceGetBrand(Device Device) (BrandType, Return) {
  method GetBrand (line 77) | func (Device Device) GetBrand() (BrandType, Return) {
  function DeviceGetIndex (line 82) | func DeviceGetIndex(Device Device) (int, Return) {
  method GetIndex (line 88) | func (Device Device) GetIndex() (int, Return) {
  function DeviceGetSerial (line 93) | func DeviceGetSerial(Device Device) (string, Return) {
  method GetSerial (line 99) | func (Device Device) GetSerial() (string, Return) {
  function DeviceGetCpuAffinity (line 104) | func DeviceGetCpuAffinity(Device Device, NumCPUs int) ([]uint, Return) {
  method GetCpuAffinity (line 111) | func (Device Device) GetCpuAffinity(NumCPUs int) ([]uint, Return) {
  function DeviceSetCpuAffinity (line 116) | func DeviceSetCpuAffinity(Device Device) Return {
  method SetCpuAffinity (line 120) | func (Device Device) SetCpuAffinity() Return {
  function DeviceClearCpuAffinity (line 125) | func DeviceClearCpuAffinity(Device Device) Return {
  method ClearCpuAffinity (line 129) | func (Device Device) ClearCpuAffinity() Return {
  function DeviceGetMemoryAffinity (line 134) | func DeviceGetMemoryAffinity(Device Device, NumNodes int, Scope Affinity...
  method GetMemoryAffinity (line 141) | func (Device Device) GetMemoryAffinity(NumNodes int, Scope AffinityScope...
  function DeviceGetCpuAffinityWithinScope (line 146) | func DeviceGetCpuAffinityWithinScope(Device Device, NumCPUs int, Scope A...
  method GetCpuAffinityWithinScope (line 153) | func (Device Device) GetCpuAffinityWithinScope(NumCPUs int, Scope Affini...
  function DeviceGetTopologyCommonAncestor (line 158) | func DeviceGetTopologyCommonAncestor(Device1 Device, Device2 Device) (Gp...
  method GetTopologyCommonAncestor (line 164) | func (Device1 Device) GetTopologyCommonAncestor(Device2 Device) (GpuTopo...
  function DeviceGetTopologyNearestGpus (line 169) | func DeviceGetTopologyNearestGpus(device Device, Level GpuTopologyLevel)...
  method GetTopologyNearestGpus (line 183) | func (Device Device) GetTopologyNearestGpus(Level GpuTopologyLevel) ([]D...
  function DeviceGetP2PStatus (line 188) | func DeviceGetP2PStatus(Device1 Device, Device2 Device, P2pIndex GpuP2PC...
  method GetP2PStatus (line 194) | func (Device1 Device) GetP2PStatus(Device2 Device, P2pIndex GpuP2PCapsIn...
  function DeviceGetUUID (line 199) | func DeviceGetUUID(Device Device) (string, Return) {
  method GetUUID (line 205) | func (Device Device) GetUUID() (string, Return) {
  function DeviceGetMinorNumber (line 210) | func DeviceGetMinorNumber(Device Device) (int, Return) {
  method GetMinorNumber (line 216) | func (Device Device) GetMinorNumber() (int, Return) {
  function DeviceGetBoardPartNumber (line 221) | func DeviceGetBoardPartNumber(Device Device) (string, Return) {
  method GetBoardPartNumber (line 227) | func (Device Device) GetBoardPartNumber() (string, Return) {
  function DeviceGetInforomVersion (line 232) | func DeviceGetInforomVersion(Device Device, Object InforomObject) (strin...
  method GetInforomVersion (line 238) | func (Device Device) GetInforomVersion(Object InforomObject) (string, Re...
  function DeviceGetInforomImageVersion (line 243) | func DeviceGetInforomImageVersion(Device Device) (string, Return) {
  method GetInforomImageVersion (line 249) | func (Device Device) GetInforomImageVersion() (string, Return) {
  function DeviceGetInforomConfigurationChecksum (line 254) | func DeviceGetInforomConfigurationChecksum(Device Device) (uint32, Retur...
  method GetInforomConfigurationChecksum (line 260) | func (Device Device) GetInforomConfigurationChecksum() (uint32, Return) {
  function DeviceValidateInforom (line 265) | func DeviceValidateInforom(Device Device) Return {
  method ValidateInforom (line 269) | func (Device Device) ValidateInforom() Return {
  function DeviceGetDisplayMode (line 274) | func DeviceGetDisplayMode(Device Device) (EnableState, Return) {
  method GetDisplayMode (line 280) | func (Device Device) GetDisplayMode() (EnableState, Return) {
  function DeviceGetDisplayActive (line 285) | func DeviceGetDisplayActive(Device Device) (EnableState, Return) {
  method GetDisplayActive (line 291) | func (Device Device) GetDisplayActive() (EnableState, Return) {
  function DeviceGetPersistenceMode (line 296) | func DeviceGetPersistenceMode(Device Device) (EnableState, Return) {
  method GetPersistenceMode (line 302) | func (Device Device) GetPersistenceMode() (EnableState, Return) {
  function DeviceGetPciInfo (line 307) | func DeviceGetPciInfo(Device Device) (PciInfo, Return) {
  method GetPciInfo (line 313) | func (Device Device) GetPciInfo() (PciInfo, Return) {
  function DeviceGetMaxPcieLinkGeneration (line 318) | func DeviceGetMaxPcieLinkGeneration(Device Device) (int, Return) {
  method GetMaxPcieLinkGeneration (line 324) | func (Device Device) GetMaxPcieLinkGeneration() (int, Return) {
  function DeviceGetMaxPcieLinkWidth (line 329) | func DeviceGetMaxPcieLinkWidth(Device Device) (int, Return) {
  method GetMaxPcieLinkWidth (line 335) | func (Device Device) GetMaxPcieLinkWidth() (int, Return) {
  function DeviceGetCurrPcieLinkGeneration (line 340) | func DeviceGetCurrPcieLinkGeneration(Device Device) (int, Return) {
  method GetCurrPcieLinkGeneration (line 346) | func (Device Device) GetCurrPcieLinkGeneration() (int, Return) {
  function DeviceGetCurrPcieLinkWidth (line 351) | func DeviceGetCurrPcieLinkWidth(Device Device) (int, Return) {
  method GetCurrPcieLinkWidth (line 357) | func (Device Device) GetCurrPcieLinkWidth() (int, Return) {
  function DeviceGetPcieThroughput (line 362) | func DeviceGetPcieThroughput(Device Device, Counter PcieUtilCounter) (ui...
  method GetPcieThroughput (line 368) | func (Device Device) GetPcieThroughput(Counter PcieUtilCounter) (uint32,...
  function DeviceGetPcieReplayCounter (line 373) | func DeviceGetPcieReplayCounter(Device Device) (int, Return) {
  method GetPcieReplayCounter (line 379) | func (Device Device) GetPcieReplayCounter() (int, Return) {
  function DeviceGetClockInfo (line 384) | func DeviceGetClockInfo(Device Device, _type ClockType) (uint32, Return) {
  method GetClockInfo (line 390) | func (Device Device) GetClockInfo(_type ClockType) (uint32, Return) {
  function DeviceGetMaxClockInfo (line 395) | func DeviceGetMaxClockInfo(Device Device, _type ClockType) (uint32, Retu...
  method GetMaxClockInfo (line 401) | func (Device Device) GetMaxClockInfo(_type ClockType) (uint32, Return) {
  function DeviceGetApplicationsClock (line 406) | func DeviceGetApplicationsClock(Device Device, ClockType ClockType) (uin...
  method GetApplicationsClock (line 412) | func (Device Device) GetApplicationsClock(ClockType ClockType) (uint32, ...
  function DeviceGetDefaultApplicationsClock (line 417) | func DeviceGetDefaultApplicationsClock(Device Device, ClockType ClockTyp...
  method GetDefaultApplicationsClock (line 423) | func (Device Device) GetDefaultApplicationsClock(ClockType ClockType) (u...
  function DeviceResetApplicationsClocks (line 428) | func DeviceResetApplicationsClocks(Device Device) Return {
  method ResetApplicationsClocks (line 432) | func (Device Device) ResetApplicationsClocks() Return {
  function DeviceGetClock (line 437) | func DeviceGetClock(Device Device, ClockType ClockType, ClockId ClockId)...
  method GetClock (line 443) | func (Device Device) GetClock(ClockType ClockType, ClockId ClockId) (uin...
  function DeviceGetMaxCustomerBoostClock (line 448) | func DeviceGetMaxCustomerBoostClock(Device Device, ClockType ClockType) ...
  method GetMaxCustomerBoostClock (line 454) | func (Device Device) GetMaxCustomerBoostClock(ClockType ClockType) (uint...
  function DeviceGetSupportedMemoryClocks (line 459) | func DeviceGetSupportedMemoryClocks(Device Device) (int, uint32, Return) {
  method GetSupportedMemoryClocks (line 465) | func (Device Device) GetSupportedMemoryClocks() (int, uint32, Return) {
  function DeviceGetSupportedGraphicsClocks (line 470) | func DeviceGetSupportedGraphicsClocks(Device Device, MemoryClockMHz int)...
  method GetSupportedGraphicsClocks (line 476) | func (Device Device) GetSupportedGraphicsClocks(MemoryClockMHz int) (int...
  function DeviceGetAutoBoostedClocksEnabled (line 481) | func DeviceGetAutoBoostedClocksEnabled(Device Device) (EnableState, Enab...
  method GetAutoBoostedClocksEnabled (line 487) | func (Device Device) GetAutoBoostedClocksEnabled() (EnableState, EnableS...
  function DeviceSetAutoBoostedClocksEnabled (line 492) | func DeviceSetAutoBoostedClocksEnabled(Device Device, Enabled EnableStat...
  method SetAutoBoostedClocksEnabled (line 496) | func (Device Device) SetAutoBoostedClocksEnabled(Enabled EnableState) Re...
  function DeviceSetDefaultAutoBoostedClocksEnabled (line 501) | func DeviceSetDefaultAutoBoostedClocksEnabled(Device Device, Enabled Ena...
  method SetDefaultAutoBoostedClocksEnabled (line 505) | func (Device Device) SetDefaultAutoBoostedClocksEnabled(Enabled EnableSt...
  function DeviceGetFanSpeed (line 510) | func DeviceGetFanSpeed(Device Device) (uint32, Return) {
  method GetFanSpeed (line 516) | func (Device Device) GetFanSpeed() (uint32, Return) {
  function DeviceGetFanSpeed_v2 (line 521) | func DeviceGetFanSpeed_v2(Device Device, Fan int) (uint32, Return) {
  method GetFanSpeed_v2 (line 527) | func (Device Device) GetFanSpeed_v2(Fan int) (uint32, Return) {
  function DeviceGetNumFans (line 532) | func DeviceGetNumFans(Device Device) (int, Return) {
  method GetNumFans (line 538) | func (Device Device) GetNumFans() (int, Return) {
  function DeviceGetTemperature (line 543) | func DeviceGetTemperature(Device Device, SensorType TemperatureSensors) ...
  method GetTemperature (line 549) | func (Device Device) GetTemperature(SensorType TemperatureSensors) (uint...
  function DeviceGetTemperatureThreshold (line 554) | func DeviceGetTemperatureThreshold(Device Device, ThresholdType Temperat...
  method GetTemperatureThreshold (line 560) | func (Device Device) GetTemperatureThreshold(ThresholdType TemperatureTh...
  function DeviceSetTemperatureThreshold (line 565) | func DeviceSetTemperatureThreshold(Device Device, ThresholdType Temperat...
  method SetTemperatureThreshold (line 571) | func (Device Device) SetTemperatureThreshold(ThresholdType TemperatureTh...
  function DeviceGetPerformanceState (line 576) | func DeviceGetPerformanceState(Device Device) (Pstates, Return) {
  method GetPerformanceState (line 582) | func (Device Device) GetPerformanceState() (Pstates, Return) {
  function DeviceGetCurrentClocksThrottleReasons (line 587) | func DeviceGetCurrentClocksThrottleReasons(Device Device) (uint64, Retur...
  method GetCurrentClocksThrottleReasons (line 593) | func (Device Device) GetCurrentClocksThrottleReasons() (uint64, Return) {
  function DeviceGetSupportedClocksThrottleReasons (line 598) | func DeviceGetSupportedClocksThrottleReasons(Device Device) (uint64, Ret...
  method GetSupportedClocksThrottleReasons (line 604) | func (Device Device) GetSupportedClocksThrottleReasons() (uint64, Return) {
  function DeviceGetPowerState (line 609) | func DeviceGetPowerState(Device Device) (Pstates, Return) {
  method GetPowerState (line 615) | func (Device Device) GetPowerState() (Pstates, Return) {
  function DeviceGetPowerManagementMode (line 620) | func DeviceGetPowerManagementMode(Device Device) (EnableState, Return) {
  method GetPowerManagementMode (line 626) | func (Device Device) GetPowerManagementMode() (EnableState, Return) {
  function DeviceGetPowerManagementLimit (line 631) | func DeviceGetPowerManagementLimit(Device Device) (uint32, Return) {
  method GetPowerManagementLimit (line 637) | func (Device Device) GetPowerManagementLimit() (uint32, Return) {
  function DeviceGetPowerManagementLimitConstraints (line 642) | func DeviceGetPowerManagementLimitConstraints(Device Device) (uint32, ui...
  method GetPowerManagementLimitConstraints (line 648) | func (Device Device) GetPowerManagementLimitConstraints() (uint32, uint3...
  function DeviceGetPowerManagementDefaultLimit (line 653) | func DeviceGetPowerManagementDefaultLimit(Device Device) (uint32, Return) {
  method GetPowerManagementDefaultLimit (line 659) | func (Device Device) GetPowerManagementDefaultLimit() (uint32, Return) {
  function DeviceGetPowerUsage (line 664) | func DeviceGetPowerUsage(Device Device) (uint32, Return) {
  method GetPowerUsage (line 670) | func (Device Device) GetPowerUsage() (uint32, Return) {
  function DeviceGetTotalEnergyConsumption (line 675) | func DeviceGetTotalEnergyConsumption(Device Device) (uint64, Return) {
  method GetTotalEnergyConsumption (line 681) | func (Device Device) GetTotalEnergyConsumption() (uint64, Return) {
  function DeviceGetEnforcedPowerLimit (line 686) | func DeviceGetEnforcedPowerLimit(Device Device) (uint32, Return) {
  method GetEnforcedPowerLimit (line 692) | func (Device Device) GetEnforcedPowerLimit() (uint32, Return) {
  function DeviceGetGpuOperationMode (line 697) | func DeviceGetGpuOperationMode(Device Device) (GpuOperationMode, GpuOper...
  method GetGpuOperationMode (line 703) | func (Device Device) GetGpuOperationMode() (GpuOperationMode, GpuOperati...
  function DeviceGetMemoryInfo (line 708) | func DeviceGetMemoryInfo(Device Device) (Memory, Return) {
  method GetMemoryInfo (line 714) | func (Device Device) GetMemoryInfo() (Memory, Return) {
  function DeviceGetMemoryInfo_v2 (line 719) | func DeviceGetMemoryInfo_v2(Device Device) (Memory_v2, Return) {
  method GetMemoryInfo_v2 (line 726) | func (Device Device) GetMemoryInfo_v2() (Memory_v2, Return) {
  function DeviceGetComputeMode (line 731) | func DeviceGetComputeMode(Device Device) (ComputeMode, Return) {
  method GetComputeMode (line 737) | func (Device Device) GetComputeMode() (ComputeMode, Return) {
  function DeviceGetCudaComputeCapability (line 742) | func DeviceGetCudaComputeCapability(Device Device) (int, int, Return) {
  method GetCudaComputeCapability (line 748) | func (Device Device) GetCudaComputeCapability() (int, int, Return) {
  function DeviceGetEccMode (line 753) | func DeviceGetEccMode(Device Device) (EnableState, EnableState, Return) {
  method GetEccMode (line 759) | func (Device Device) GetEccMode() (EnableState, EnableState, Return) {
  function DeviceGetBoardId (line 764) | func DeviceGetBoardId(Device Device) (uint32, Return) {
  method GetBoardId (line 770) | func (Device Device) GetBoardId() (uint32, Return) {
  function DeviceGetMultiGpuBoard (line 775) | func DeviceGetMultiGpuBoard(Device Device) (int, Return) {
  method GetMultiGpuBoard (line 781) | func (Device Device) GetMultiGpuBoard() (int, Return) {
  function DeviceGetTotalEccErrors (line 786) | func DeviceGetTotalEccErrors(Device Device, ErrorType MemoryErrorType, C...
  method GetTotalEccErrors (line 792) | func (Device Device) GetTotalEccErrors(ErrorType MemoryErrorType, Counte...
  function DeviceGetDetailedEccErrors (line 797) | func DeviceGetDetailedEccErrors(Device Device, ErrorType MemoryErrorType...
  method GetDetailedEccErrors (line 803) | func (Device Device) GetDetailedEccErrors(ErrorType MemoryErrorType, Cou...
  function DeviceGetMemoryErrorCounter (line 808) | func DeviceGetMemoryErrorCounter(Device Device, ErrorType MemoryErrorTyp...
  method GetMemoryErrorCounter (line 814) | func (Device Device) GetMemoryErrorCounter(ErrorType MemoryErrorType, Co...
  function DeviceGetUtilizationRates (line 819) | func DeviceGetUtilizationRates(Device Device) (Utilization, Return) {
  method GetUtilizationRates (line 825) | func (Device Device) GetUtilizationRates() (Utilization, Return) {
  function DeviceGetEncoderUtilization (line 830) | func DeviceGetEncoderUtilization(Device Device) (uint32, uint32, Return) {
  method GetEncoderUtilization (line 836) | func (Device Device) GetEncoderUtilization() (uint32, uint32, Return) {
  function DeviceGetEncoderCapacity (line 841) | func DeviceGetEncoderCapacity(Device Device, EncoderQueryType EncoderTyp...
  method GetEncoderCapacity (line 847) | func (Device Device) GetEncoderCapacity(EncoderQueryType EncoderType) (i...
  function DeviceGetEncoderStats (line 852) | func DeviceGetEncoderStats(Device Device) (int, uint32, uint32, Return) {
  method GetEncoderStats (line 858) | func (Device Device) GetEncoderStats() (int, uint32, uint32, Return) {
  function DeviceGetEncoderSessions (line 863) | func DeviceGetEncoderSessions(Device Device) ([]EncoderSessionInfo, Retu...
  method GetEncoderSessions (line 878) | func (Device Device) GetEncoderSessions() ([]EncoderSessionInfo, Return) {
  function DeviceGetDecoderUtilization (line 883) | func DeviceGetDecoderUtilization(Device Device) (uint32, uint32, Return) {
  method GetDecoderUtilization (line 889) | func (Device Device) GetDecoderUtilization() (uint32, uint32, Return) {
  function DeviceGetFBCStats (line 894) | func DeviceGetFBCStats(Device Device) (FBCStats, Return) {
  method GetFBCStats (line 900) | func (Device Device) GetFBCStats() (FBCStats, Return) {
  function DeviceGetFBCSessions (line 905) | func DeviceGetFBCSessions(Device Device) ([]FBCSessionInfo, Return) {
  method GetFBCSessions (line 920) | func (Device Device) GetFBCSessions() ([]FBCSessionInfo, Return) {
  function DeviceGetDriverModel (line 925) | func DeviceGetDriverModel(Device Device) (DriverModel, DriverModel, Retu...
  method GetDriverModel (line 931) | func (Device Device) GetDriverModel() (DriverModel, DriverModel, Return) {
  function DeviceGetVbiosVersion (line 936) | func DeviceGetVbiosVersion(Device Device) (string, Return) {
  method GetVbiosVersion (line 942) | func (Device Device) GetVbiosVersion() (string, Return) {
  function DeviceGetBridgeChipInfo (line 947) | func DeviceGetBridgeChipInfo(Device Device) (BridgeChipHierarchy, Return) {
  method GetBridgeChipInfo (line 953) | func (Device Device) GetBridgeChipInfo() (BridgeChipHierarchy, Return) {
  function deviceGetComputeRunningProcesses_v1 (line 958) | func deviceGetComputeRunningProcesses_v1(Device Device) ([]ProcessInfo, ...
  function deviceGetComputeRunningProcesses_v2 (line 973) | func deviceGetComputeRunningProcesses_v2(Device Device) ([]ProcessInfo, ...
  function deviceGetComputeRunningProcesses_v3 (line 988) | func deviceGetComputeRunningProcesses_v3(Device Device) ([]ProcessInfo, ...
  method GetComputeRunningProcesses (line 1003) | func (Device Device) GetComputeRunningProcesses() ([]ProcessInfo, Return) {
  function deviceGetGraphicsRunningProcesses_v1 (line 1008) | func deviceGetGraphicsRunningProcesses_v1(Device Device) ([]ProcessInfo,...
  function deviceGetGraphicsRunningProcesses_v2 (line 1023) | func deviceGetGraphicsRunningProcesses_v2(Device Device) ([]ProcessInfo,...
  function deviceGetGraphicsRunningProcesses_v3 (line 1038) | func deviceGetGraphicsRunningProcesses_v3(Device Device) ([]ProcessInfo,...
  method GetGraphicsRunningProcesses (line 1053) | func (Device Device) GetGraphicsRunningProcesses() ([]ProcessInfo, Retur...
  function deviceGetMPSComputeRunningProcesses_v1 (line 1058) | func deviceGetMPSComputeRunningProcesses_v1(Device Device) ([]ProcessInf...
  function deviceGetMPSComputeRunningProcesses_v2 (line 1073) | func deviceGetMPSComputeRunningProcesses_v2(Device Device) ([]ProcessInf...
  function deviceGetMPSComputeRunningProcesses_v3 (line 1088) | func deviceGetMPSComputeRunningProcesses_v3(Device Device) ([]ProcessInf...
  method GetMPSComputeRunningProcesses (line 1103) | func (Device Device) GetMPSComputeRunningProcesses() ([]ProcessInfo, Ret...
  function DeviceOnSameBoard (line 1108) | func DeviceOnSameBoard(Device1 Device, Device2 Device) (int, Return) {
  method OnSameBoard (line 1114) | func (Device1 Device) OnSameBoard(Device2 Device) (int, Return) {
  function DeviceGetAPIRestriction (line 1119) | func DeviceGetAPIRestriction(Device Device, ApiType RestrictedAPI) (Enab...
  method GetAPIRestriction (line 1125) | func (Device Device) GetAPIRestriction(ApiType RestrictedAPI) (EnableSta...
  function DeviceGetSamples (line 1130) | func DeviceGetSamples(Device Device, _type SamplingType, LastSeenTimeSta...
  method GetSamples (line 1145) | func (Device Device) GetSamples(_type SamplingType, LastSeenTimeStamp ui...
  function DeviceGetBAR1MemoryInfo (line 1150) | func DeviceGetBAR1MemoryInfo(Device Device) (BAR1Memory, Return) {
  method GetBAR1MemoryInfo (line 1156) | func (Device Device) GetBAR1MemoryInfo() (BAR1Memory, Return) {
  function DeviceGetViolationStatus (line 1161) | func DeviceGetViolationStatus(Device Device, PerfPolicyType PerfPolicyTy...
  method GetViolationStatus (line 1167) | func (Device Device) GetViolationStatus(PerfPolicyType PerfPolicyType) (...
  function DeviceGetIrqNum (line 1172) | func DeviceGetIrqNum(Device Device) (int, Return) {
  method GetIrqNum (line 1178) | func (Device Device) GetIrqNum() (int, Return) {
  function DeviceGetNumGpuCores (line 1183) | func DeviceGetNumGpuCores(Device Device) (int, Return) {
  method GetNumGpuCores (line 1189) | func (Device Device) GetNumGpuCores() (int, Return) {
  function DeviceGetPowerSource (line 1194) | func DeviceGetPowerSource(Device Device) (PowerSource, Return) {
  method GetPowerSource (line 1200) | func (Device Device) GetPowerSource() (PowerSource, Return) {
  function DeviceGetMemoryBusWidth (line 1205) | func DeviceGetMemoryBusWidth(Device Device) (uint32, Return) {
  method GetMemoryBusWidth (line 1211) | func (Device Device) GetMemoryBusWidth() (uint32, Return) {
  function DeviceGetPcieLinkMaxSpeed (line 1216) | func DeviceGetPcieLinkMaxSpeed(Device Device) (uint32, Return) {
  method GetPcieLinkMaxSpeed (line 1222) | func (Device Device) GetPcieLinkMaxSpeed() (uint32, Return) {
  function DeviceGetAdaptiveClockInfoStatus (line 1227) | func DeviceGetAdaptiveClockInfoStatus(Device Device) (uint32, Return) {
  method GetAdaptiveClockInfoStatus (line 1233) | func (Device Device) GetAdaptiveClockInfoStatus() (uint32, Return) {
  function DeviceGetAccountingMode (line 1238) | func DeviceGetAccountingMode(Device Device) (EnableState, Return) {
  method GetAccountingMode (line 1244) | func (Device Device) GetAccountingMode() (EnableState, Return) {
  function DeviceGetAccountingStats (line 1249) | func DeviceGetAccountingStats(Device Device, Pid uint32) (AccountingStat...
  method GetAccountingStats (line 1255) | func (Device Device) GetAccountingStats(Pid uint32) (AccountingStats, Re...
  function DeviceGetAccountingPids (line 1260) | func DeviceGetAccountingPids(Device Device) ([]int, Return) {
  method GetAccountingPids (line 1275) | func (Device Device) GetAccountingPids() ([]int, Return) {
  function DeviceGetAccountingBufferSize (line 1280) | func DeviceGetAccountingBufferSize(Device Device) (int, Return) {
  method GetAccountingBufferSize (line 1286) | func (Device Device) GetAccountingBufferSize() (int, Return) {
  function DeviceGetRetiredPages (line 1291) | func DeviceGetRetiredPages(Device Device, Cause PageRetirementCause) ([]...
  method GetRetiredPages (line 1306) | func (Device Device) GetRetiredPages(Cause PageRetirementCause) ([]uint6...
  function DeviceGetRetiredPages_v2 (line 1311) | func DeviceGetRetiredPages_v2(Device Device, Cause PageRetirementCause) ...
  method GetRetiredPages_v2 (line 1327) | func (Device Device) GetRetiredPages_v2(Cause PageRetirementCause) ([]ui...
  function DeviceGetRetiredPagesPendingStatus (line 1332) | func DeviceGetRetiredPagesPendingStatus(Device Device) (EnableState, Ret...
  method GetRetiredPagesPendingStatus (line 1338) | func (Device Device) GetRetiredPagesPendingStatus() (EnableState, Return) {
  function DeviceSetPersistenceMode (line 1343) | func DeviceSetPersistenceMode(Device Device, Mode EnableState) Return {
  method SetPersistenceMode (line 1347) | func (Device Device) SetPersistenceMode(Mode EnableState) Return {
  function DeviceSetComputeMode (line 1352) | func DeviceSetComputeMode(Device Device, Mode ComputeMode) Return {
  method SetComputeMode (line 1356) | func (Device Device) SetComputeMode(Mode ComputeMode) Return {
  function DeviceSetEccMode (line 1361) | func DeviceSetEccMode(Device Device, Ecc EnableState) Return {
  method SetEccMode (line 1365) | func (Device Device) SetEccMode(Ecc EnableState) Return {
  function DeviceClearEccErrorCounts (line 1370) | func DeviceClearEccErrorCounts(Device Device, CounterType EccCounterType...
  method ClearEccErrorCounts (line 1374) | func (Device Device) ClearEccErrorCounts(CounterType EccCounterType) Ret...
  function DeviceSetDriverModel (line 1379) | func DeviceSetDriverModel(Device Device, DriverModel DriverModel, Flags ...
  method SetDriverModel (line 1383) | func (Device Device) SetDriverModel(DriverModel DriverModel, Flags uint3...
  function DeviceSetGpuLockedClocks (line 1388) | func DeviceSetGpuLockedClocks(Device Device, MinGpuClockMHz uint32, MaxG...
  method SetGpuLockedClocks (line 1392) | func (Device Device) SetGpuLockedClocks(MinGpuClockMHz uint32, MaxGpuClo...
  function DeviceResetGpuLockedClocks (line 1397) | func DeviceResetGpuLockedClocks(Device Device) Return {
  method ResetGpuLockedClocks (line 1401) | func (Device Device) ResetGpuLockedClocks() Return {
  function DeviceSetMemoryLockedClocks (line 1406) | func DeviceSetMemoryLockedClocks(Device Device, MinMemClockMHz uint32, M...
  method SetMemoryLockedClocks (line 1410) | func (Device Device) SetMemoryLockedClocks(NinMemClockMHz uint32, MaxMem...
  function DeviceResetMemoryLockedClocks (line 1415) | func DeviceResetMemoryLockedClocks(Device Device) Return {
  method ResetMemoryLockedClocks (line 1419) | func (Device Device) ResetMemoryLockedClocks() Return {
  function DeviceGetClkMonStatus (line 1424) | func DeviceGetClkMonStatus(Device Device) (ClkMonStatus, Return) {
  method GetClkMonStatus (line 1430) | func (Device Device) GetClkMonStatus() (ClkMonStatus, Return) {
  function DeviceSetApplicationsClocks (line 1435) | func DeviceSetApplicationsClocks(Device Device, MemClockMHz uint32, Grap...
  method SetApplicationsClocks (line 1439) | func (Device Device) SetApplicationsClocks(MemClockMHz uint32, GraphicsC...
  function DeviceSetPowerManagementLimit (line 1444) | func DeviceSetPowerManagementLimit(Device Device, Limit uint32) Return {
  method SetPowerManagementLimit (line 1448) | func (Device Device) SetPowerManagementLimit(Limit uint32) Return {
  function DeviceSetGpuOperationMode (line 1453) | func DeviceSetGpuOperationMode(Device Device, Mode GpuOperationMode) Ret...
  method SetGpuOperationMode (line 1457) | func (Device Device) SetGpuOperationMode(Mode GpuOperationMode) Return {
  function DeviceSetAPIRestriction (line 1462) | func DeviceSetAPIRestriction(Device Device, ApiType RestrictedAPI, IsRes...
  method SetAPIRestriction (line 1466) | func (Device Device) SetAPIRestriction(ApiType RestrictedAPI, IsRestrict...
  function DeviceSetAccountingMode (line 1471) | func DeviceSetAccountingMode(Device Device, Mode EnableState) Return {
  method SetAccountingMode (line 1475) | func (Device Device) SetAccountingMode(Mode EnableState) Return {
  function DeviceClearAccountingPids (line 1480) | func DeviceClearAccountingPids(Device Device) Return {
  method ClearAccountingPids (line 1484) | func (Device Device) ClearAccountingPids() Return {
  function DeviceGetNvLinkState (line 1489) | func DeviceGetNvLinkState(Device Device, Link int) (EnableState, Return) {
  method GetNvLinkState (line 1495) | func (Device Device) GetNvLinkState(Link int) (EnableState, Return) {
  function DeviceGetNvLinkVersion (line 1500) | func DeviceGetNvLinkVersion(Device Device, Link int) (uint32, Return) {
  method GetNvLinkVersion (line 1506) | func (Device Device) GetNvLinkVersion(Link int) (uint32, Return) {
  function DeviceGetNvLinkCapability (line 1511) | func DeviceGetNvLinkCapability(Device Device, Link int, Capability NvLin...
  method GetNvLinkCapability (line 1517) | func (Device Device) GetNvLinkCapability(Link int, Capability NvLinkCapa...
  function DeviceGetNvLinkRemotePciInfo (line 1522) | func DeviceGetNvLinkRemotePciInfo(Device Device, Link int) (PciInfo, Ret...
  method GetNvLinkRemotePciInfo (line 1528) | func (Device Device) GetNvLinkRemotePciInfo(Link int) (PciInfo, Return) {
  function DeviceGetNvLinkErrorCounter (line 1533) | func DeviceGetNvLinkErrorCounter(Device Device, Link int, Counter NvLink...
  method GetNvLinkErrorCounter (line 1539) | func (Device Device) GetNvLinkErrorCounter(Link int, Counter NvLinkError...
  function DeviceResetNvLinkErrorCounters (line 1544) | func DeviceResetNvLinkErrorCounters(Device Device, Link int) Return {
  method ResetNvLinkErrorCounters (line 1548) | func (Device Device) ResetNvLinkErrorCounters(Link int) Return {
  function DeviceSetNvLinkUtilizationControl (line 1553) | func DeviceSetNvLinkUtilizationControl(Device Device, Link int, Counter ...
  method SetNvLinkUtilizationControl (line 1561) | func (Device Device) SetNvLinkUtilizationControl(Link int, Counter int, ...
  function DeviceGetNvLinkUtilizationControl (line 1566) | func DeviceGetNvLinkUtilizationControl(Device Device, Link int, Counter ...
  method GetNvLinkUtilizationControl (line 1572) | func (Device Device) GetNvLinkUtilizationControl(Link int, Counter int) ...
  function DeviceGetNvLinkUtilizationCounter (line 1577) | func DeviceGetNvLinkUtilizationCounter(Device Device, Link int, Counter ...
  method GetNvLinkUtilizationCounter (line 1583) | func (Device Device) GetNvLinkUtilizationCounter(Link int, Counter int) ...
  function DeviceFreezeNvLinkUtilizationCounter (line 1588) | func DeviceFreezeNvLinkUtilizationCounter(Device Device, Link int, Count...
  method FreezeNvLinkUtilizationCounter (line 1592) | func (Device Device) FreezeNvLinkUtilizationCounter(Link int, Counter in...
  function DeviceResetNvLinkUtilizationCounter (line 1597) | func DeviceResetNvLinkUtilizationCounter(Device Device, Link int, Counte...
  method ResetNvLinkUtilizationCounter (line 1601) | func (Device Device) ResetNvLinkUtilizationCounter(Link int, Counter int...
  function DeviceGetNvLinkRemoteDeviceType (line 1606) | func DeviceGetNvLinkRemoteDeviceType(Device Device, Link int) (IntNvLink...
  method GetNvLinkRemoteDeviceType (line 1612) | func (Device Device) GetNvLinkRemoteDeviceType(Link int) (IntNvLinkDevic...
  function DeviceRegisterEvents (line 1617) | func DeviceRegisterEvents(Device Device, EventTypes uint64, Set EventSet...
  method RegisterEvents (line 1621) | func (Device Device) RegisterEvents(EventTypes uint64, Set EventSet) Ret...
  function DeviceGetSupportedEventTypes (line 1626) | func DeviceGetSupportedEventTypes(Device Device) (uint64, Return) {
  method GetSupportedEventTypes (line 1632) | func (Device Device) GetSupportedEventTypes() (uint64, Return) {
  function DeviceModifyDrainState (line 1637) | func DeviceModifyDrainState(PciInfo *PciInfo, NewState EnableState) Retu...
  function DeviceQueryDrainState (line 1642) | func DeviceQueryDrainState(PciInfo *PciInfo) (EnableState, Return) {
  function DeviceRemoveGpu (line 1649) | func DeviceRemoveGpu(PciInfo *PciInfo) Return {
  function DeviceRemoveGpu_v2 (line 1654) | func DeviceRemoveGpu_v2(PciInfo *PciInfo, GpuState DetachGpuState, LinkS...
  function DeviceDiscoverGpus (line 1659) | func DeviceDiscoverGpus() (PciInfo, Return) {
  function DeviceGetFieldValues (line 1666) | func DeviceGetFieldValues(Device Device, Values []FieldValue) Return {
  method GetFieldValues (line 1671) | func (Device Device) GetFieldValues(Values []FieldValue) Return {
  function DeviceGetVirtualizationMode (line 1676) | func DeviceGetVirtualizationMode(Device Device) (GpuVirtualizationMode, ...
  method GetVirtualizationMode (line 1682) | func (Device Device) GetVirtualizationMode() (GpuVirtualizationMode, Ret...
  function DeviceGetHostVgpuMode (line 1687) | func DeviceGetHostVgpuMode(Device Device) (HostVgpuMode, Return) {
  method GetHostVgpuMode (line 1693) | func (Device Device) GetHostVgpuMode() (HostVgpuMode, Return) {
  function DeviceSetVirtualizationMode (line 1698) | func DeviceSetVirtualizationMode(Device Device, VirtualMode GpuVirtualiz...
  method SetVirtualizationMode (line 1702) | func (Device Device) SetVirtualizationMode(VirtualMode GpuVirtualization...
  function DeviceGetGridLicensableFeatures (line 1707) | func DeviceGetGridLicensableFeatures(Device Device) (GridLicensableFeatu...
  method GetGridLicensableFeatures (line 1713) | func (Device Device) GetGridLicensableFeatures() (GridLicensableFeatures...
  function DeviceGetProcessUtilization (line 1718) | func DeviceGetProcessUtilization(Device Device, LastSeenTimeStamp uint64...
  method GetProcessUtilization (line 1732) | func (Device Device) GetProcessUtilization(LastSeenTimeStamp uint64) ([]...
  function DeviceGetSupportedVgpus (line 1737) | func DeviceGetSupportedVgpus(Device Device) ([]VgpuTypeId, Return) {
  method GetSupportedVgpus (line 1752) | func (Device Device) GetSupportedVgpus() ([]VgpuTypeId, Return) {
  function DeviceGetCreatableVgpus (line 1757) | func DeviceGetCreatableVgpus(Device Device) ([]VgpuTypeId, Return) {
  method GetCreatableVgpus (line 1772) | func (Device Device) GetCreatableVgpus() ([]VgpuTypeId, Return) {
  function DeviceGetActiveVgpus (line 1777) | func DeviceGetActiveVgpus(Device Device) ([]VgpuInstance, Return) {
  method GetActiveVgpus (line 1792) | func (Device Device) GetActiveVgpus() ([]VgpuInstance, Return) {
  function DeviceGetVgpuMetadata (line 1797) | func DeviceGetVgpuMetadata(Device Device) (VgpuPgpuMetadata, Return) {
  method GetVgpuMetadata (line 1818) | func (Device Device) GetVgpuMetadata() (VgpuPgpuMetadata, Return) {
  function DeviceGetPgpuMetadataString (line 1823) | func DeviceGetPgpuMetadataString(Device Device) (string, Return) {
  method GetPgpuMetadataString (line 1838) | func (Device Device) GetPgpuMetadataString() (string, Return) {
  function DeviceGetVgpuUtilization (line 1843) | func DeviceGetVgpuUtilization(Device Device, LastSeenTimeStamp uint64) (...
  method GetVgpuUtilization (line 1859) | func (Device Device) GetVgpuUtilization(LastSeenTimeStamp uint64) (Value...
  function DeviceGetAttributes (line 1864) | func DeviceGetAttributes(Device Device) (DeviceAttributes, Return) {
  method GetAttributes (line 1870) | func (Device Device) GetAttributes() (DeviceAttributes, Return) {
  function DeviceGetRemappedRows (line 1875) | func DeviceGetRemappedRows(Device Device) (int, int, bool, bool, Return) {
  method GetRemappedRows (line 1881) | func (Device Device) GetRemappedRows() (int, int, bool, bool, Return) {
  function DeviceGetRowRemapperHistogram (line 1886) | func DeviceGetRowRemapperHistogram(Device Device) (RowRemapperHistogramV...
  method GetRowRemapperHistogram (line 1892) | func (Device Device) GetRowRemapperHistogram() (RowRemapperHistogramValu...
  function DeviceGetArchitecture (line 1897) | func DeviceGetArchitecture(Device Device) (DeviceArchitecture, Return) {
  method GetArchitecture (line 1903) | func (Device Device) GetArchitecture() (DeviceArchitecture, Return) {
  function DeviceGetVgpuProcessUtilization (line 1908) | func DeviceGetVgpuProcessUtilization(Device Device, LastSeenTimeStamp ui...
  method GetVgpuProcessUtilization (line 1923) | func (Device Device) GetVgpuProcessUtilization(LastSeenTimeStamp uint64)...
  function GetExcludedDeviceCount (line 1928) | func GetExcludedDeviceCount() (int, Return) {
  function GetExcludedDeviceInfoByIndex (line 1935) | func GetExcludedDeviceInfoByIndex(Index int) (ExcludedDeviceInfo, Return) {
  function DeviceSetMigMode (line 1942) | func DeviceSetMigMode(Device Device, Mode int) (Return, Return) {
  method SetMigMode (line 1948) | func (Device Device) SetMigMode(Mode int) (Return, Return) {
  function DeviceGetMigMode (line 1953) | func DeviceGetMigMode(Device Device) (int, int, Return) {
  method GetMigMode (line 1959) | func (Device Device) GetMigMode() (int, int, Return) {
  function DeviceGetGpuInstanceProfileInfo (line 1964) | func DeviceGetGpuInstanceProfileInfo(Device Device, Profile int) (GpuIns...
  method GetGpuInstanceProfileInfo (line 1970) | func (Device Device) GetGpuInstanceProfileInfo(Profile int) (GpuInstance...
  type GpuInstanceProfileInfoV (line 1975) | type GpuInstanceProfileInfoV struct
    method V1 (line 1980) | func (InfoV GpuInstanceProfileInfoV) V1() (GpuInstanceProfileInfo, Ret...
    method V2 (line 1984) | func (InfoV GpuInstanceProfileInfoV) V2() (GpuInstanceProfileInfo_v2, ...
  function DeviceGetGpuInstanceProfileInfoV (line 1991) | func DeviceGetGpuInstanceProfileInfoV(Device Device, Profile int) GpuIns...
  method GetGpuInstanceProfileInfoV (line 1995) | func (Device Device) GetGpuInstanceProfileInfoV(Profile int) GpuInstance...
  function DeviceGetGpuInstancePossiblePlacements (line 2000) | func DeviceGetGpuInstancePossiblePlacements(Device Device, Info *GpuInst...
  method GetGpuInstancePossiblePlacements (line 2017) | func (Device Device) GetGpuInstancePossiblePlacements(Info *GpuInstanceP...
  function DeviceGetGpuInstanceRemainingCapacity (line 2022) | func DeviceGetGpuInstanceRemainingCapacity(Device Device, Info *GpuInsta...
  method GetGpuInstanceRemainingCapacity (line 2031) | func (Device Device) GetGpuInstanceRemainingCapacity(Info *GpuInstancePr...
  function DeviceCreateGpuInstance (line 2036) | func DeviceCreateGpuInstance(Device Device, Info *GpuInstanceProfileInfo...
  method CreateGpuInstance (line 2045) | func (Device Device) CreateGpuInstance(Info *GpuInstanceProfileInfo) (Gp...
  function DeviceCreateGpuInstanceWithPlacement (line 2050) | func DeviceCreateGpuInstanceWithPlacement(Device Device, Info *GpuInstan...
  method CreateGpuInstanceWithPlacement (line 2059) | func (Device Device) CreateGpuInstanceWithPlacement(Info *GpuInstancePro...
  function GpuInstanceDestroy (line 2064) | func GpuInstanceDestroy(GpuInstance GpuInstance) Return {
  method Destroy (line 2068) | func (GpuInstance GpuInstance) Destroy() Return {
  function DeviceGetGpuInstances (line 2073) | func DeviceGetGpuInstances(Device Device, Info *GpuInstanceProfileInfo) ...
  method GetGpuInstances (line 2083) | func (Device Device) GetGpuInstances(Info *GpuInstanceProfileInfo) ([]Gp...
  function DeviceGetGpuInstanceById (line 2088) | func DeviceGetGpuInstanceById(Device Device, Id int) (GpuInstance, Retur...
  method GetGpuInstanceById (line 2094) | func (Device Device) GetGpuInstanceById(Id int) (GpuInstance, Return) {
  function GpuInstanceGetInfo (line 2099) | func GpuInstanceGetInfo(GpuInstance GpuInstance) (GpuInstanceInfo, Retur...
  method GetInfo (line 2105) | func (GpuInstance GpuInstance) GetInfo() (GpuInstanceInfo, Return) {
  function GpuInstanceGetComputeInstanceProfileInfo (line 2110) | func GpuInstanceGetComputeInstanceProfileInfo(GpuInstance GpuInstance, P...
  method GetComputeInstanceProfileInfo (line 2116) | func (GpuInstance GpuInstance) GetComputeInstanceProfileInfo(Profile int...
  type ComputeInstanceProfileInfoV (line 2121) | type ComputeInstanceProfileInfoV struct
    method V1 (line 2127) | func (InfoV ComputeInstanceProfileInfoV) V1() (ComputeInstanceProfileI...
    method V2 (line 2131) | func (InfoV ComputeInstanceProfileInfoV) V2() (ComputeInstanceProfileI...
  function GpuInstanceGetComputeInstanceProfileInfoV (line 2138) | func GpuInstanceGetComputeInstanceProfileInfoV(GpuInstance GpuInstance, ...
  method GetComputeInstanceProfileInfoV (line 2142) | func (GpuInstance GpuInstance) GetComputeInstanceProfileInfoV(Profile in...
  function GpuInstanceGetComputeInstanceRemainingCapacity (line 2147) | func GpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance GpuInsta...
  method GetComputeInstanceRemainingCapacity (line 2156) | func (GpuInstance GpuInstance) GetComputeInstanceRemainingCapacity(Info ...
  function GpuInstanceCreateComputeInstance (line 2161) | func GpuInstanceCreateComputeInstance(GpuInstance GpuInstance, Info *Com...
  method CreateComputeInstance (line 2170) | func (GpuInstance GpuInstance) CreateComputeInstance(Info *ComputeInstan...
  function ComputeInstanceDestroy (line 2175) | func ComputeInstanceDestroy(ComputeInstance ComputeInstance) Return {
  method Destroy (line 2179) | func (ComputeInstance ComputeInstance) Destroy() Return {
  function GpuInstanceGetComputeInstances (line 2184) | func GpuInstanceGetComputeInstances(GpuInstance GpuInstance, Info *Compu...
  method GetComputeInstances (line 2194) | func (GpuInstance GpuInstance) GetComputeInstances(Info *ComputeInstance...
  function GpuInstanceGetComputeInstanceById (line 2199) | func GpuInstanceGetComputeInstanceById(GpuInstance GpuInstance, Id int) ...
  method GetComputeInstanceById (line 2205) | func (GpuInstance GpuInstance) GetComputeInstanceById(Id int) (ComputeIn...
  function ComputeInstanceGetInfo (line 2210) | func ComputeInstanceGetInfo(ComputeInstance ComputeInstance) (ComputeIns...
  method GetInfo (line 2216) | func (ComputeInstance ComputeInstance) GetInfo() (ComputeInstanceInfo, R...
  function DeviceIsMigDeviceHandle (line 2221) | func DeviceIsMigDeviceHandle(Device Device) (bool, Return) {
  method IsMigDeviceHandle (line 2227) | func (Device Device) IsMigDeviceHandle() (bool, Return) {
  function DeviceGetGpuInstanceId (line 2232) | func DeviceGetGpuInstanceId(Device Device) (int, Return) {
  method GetGpuInstanceId (line 2238) | func (Device Device) GetGpuInstanceId() (int, Return) {
  function DeviceGetComputeInstanceId (line 2243) | func DeviceGetComputeInstanceId(Device Device) (int, Return) {
  method GetComputeInstanceId (line 2249) | func (Device Device) GetComputeInstanceId() (int, Return) {
  function DeviceGetMaxMigDeviceCount (line 2254) | func DeviceGetMaxMigDeviceCount(Device Device) (int, Return) {
  method GetMaxMigDeviceCount (line 2260) | func (Device Device) GetMaxMigDeviceCount() (int, Return) {
  function DeviceGetMigDeviceHandleByIndex (line 2265) | func DeviceGetMigDeviceHandleByIndex(device Device, Index int) (Device, ...
  method GetMigDeviceHandleByIndex (line 2271) | func (Device Device) GetMigDeviceHandleByIndex(Index int) (Device, Retur...
  function DeviceGetDeviceHandleFromMigDeviceHandle (line 2276) | func DeviceGetDeviceHandleFromMigDeviceHandle(MigDevice Device) (Device,...
  method GetDeviceHandleFromMigDeviceHandle (line 2282) | func (MigDevice Device) GetDeviceHandleFromMigDeviceHandle() (Device, Re...
  function DeviceGetBusType (line 2287) | func DeviceGetBusType(Device Device) (BusType, Return) {
  method GetBusType (line 2293) | func (Device Device) GetBusType() (BusType, Return) {
  function DeviceSetDefaultFanSpeed_v2 (line 2298) | func DeviceSetDefaultFanSpeed_v2(Device Device, Fan int) Return {
  method SetDefaultFanSpeed_v2 (line 2302) | func (Device Device) SetDefaultFanSpeed_v2(Fan int) Return {
  function DeviceGetMinMaxFanSpeed (line 2307) | func DeviceGetMinMaxFanSpeed(Device Device) (int, int, Return) {
  method GetMinMaxFanSpeed (line 2313) | func (Device Device) GetMinMaxFanSpeed() (int, int, Return) {
  function DeviceGetThermalSettings (line 2318) | func DeviceGetThermalSettings(Device Device, SensorIndex uint32) (GpuThe...
  method GetThermalSettings (line 2324) | func (Device Device) GetThermalSettings(SensorIndex uint32) (GpuThermalS...
  function DeviceGetDefaultEccMode (line 2329) | func DeviceGetDefaultEccMode(Device Device) (EnableState, Return) {
  method GetDefaultEccMode (line 2335) | func (Device Device) GetDefaultEccMode() (EnableState, Return) {
  function DeviceGetPcieSpeed (line 2340) | func DeviceGetPcieSpeed(Device Device) (int, Return) {
  method GetPcieSpeed (line 2346) | func (Device Device) GetPcieSpeed() (int, Return) {
  function DeviceGetGspFirmwareVersion (line 2351) | func DeviceGetGspFirmwareVersion(Device Device) (string, Return) {
  method GetGspFirmwareVersion (line 2357) | func (Device Device) GetGspFirmwareVersion() (string, Return) {
  function DeviceGetGspFirmwareMode (line 2362) | func DeviceGetGspFirmwareMode(Device Device) (bool, bool, Return) {
  method GetGspFirmwareMode (line 2368) | func (Device Device) GetGspFirmwareMode() (bool, bool, Return) {
  function DeviceGetDynamicPstatesInfo (line 2373) | func DeviceGetDynamicPstatesInfo(Device Device) (GpuDynamicPstatesInfo, ...
  method GetDynamicPstatesInfo (line 2379) | func (Device Device) GetDynamicPstatesInfo() (GpuDynamicPstatesInfo, Ret...
  function DeviceSetFanSpeed_v2 (line 2384) | func DeviceSetFanSpeed_v2(Device Device, Fan int, Speed int) Return {
  method SetFanSpeed_v2 (line 2388) | func (Device Device) SetFanSpeed_v2(Fan int, Speed int) Return {
  function DeviceGetGpcClkVfOffset (line 2393) | func DeviceGetGpcClkVfOffset(Device Device) (int, Return) {
  method GetGpcClkVfOffset (line 2399) | func (Device Device) GetGpcClkVfOffset() (int, Return) {
  function DeviceSetGpcClkVfOffset (line 2404) | func DeviceSetGpcClkVfOffset(Device Device, Offset int) Return {
  method SetGpcClkVfOffset (line 2408) | func (Device Device) SetGpcClkVfOffset(Offset int) Return {
  function DeviceGetMinMaxClockOfPState (line 2413) | func DeviceGetMinMaxClockOfPState(Device Device, _type ClockType, Pstate...
  method GetMinMaxClockOfPState (line 2419) | func (Device Device) GetMinMaxClockOfPState(_type ClockType, Pstate Psta...
  function DeviceGetSupportedPerformanceStates (line 2424) | func DeviceGetSupportedPerformanceStates(Device Device) ([]Pstates, Retu...
  method GetSupportedPerformanceStates (line 2435) | func (Device Device) GetSupportedPerformanceStates() ([]Pstates, Return) {
  function DeviceGetTargetFanSpeed (line 2440) | func DeviceGetTargetFanSpeed(Device Device, Fan int) (int, Return) {
  method GetTargetFanSpeed (line 2446) | func (Device Device) GetTargetFanSpeed(Fan int) (int, Return) {
  function DeviceGetMemClkVfOffset (line 2451) | func DeviceGetMemClkVfOffset(Device Device) (int, Return) {
  method GetMemClkVfOffset (line 2457) | func (Device Device) GetMemClkVfOffset() (int, Return) {
  function DeviceSetMemClkVfOffset (line 2462) | func DeviceSetMemClkVfOffset(Device Device, Offset int) Return {
  method SetMemClkVfOffset (line 2466) | func (Device Device) SetMemClkVfOffset(Offset int) Return {
  function DeviceGetGpcClkMinMaxVfOffset (line 2471) | func DeviceGetGpcClkMinMaxVfOffset(Device Device) (int, int, Return) {
  method GetGpcClkMinMaxVfOffset (line 2477) | func (Device Device) GetGpcClkMinMaxVfOffset() (int, int, Return) {
  function DeviceGetMemClkMinMaxVfOffset (line 2482) | func DeviceGetMemClkMinMaxVfOffset(Device Device) (int, int, Return) {
  method GetMemClkMinMaxVfOffset (line 2488) | func (Device Device) GetMemClkMinMaxVfOffset() (int, int, Return) {
  function DeviceGetGpuMaxPcieLinkGeneration (line 2493) | func DeviceGetGpuMaxPcieLinkGeneration(Device Device) (int, Return) {
  method GetGpuMaxPcieLinkGeneration (line 2499) | func (Device Device) GetGpuMaxPcieLinkGeneration() (int, Return) {
  function DeviceGetFanControlPolicy_v2 (line 2504) | func DeviceGetFanControlPolicy_v2(Device Device, Fan int) (FanControlPol...
  method GetFanControlPolicy_v2 (line 2510) | func (Device Device) GetFanControlPolicy_v2(Fan int) (FanControlPolicy, ...
  function DeviceSetFanControlPolicy (line 2515) | func DeviceSetFanControlPolicy(Device Device, Fan int, Policy FanControl...
  method SetFanControlPolicy (line 2519) | func (Device Device) SetFanControlPolicy(Fan int, Policy FanControlPolic...
  function DeviceClearFieldValues (line 2524) | func DeviceClearFieldValues(Device Device, Values []FieldValue) Return {
  method ClearFieldValues (line 2529) | func (Device Device) ClearFieldValues(Values []FieldValue) Return {
  function DeviceGetVgpuCapabilities (line 2534) | func DeviceGetVgpuCapabilities(Device Device, Capability DeviceVgpuCapab...
  method GetVgpuCapabilities (line 2540) | func (Device Device) GetVgpuCapabilities(Capability DeviceVgpuCapability...
  function DeviceGetVgpuSchedulerLog (line 2545) | func DeviceGetVgpuSchedulerLog(Device Device) (VgpuSchedulerLog, Return) {
  method GetVgpuSchedulerLog (line 2551) | func (Device Device) GetVgpuSchedulerLog() (VgpuSchedulerLog, Return) {
  function DeviceGetVgpuSchedulerState (line 2556) | func DeviceGetVgpuSchedulerState(Device Device) (VgpuSchedulerGetState, ...
  method GetVgpuSchedulerState (line 2562) | func (Device Device) GetVgpuSchedulerState() (VgpuSchedulerGetState, Ret...
  function DeviceSetVgpuSchedulerState (line 2567) | func DeviceSetVgpuSchedulerState(Device Device, PSchedulerState *VgpuSch...
  method SetVgpuSchedulerState (line 2571) | func (Device Device) SetVgpuSchedulerState(PSchedulerState *VgpuSchedule...
  function DeviceGetVgpuSchedulerCapabilities (line 2576) | func DeviceGetVgpuSchedulerCapabilities(Device Device) (VgpuSchedulerCap...
  method GetVgpuSchedulerCapabilities (line 2582) | func (Device Device) GetVgpuSchedulerCapabilities() (VgpuSchedulerCapabi...
  function GpuInstanceGetComputeInstancePossiblePlacements (line 2587) | func GpuInstanceGetComputeInstancePossiblePlacements(GpuInstance GpuInst...
  method GetComputeInstancePossiblePlacements (line 2601) | func (GpuInstance GpuInstance) GetComputeInstancePossiblePlacements(Info...
  function GpuInstanceCreateComputeInstanceWithPlacement (line 2606) | func GpuInstanceCreateComputeInstanceWithPlacement(GpuInstance GpuInstan...
  method CreateComputeInstanceWithPlacement (line 2610) | func (GpuInstance GpuInstance) CreateComputeInstanceWithPlacement(Info *...
  function DeviceGetGpuFabricInfo (line 2615) | func DeviceGetGpuFabricInfo(Device Device) (GpuFabricInfo, Return) {
  method GetGpuFabricInfo (line 2621) | func (Device Device) GetGpuFabricInfo() (GpuFabricInfo, Return) {
  function DeviceCcuGetStreamState (line 2626) | func DeviceCcuGetStreamState(Device Device) (int, Return) {
  method CcuGetStreamState (line 2632) | func (Device Device) CcuGetStreamState() (int, Return) {
  function DeviceCcuSetStreamState (line 2637) | func DeviceCcuSetStreamState(Device Device, State int) Return {
  method CcuSetStreamState (line 2641) | func (Device Device) CcuSetStreamState(State int) Return {
  function DeviceSetNvLinkDeviceLowPowerThreshold (line 2646) | func DeviceSetNvLinkDeviceLowPowerThreshold(Device Device, Info *NvLinkP...
  method SetNvLinkDeviceLowPowerThreshold (line 2650) | func (Device Device) SetNvLinkDeviceLowPowerThreshold(Info *NvLinkPowerT...

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/dynamicLibrary_mock.go
  type dynamicLibraryMock (line 35) | type dynamicLibraryMock struct
    method Close (line 65) | func (mock *dynamicLibraryMock) Close() error {
    method CloseCalls (line 84) | func (mock *dynamicLibraryMock) CloseCalls() []struct {
    method Lookup (line 95) | func (mock *dynamicLibraryMock) Lookup(s string) error {
    method LookupCalls (line 117) | func (mock *dynamicLibraryMock) LookupCalls() []struct {
    method Open (line 130) | func (mock *dynamicLibraryMock) Open() error {
    method OpenCalls (line 149) | func (mock *dynamicLibraryMock) OpenCalls() []struct {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go
  function EventSetCreate (line 18) | func EventSetCreate() (EventSet, Return) {
  function EventSetWait (line 25) | func EventSetWait(Set EventSet, Timeoutms uint32) (EventData, Return) {
  method Wait (line 31) | func (Set EventSet) Wait(Timeoutms uint32) (EventData, Return) {
  function EventSetFree (line 36) | func EventSetFree(Set EventSet) Return {
  method Free (line 40) | func (Set EventSet) Free() Return {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go
  type GpmMetricsGetVType (line 18) | type GpmMetricsGetVType struct
    method V1 (line 26) | func (MetricsGetV GpmMetricsGetVType) V1() Return {
  function GpmMetricsGetV (line 22) | func GpmMetricsGetV(MetricsGet *GpmMetricsGetType) GpmMetricsGetVType {
  function GpmMetricsGet (line 31) | func GpmMetricsGet(MetricsGet *GpmMetricsGetType) Return {
  function GpmSampleFree (line 37) | func GpmSampleFree(GpmSample GpmSample) Return {
  function GpmSampleAlloc (line 42) | func GpmSampleAlloc(GpmSample *GpmSample) Return {
  function GpmSampleGet (line 47) | func GpmSampleGet(Device Device, GpmSample GpmSample) Return {
  method GpmSampleGet (line 51) | func (Device Device) GpmSampleGet(GpmSample GpmSample) Return {
  type GpmSupportV (line 56) | type GpmSupportV struct
    method V1 (line 68) | func (GpmSupportV GpmSupportV) V1() (GpmSupport, Return) {
  function GpmQueryDeviceSupportV (line 60) | func GpmQueryDeviceSupportV(Device Device) GpmSupportV {
  method GpmQueryDeviceSupportV (line 64) | func (Device Device) GpmQueryDeviceSupportV() GpmSupportV {
  function GpmQueryDeviceSupport (line 75) | func GpmQueryDeviceSupport(Device Device) (GpmSupport, Return) {
  method GpmQueryDeviceSupport (line 82) | func (Device Device) GpmQueryDeviceSupport() (GpmSupport, Return) {
  function GpmMigSampleGet (line 87) | func GpmMigSampleGet(Device Device, GpuInstanceId int, GpmSample GpmSamp...
  method GpmMigSampleGet (line 91) | func (Device Device) GpmMigSampleGet(GpuInstanceId int, GpmSample GpmSam...

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/init.go
  function Init (line 20) | func Init() Return {
  function InitWithFlags (line 28) | func InitWithFlags(Flags uint32) Return {
  function Shutdown (line 36) | func Shutdown() Return {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/lib.go
  constant defaultNvmlLibraryName (line 30) | defaultNvmlLibraryName      = "libnvidia-ml.so.1"
  constant defaultNvmlLibraryLoadFlags (line 31) | defaultNvmlLibraryLoadFlags = dl.RTLD_LAZY | dl.RTLD_GLOBAL
  type library (line 39) | type library struct
    method GetLibrary (line 55) | func (l *library) GetLibrary() Library {
    method Lookup (line 66) | func (l *library) Lookup(name string) error {
    method load (line 80) | func (l *library) load() error {
    method close (line 102) | func (l *library) close() error {
    method updateVersionedSymbols (line 173) | func (l *library) updateVersionedSymbols() {
  function GetLibrary (line 60) | func GetLibrary() Library {
  type ProcessInfo_v1Slice (line 143) | type ProcessInfo_v1Slice
    method ToProcessInfoSlice (line 146) | func (pis ProcessInfo_v1Slice) ToProcessInfoSlice() []ProcessInfo {
  type ProcessInfo_v2Slice (line 144) | type ProcessInfo_v2Slice
    method ToProcessInfoSlice (line 160) | func (pis ProcessInfo_v2Slice) ToProcessInfoSlice() []ProcessInfo {
  type LibraryOption (line 267) | type LibraryOption
  function WithLibraryPath (line 270) | func WithLibraryPath(path string) LibraryOption {
  function SetLibraryOptions (line 278) | func SetLibraryOptions(opts ...LibraryOption) error {

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go
  function nvmlInit_v2 (line 32) | func nvmlInit_v2() Return {
  function nvmlInitWithFlags (line 39) | func nvmlInitWithFlags(Flags uint32) Return {
  function nvmlShutdown (line 47) | func nvmlShutdown() Return {
  function nvmlErrorString (line 54) | func nvmlErrorString(Result Return) string {
  function nvmlSystemGetDriverVersion (line 62) | func nvmlSystemGetDriverVersion(Version *byte, Length uint32) Return {
  function nvmlSystemGetNVMLVersion (line 71) | func nvmlSystemGetNVMLVersion(Version *byte, Length uint32) Return {
  function nvmlSystemGetCudaDriverVersion (line 80) | func nvmlSystemGetCudaDriverVersion(CudaDriverVersion *int32) Return {
  function nvmlSystemGetCudaDriverVersion_v2 (line 88) | func nvmlSystemGetCudaDriverVersion_v2(CudaDriverVersion *int32) Return {
  function nvmlSystemGetProcessName (line 96) | func nvmlSystemGetProcessName(Pid uint32, Name *byte, Length uint32) Ret...
  function nvmlUnitGetCount (line 106) | func nvmlUnitGetCount(UnitCount *uint32) Return {
  function nvmlUnitGetHandleByIndex (line 114) | func nvmlUnitGetHandleByIndex(Index uint32, Unit *Unit) Return {
  function nvmlUnitGetUnitInfo (line 123) | func nvmlUnitGetUnitInfo(Unit Unit, Info *UnitInfo) Return {
  function nvmlUnitGetLedState (line 132) | func nvmlUnitGetLedState(Unit Unit, State *LedState) Return {
  function nvmlUnitGetPsuInfo (line 141) | func nvmlUnitGetPsuInfo(Unit Unit, Psu *PSUInfo) Return {
  function nvmlUnitGetTemperature (line 150) | func nvmlUnitGetTemperature(Unit Unit, _type uint32, Temp *uint32) Return {
  function nvmlUnitGetFanSpeedInfo (line 160) | func nvmlUnitGetFanSpeedInfo(Unit Unit, FanSpeeds *UnitFanSpeeds) Return {
  function nvmlUnitGetDevices (line 169) | func nvmlUnitGetDevices(Unit Unit, DeviceCount *uint32, Devices *Device)...
  function nvmlSystemGetHicVersion (line 179) | func nvmlSystemGetHicVersion(HwbcCount *uint32, HwbcEntries *HwbcEntry) ...
  function nvmlDeviceGetCount_v2 (line 188) | func nvmlDeviceGetCount_v2(DeviceCount *uint32) Return {
  function nvmlDeviceGetAttributes_v2 (line 196) | func nvmlDeviceGetAttributes_v2(Device Device, Attributes *DeviceAttribu...
  function nvmlDeviceGetHandleByIndex_v2 (line 205) | func nvmlDeviceGetHandleByIndex_v2(Index uint32, Device *Device) Return {
  function nvmlDeviceGetHandleBySerial (line 214) | func nvmlDeviceGetHandleBySerial(Serial string, Device *Device) Return {
  function nvmlDeviceGetHandleByUUID (line 223) | func nvmlDeviceGetHandleByUUID(Uuid string, Device *Device) Return {
  function nvmlDeviceGetHandleByPciBusId_v2 (line 232) | func nvmlDeviceGetHandleByPciBusId_v2(PciBusId string, Device *Device) R...
  function nvmlDeviceGetName (line 241) | func nvmlDeviceGetName(Device Device, Name *byte, Length uint32) Return {
  function nvmlDeviceGetBrand (line 251) | func nvmlDeviceGetBrand(Device Device, _type *BrandType) Return {
  function nvmlDeviceGetIndex (line 260) | func nvmlDeviceGetIndex(Device Device, Index *uint32) Return {
  function nvmlDeviceGetSerial (line 269) | func nvmlDeviceGetSerial(Device Device, Serial *byte, Length uint32) Ret...
  function nvmlDeviceGetMemoryAffinity (line 279) | func nvmlDeviceGetMemoryAffinity(Device Device, NodeSetSize uint32, Node...
  function nvmlDeviceGetCpuAffinityWithinScope (line 290) | func nvmlDeviceGetCpuAffinityWithinScope(Device Device, CpuSetSize uint3...
  function nvmlDeviceGetCpuAffinity (line 301) | func nvmlDeviceGetCpuAffinity(Device Device, CpuSetSize uint32, CpuSet *...
  function nvmlDeviceSetCpuAffinity (line 311) | func nvmlDeviceSetCpuAffinity(Device Device) Return {
  function nvmlDeviceClearCpuAffinity (line 319) | func nvmlDeviceClearCpuAffinity(Device Device) Return {
  function nvmlDeviceGetTopologyCommonAncestor (line 327) | func nvmlDeviceGetTopologyCommonAncestor(Device1 Device, Device2 Device,...
  function nvmlDeviceGetTopologyNearestGpus (line 337) | func nvmlDeviceGetTopologyNearestGpus(Device Device, Level GpuTopologyLe...
  function nvmlSystemGetTopologyGpuSet (line 348) | func nvmlSystemGetTopologyGpuSet(CpuNumber uint32, Count *uint32, Device...
  function nvmlDeviceGetP2PStatus (line 358) | func nvmlDeviceGetP2PStatus(Device1 Device, Device2 Device, P2pIndex Gpu...
  function nvmlDeviceGetUUID (line 369) | func nvmlDeviceGetUUID(Device Device, Uuid *byte, Length uint32) Return {
  function nvmlVgpuInstanceGetMdevUUID (line 379) | func nvmlVgpuInstanceGetMdevUUID(VgpuInstance VgpuInstance, MdevUuid *by...
  function nvmlDeviceGetMinorNumber (line 389) | func nvmlDeviceGetMinorNumber(Device Device, MinorNumber *uint32) Return {
  function nvmlDeviceGetBoardPartNumber (line 398) | func nvmlDeviceGetBoardPartNumber(Device Device, PartNumber *byte, Lengt...
  function nvmlDeviceGetInforomVersion (line 408) | func nvmlDeviceGetInforomVersion(Device Device, Object InforomObject, Ve...
  function nvmlDeviceGetInforomImageVersion (line 419) | func nvmlDeviceGetInforomImageVersion(Device Device, Version *byte, Leng...
  function nvmlDeviceGetInforomConfigurationChecksum (line 429) | func nvmlDeviceGetInforomConfigurationChecksum(Device Device, Checksum *...
  function nvmlDeviceValidateInforom (line 438) | func nvmlDeviceValidateInforom(Device Device) Return {
  function nvmlDeviceGetDisplayMode (line 446) | func nvmlDeviceGetDisplayMode(Device Device, Display *EnableState) Return {
  function nvmlDeviceGetDisplayActive (line 455) | func nvmlDeviceGetDisplayActive(Device Device, IsActive *EnableState) Re...
  function nvmlDeviceGetPersistenceMode (line 464) | func nvmlDeviceGetPersistenceMode(Device Device, Mode *EnableState) Retu...
  function nvmlDeviceGetPciInfo_v3 (line 473) | func nvmlDeviceGetPciInfo_v3(Device Device, Pci *PciInfo) Return {
  function nvmlDeviceGetMaxPcieLinkGeneration (line 482) | func nvmlDeviceGetMaxPcieLinkGeneration(Device Device, MaxLinkGen *uint3...
  function nvmlDeviceGetGpuMaxPcieLinkGeneration (line 491) | func nvmlDeviceGetGpuMaxPcieLinkGeneration(Device Device, MaxLinkGenDevi...
  function nvmlDeviceGetMaxPcieLinkWidth (line 500) | func nvmlDeviceGetMaxPcieLinkWidth(Device Device, MaxLinkWidth *uint32) ...
  function nvmlDeviceGetCurrPcieLinkGeneration (line 509) | func nvmlDeviceGetCurrPcieLinkGeneration(Device Device, CurrLinkGen *uin...
  function nvmlDeviceGetCurrPcieLinkWidth (line 518) | func nvmlDeviceGetCurrPcieLinkWidth(Device Device, CurrLinkWidth *uint32...
  function nvmlDeviceGetPcieThroughput (line 527) | func nvmlDeviceGetPcieThroughput(Device Device, Counter PcieUtilCounter,...
  function nvmlDeviceGetPcieReplayCounter (line 537) | func nvmlDeviceGetPcieReplayCounter(Device Device, Value *uint32) Return {
  function nvmlDeviceGetClockInfo (line 546) | func nvmlDeviceGetClockInfo(Device Device, _type ClockType, Clock *uint3...
  function nvmlDeviceGetMaxClockInfo (line 556) | func nvmlDeviceGetMaxClockInfo(Device Device, _type ClockType, Clock *ui...
  function nvmlDeviceGetApplicationsClock (line 566) | func nvmlDeviceGetApplicationsClock(Device Device, ClockType ClockType, ...
  function nvmlDeviceGetDefaultApplicationsClock (line 576) | func nvmlDeviceGetDefaultApplicationsClock(Device Device, ClockType Cloc...
  function nvmlDeviceResetApplicationsClocks (line 586) | func nvmlDeviceResetApplicationsClocks(Device Device) Return {
  function nvmlDeviceGetClock (line 594) | func nvmlDeviceGetClock(Device Device, ClockType ClockType, ClockId Cloc...
  function nvmlDeviceGetMaxCustomerBoostClock (line 605) | func nvmlDeviceGetMaxCustomerBoostClock(Device Device, ClockType ClockTy...
  function nvmlDeviceGetSupportedMemoryClocks (line 615) | func nvmlDeviceGetSupportedMemoryClocks(Device Device, Count *uint32, Cl...
  function nvmlDeviceGetSupportedGraphicsClocks (line 625) | func nvmlDeviceGetSupportedGraphicsClocks(Device Device, MemoryClockMHz ...
  function nvmlDeviceGetAutoBoostedClocksEnabled (line 636) | func nvmlDeviceGetAutoBoostedClocksEnabled(Device Device, IsEnabled *Ena...
  function nvmlDeviceSetAutoBoostedClocksEnabled (line 646) | func nvmlDeviceSetAutoBoostedClocksEnabled(Device Device, Enabled Enable...
  function nvmlDeviceSetDefaultAutoBoostedClocksEnabled (line 655) | func nvmlDeviceSetDefaultAutoBoostedClocksEnabled(Device Device, Enabled...
  function nvmlDeviceGetFanSpeed (line 665) | func nvmlDeviceGetFanSpeed(Device Device, Speed *uint32) Return {
  function nvmlDeviceGetFanSpeed_v2 (line 674) | func nvmlDeviceGetFanSpeed_v2(Device Device, Fan uint32, Speed *uint32) ...
  function nvmlDeviceGetTargetFanSpeed (line 684) | func nvmlDeviceGetTargetFanSpeed(Device Device, Fan uint32, TargetSpeed ...
  function nvmlDeviceSetDefaultFanSpeed_v2 (line 694) | func nvmlDeviceSetDefaultFanSpeed_v2(Device Device, Fan uint32) Return {
  function nvmlDeviceGetMinMaxFanSpeed (line 703) | func nvmlDeviceGetMinMaxFanSpeed(Device Device, MinSpeed *uint32, MaxSpe...
  function nvmlDeviceGetFanControlPolicy_v2 (line 713) | func nvmlDeviceGetFanControlPolicy_v2(Device Device, Fan uint32, Policy ...
  function nvmlDeviceSetFanControlPolicy (line 723) | func nvmlDeviceSetFanControlPolicy(Device Device, Fan uint32, Policy Fan...
  function nvmlDeviceGetNumFans (line 733) | func nvmlDeviceGetNumFans(Device Device, NumFans *uint32) Return {
  function nvmlDeviceGetTemperature (line 742) | func nvmlDeviceGetTemperature(Device Device, SensorType TemperatureSenso...
  function nvmlDeviceGetTemperatureThreshold (line 752) | func nvmlDeviceGetTemperatureThreshold(Device Device, ThresholdType Temp...
  function nvmlDeviceSetTemperatureThreshold (line 762) | func nvmlDeviceSetTemperatureThreshold(Device Device, ThresholdType Temp...
  function nvmlDeviceGetThermalSettings (line 772) | func nvmlDeviceGetThermalSettings(Device Device, SensorIndex uint32, PTh...
  function nvmlDeviceGetPerformanceState (line 782) | func nvmlDeviceGetPerformanceState(Device Device, PState *Pstates) Return {
  function nvmlDeviceGetCurrentClocksThrottleReasons (line 791) | func nvmlDeviceGetCurrentClocksThrottleReasons(Device Device, ClocksThro...
  function nvmlDeviceGetSupportedClocksThrottleReasons (line 800) | func nvmlDeviceGetSupportedClocksThrottleReasons(Device Device, Supporte...
  function nvmlDeviceGetPowerState (line 809) | func nvmlDeviceGetPowerState(Device Device, PState *Pstates) Return {
  function nvmlDeviceGetPowerManagementMode (line 818) | func nvmlDeviceGetPowerManagementMode(Device Device, Mode *EnableState) ...
  function nvmlDeviceGetPowerManagementLimit (line 827) | func nvmlDeviceGetPowerManagementLimit(Device Device, Limit *uint32) Ret...
  function nvmlDeviceGetPowerManagementLimitConstraints (line 836) | func nvmlDeviceGetPowerManagementLimitConstraints(Device Device, MinLimi...
  function nvmlDeviceGetPowerManagementDefaultLimit (line 846) | func nvmlDeviceGetPowerManagementDefaultLimit(Device Device, DefaultLimi...
  function nvmlDeviceGetPowerUsage (line 855) | func nvmlDeviceGetPowerUsage(Device Device, Power *uint32) Return {
  function nvmlDeviceGetTotalEnergyConsumption (line 864) | func nvmlDeviceGetTotalEnergyConsumption(Device Device, Energy *uint64) ...
  function nvmlDeviceGetEnforcedPowerLimit (line 873) | func nvmlDeviceGetEnforcedPowerLimit(Device Device, Limit *uint32) Return {
  function nvmlDeviceGetGpuOperationMode (line 882) | func nvmlDeviceGetGpuOperationMode(Device Device, Current *GpuOperationM...
  function nvmlDeviceGetMemoryInfo (line 892) | func nvmlDeviceGetMemoryInfo(Device Device, Memory *Memory) Return {
  function nvmlDeviceGetMemoryInfo_v2 (line 901) | func nvmlDeviceGetMemoryInfo_v2(Device Device, Memory *Memory_v2) Return {
  function nvmlDeviceGetComputeMode (line 910) | func nvmlDeviceGetComputeMode(Device Device, Mode *ComputeMode) Return {
  function nvmlDeviceGetCudaComputeCapability (line 919) | func nvmlDeviceGetCudaComputeCapability(Device Device, Major *int32, Min...
  function nvmlDeviceGetEccMode (line 929) | func nvmlDeviceGetEccMode(Device Device, Current *EnableState, Pending *...
  function nvmlDeviceGetDefaultEccMode (line 939) | func nvmlDeviceGetDefaultEccMode(Device Device, DefaultMode *EnableState...
  function nvmlDeviceGetBoardId (line 948) | func nvmlDeviceGetBoardId(Device Device, BoardId *uint32) Return {
  function nvmlDeviceGetMultiGpuBoard (line 957) | func nvmlDeviceGetMultiGpuBoard(Device Device, MultiGpuBool *uint32) Ret...
  function nvmlDeviceGetTotalEccErrors (line 966) | func nvmlDeviceGetTotalEccErrors(Device Device, ErrorType MemoryErrorTyp...
  function nvmlDeviceGetDetailedEccErrors (line 977) | func nvmlDeviceGetDetailedEccErrors(Device Device, ErrorType MemoryError...
  function nvmlDeviceGetMemoryErrorCounter (line 988) | func nvmlDeviceGetMemoryErrorCounter(Device Device, ErrorType MemoryErro...
  function nvmlDeviceGetUtilizationRates (line 1000) | func nvmlDeviceGetUtilizationRates(Device Device, Utilization *Utilizati...
  function nvmlDeviceGetEncoderUtilization (line 1009) | func nvmlDeviceGetEncoderUtilization(Device Device, Utilization *uint32,...
  function nvmlDeviceGetEncoderCapacity (line 1019) | func nvmlDeviceGetEncoderCapacity(Device Device, EncoderQueryType Encode...
  function nvmlDeviceGetEncoderStats (line 1029) | func nvmlDeviceGetEncoderStats(Device Device, SessionCount *uint32, Aver...
  function nvmlDeviceGetEncoderSessions (line 1040) | func nvmlDeviceGetEncoderSessions(Device Device, SessionCount *uint32, S...
  function nvmlDeviceGetDecoderUtilization (line 1050) | func nvmlDeviceGetDecoderUtilization(Device Device, Utilization *uint32,...
  function nvmlDeviceGetFBCStats (line 1060) | func nvmlDeviceGetFBCStats(Device Device, FbcStats *FBCStats) Return {
  function nvmlDeviceGetFBCSessions (line 1069) | func nvmlDeviceGetFBCSessions(Device Device, SessionCount *uint32, Sessi...
  function nvmlDeviceGetDriverModel (line 1079) | func nvmlDeviceGetDriverModel(Device Device, Current *DriverModel, Pendi...
  function nvmlDeviceGetVbiosVersion (line 1089) | func nvmlDeviceGetVbiosVersion(Device Device, Version *byte, Length uint...
  function nvmlDeviceGetBridgeChipInfo (line 1099) | func nvmlDeviceGetBridgeChipInfo(Device Device, BridgeHierarchy *BridgeC...
  function nvmlDeviceGetComputeRunningProcesses_v3 (line 1108) | func nvmlDeviceGetComputeRunningProcesses_v3(Device Device, InfoCount *u...
  function nvmlDeviceGetGraphicsRunningProcesses_v3 (line 1118) | func nvmlDeviceGetGraphicsRunningProcesses_v3(Device Device, InfoCount *...
  function nvmlDeviceGetMPSComputeRunningProcesses_v3 (line 1128) | func nvmlDeviceGetMPSComputeRunningProcesses_v3(Device Device, InfoCount...
  function nvmlDeviceOnSameBoard (line 1138) | func nvmlDeviceOnSameBoard(Device1 Device, Device2 Device, OnSameBoard *...
  function nvmlDeviceGetAPIRestriction (line 1148) | func nvmlDeviceGetAPIRestriction(Device Device, ApiType RestrictedAPI, I...
  function nvmlDeviceGetSamples (line 1158) | func nvmlDeviceGetSamples(Device Device, _type SamplingType, LastSeenTim...
  function nvmlDeviceGetBAR1MemoryInfo (line 1171) | func nvmlDeviceGetBAR1MemoryInfo(Device Device, Bar1Memory *BAR1Memory) ...
  function nvmlDeviceGetViolationStatus (line 1180) | func nvmlDeviceGetViolationStatus(Device Device, PerfPolicyType PerfPoli...
  function nvmlDeviceGetIrqNum (line 1190) | func nvmlDeviceGetIrqNum(Device Device, IrqNum *uint32) Return {
  function nvmlDeviceGetNumGpuCores (line 1199) | func nvmlDeviceGetNumGpuCores(Device Device, NumCores *uint32) Return {
  function nvmlDeviceGetPowerSource (line 1208) | func nvmlDeviceGetPowerSource(Device Device, PowerSource *PowerSource) R...
  function nvmlDeviceGetMemoryBusWidth (line 1217) | func nvmlDeviceGetMemoryBusWidth(Device Device, BusWidth *uint32) Return {
  function nvmlDeviceGetPcieLinkMaxSpeed (line 1226) | func nvmlDeviceGetPcieLinkMaxSpeed(Device Device, MaxSpeed *uint32) Retu...
  function nvmlDeviceGetPcieSpeed (line 1235) | func nvmlDeviceGetPcieSpeed(Device Device, PcieSpeed *uint32) Return {
  function nvmlDeviceGetAdaptiveClockInfoStatus (line 1244) | func nvmlDeviceGetAdaptiveClockInfoStatus(Device Device, AdaptiveClockSt...
  function nvmlDeviceGetAccountingMode (line 1253) | func nvmlDeviceGetAccountingMode(Device Device, Mode *EnableState) Return {
  function nvmlDeviceGetAccountingStats (line 1262) | func nvmlDeviceGetAccountingStats(Device Device, Pid uint32, Stats *Acco...
  function nvmlDeviceGetAccountingPids (line 1272) | func nvmlDeviceGetAccountingPids(Device Device, Count *uint32, Pids *uin...
  function nvmlDeviceGetAccountingBufferSize (line 1282) | func nvmlDeviceGetAccountingBufferSize(Device Device, BufferSize *uint32...
  function nvmlDeviceGetRetiredPages (line 1291) | func nvmlDeviceGetRetiredPages(Device Device, Cause PageRetirementCause,...
  function nvmlDeviceGetRetiredPages_v2 (line 1302) | func nvmlDeviceGetRetiredPages_v2(Device Device, Cause PageRetirementCau...
  function nvmlDeviceGetRetiredPagesPendingStatus (line 1314) | func nvmlDeviceGetRetiredPagesPendingStatus(Device Device, IsPending *En...
  function nvmlDeviceGetRemappedRows (line 1323) | func nvmlDeviceGetRemappedRows(Device Device, CorrRows *uint32, UncRows ...
  function nvmlDeviceGetRowRemapperHistogram (line 1335) | func nvmlDeviceGetRowRemapperHistogram(Device Device, Values *RowRemappe...
  function nvmlDeviceGetArchitecture (line 1344) | func nvmlDeviceGetArchitecture(Device Device, Arch *DeviceArchitecture) ...
  function nvmlUnitSetLedState (line 1353) | func nvmlUnitSetLedState(Unit Unit, Color LedColor) Return {
  function nvmlDeviceSetPersistenceMode (line 1362) | func nvmlDeviceSetPersistenceMode(Device Device, Mode EnableState) Return {
  function nvmlDeviceSetComputeMode (line 1371) | func nvmlDeviceSetComputeMode(Device Device, Mode ComputeMode) Return {
  function nvmlDeviceSetEccMode (line 1380) | func nvmlDeviceSetEccMode(Device Device, Ecc EnableState) Return {
  function nvmlDeviceClearEccErrorCounts (line 1389) | func nvmlDeviceClearEccErrorCounts(Device Device, CounterType EccCounter...
  function nvmlDeviceSetDriverModel (line 1398) | func nvmlDeviceSetDriverModel(Device Device, DriverModel DriverModel, Fl...
  function nvmlDeviceSetGpuLockedClocks (line 1408) | func nvmlDeviceSetGpuLockedClocks(Device Device, MinGpuClockMHz uint32, ...
  function nvmlDeviceResetGpuLockedClocks (line 1418) | func nvmlDeviceResetGpuLockedClocks(Device Device) Return {
  function nvmlDeviceSetMemoryLockedClocks (line 1426) | func nvmlDeviceSetMemoryLockedClocks(Device Device, MinMemClockMHz uint3...
  function nvmlDeviceResetMemoryLockedClocks (line 1436) | func nvmlDeviceResetMemoryLockedClocks(Device Device) Return {
  function nvmlDeviceSetApplicationsClocks (line 1444) | func nvmlDeviceSetApplicationsClocks(Device Device, MemClockMHz uint32, ...
  function nvmlDeviceGetClkMonStatus (line 1454) | func nvmlDeviceGetClkMonStatus(Device Device, Status *ClkMonStatus) Retu...
  function nvmlDeviceSetPowerManagementLimit (line 1463) | func nvmlDeviceSetPowerManagementLimit(Device Device, Limit uint32) Retu...
  function nvmlDeviceSetGpuOperationMode (line 1472) | func nvmlDeviceSetGpuOperationMode(Device Device, Mode GpuOperationMode)...
  function nvmlDeviceSetAPIRestriction (line 1481) | func nvmlDeviceSetAPIRestriction(Device Device, ApiType RestrictedAPI, I...
  function nvmlDeviceSetAccountingMode (line 1491) | func nvmlDeviceSetAccountingMode(Device Device, Mode EnableState) Return {
  function nvmlDeviceClearAccountingPids (line 1500) | func nvmlDeviceClearAccountingPids(Device Device) Return {
  function nvmlDeviceGetNvLinkState (line 1508) | func nvmlDeviceGetNvLinkState(Device Device, Link uint32, IsActive *Enab...
  function nvmlDeviceGetNvLinkVersion (line 1518) | func nvmlDeviceGetNvLinkVersion(Device Device, Link uint32, Version *uin...
  function nvmlDeviceGetNvLinkCapability (line 1528) | func nvmlDeviceGetNvLinkCapability(Device Device, Link uint32, Capabilit...
  function nvmlDeviceGetNvLinkRemotePciInfo_v2 (line 1539) | func nvmlDeviceGetNvLinkRemotePciInfo_v2(Device Device, Link uint32, Pci...
  function nvmlDeviceGetNvLinkErrorCounter (line 1549) | func nvmlDeviceGetNvLinkErrorCounter(Device Device, Link uint32, Counter...
  function nvmlDeviceResetNvLinkErrorCounters (line 1560) | func nvmlDeviceResetNvLinkErrorCounters(Device Device, Link uint32) Retu...
  function nvmlDeviceSetNvLinkUtilizationControl (line 1569) | func nvmlDeviceSetNvLinkUtilizationControl(Device Device, Link uint32, C...
  function nvmlDeviceGetNvLinkUtilizationControl (line 1581) | func nvmlDeviceGetNvLinkUtilizationControl(Device Device, Link uint32, C...
  function nvmlDeviceGetNvLinkUtilizationCounter (line 1592) | func nvmlDeviceGetNvLinkUtilizationCounter(Device Device, Link uint32, C...
  function nvmlDeviceFreezeNvLinkUtilizationCounter (line 1604) | func nvmlDeviceFreezeNvLinkUtilizationCounter(Device Device, Link uint32...
  function nvmlDeviceResetNvLinkUtilizationCounter (line 1615) | func nvmlDeviceResetNvLinkUtilizationCounter(Device Device, Link uint32,...
  function nvmlDeviceGetNvLinkRemoteDeviceType (line 1625) | func nvmlDeviceGetNvLinkRemoteDeviceType(Device Device, Link uint32, PNv...
  function nvmlEventSetCreate (line 1635) | func nvmlEventSetCreate(Set *EventSet) Return {
  function nvmlDeviceRegisterEvents (line 1643) | func nvmlDeviceRegisterEvents(Device Device, EventTypes uint64, Set Even...
  function nvmlDeviceGetSupportedEventTypes (line 1653) | func nvmlDeviceGetSupportedEventTypes(Device Device, EventTypes *uint64)...
  function nvmlEventSetWait_v2 (line 1662) | func nvmlEventSetWait_v2(Set EventSet, Data *EventData, Timeoutms uint32...
  function nvmlEventSetFree (line 1672) | func nvmlEventSetFree(Set EventSet) Return {
  function nvmlDeviceModifyDrainState (line 1680) | func nvmlDeviceModifyDrainState(PciInfo *PciInfo, NewState EnableState) ...
  function nvmlDeviceQueryDrainState (line 1689) | func nvmlDeviceQueryDrainState(PciInfo *PciInfo, CurrentState *EnableSta...
  function nvmlDeviceRemoveGpu_v2 (line 1698) | func nvmlDeviceRemoveGpu_v2(PciInfo *PciInfo, GpuState DetachGpuState, L...
  function nvmlDeviceDiscoverGpus (line 1708) | func nvmlDeviceDiscoverGpus(PciInfo *PciInfo) Return {
  function nvmlDeviceGetFieldValues (line 1716) | func nvmlDeviceGetFieldValues(Device Device, ValuesCount int32, Values *...
  function nvmlDeviceClearFieldValues (line 1726) | func nvmlDeviceClearFieldValues(Device Device, ValuesCount int32, Values...
  function nvmlDeviceGetVirtualizationMode (line 1736) | func nvmlDeviceGetVirtualizationMode(Device Device, PVirtualMode *GpuVir...
  function nvmlDeviceGetHostVgpuMode (line 1745) | func nvmlDeviceGetHostVgpuMode(Device Device, PHostVgpuMode *HostVgpuMod...
  function nvmlDeviceSetVirtualizationMode (line 1754) | func nvmlDeviceSetVirtualizationMode(Device Device, VirtualMode GpuVirtu...
  function nvmlDeviceGetGridLicensableFeatures_v4 (line 1763) | func nvmlDeviceGetGridLicensableFeatures_v4(Device Device, PGridLicensab...
  function nvmlDeviceGetProcessUtilization (line 1772) | func nvmlDeviceGetProcessUtilization(Device Device, Utilization *Process...
  function nvmlDeviceGetGspFirmwareVersion (line 1783) | func nvmlDeviceGetGspFirmwareVersion(Device Device, Version *byte) Return {
  function nvmlDeviceGetGspFirmwareMode (line 1792) | func nvmlDeviceGetGspFirmwareMode(Device Device, IsEnabled *uint32, Defa...
  function nvmlGetVgpuDriverCapabilities (line 1802) | func nvmlGetVgpuDriverCapabilities(Capability VgpuDriverCapability, CapR...
  function nvmlDeviceGetVgpuCapabilities (line 1811) | func nvmlDeviceGetVgpuCapabilities(Device Device, Capability DeviceVgpuC...
  function nvmlDeviceGetSupportedVgpus (line 1821) | func nvmlDeviceGetSupportedVgpus(Device Device, VgpuCount *uint32, VgpuT...
  function nvmlDeviceGetCreatableVgpus (line 1831) | func nvmlDeviceGetCreatableVgpus(Device Device, VgpuCount *uint32, VgpuT...
  function nvmlVgpuTypeGetClass (line 1841) | func nvmlVgpuTypeGetClass(VgpuTypeId VgpuTypeId, VgpuTypeClass *byte, Si...
  function nvmlVgpuTypeGetName (line 1851) | func nvmlVgpuTypeGetName(VgpuTypeId VgpuTypeId, VgpuTypeName *byte, Size...
  function nvmlVgpuTypeGetGpuInstanceProfileId (line 1861) | func nvmlVgpuTypeGetGpuInstanceProfileId(VgpuTypeId VgpuTypeId, GpuInsta...
  function nvmlVgpuTypeGetDeviceID (line 1870) | func nvmlVgpuTypeGetDeviceID(VgpuTypeId VgpuTypeId, DeviceID *uint64, Su...
  function nvmlVgpuTypeGetFramebufferSize (line 1880) | func nvmlVgpuTypeGetFramebufferSize(VgpuTypeId VgpuTypeId, FbSize *uint6...
  function nvmlVgpuTypeGetNumDisplayHeads (line 1889) | func nvmlVgpuTypeGetNumDisplayHeads(VgpuTypeId VgpuTypeId, NumDisplayHea...
  function nvmlVgpuTypeGetResolution (line 1898) | func nvmlVgpuTypeGetResolution(VgpuTypeId VgpuTypeId, DisplayIndex uint3...
  function nvmlVgpuTypeGetLicense (line 1909) | func nvmlVgpuTypeGetLicense(VgpuTypeId VgpuTypeId, VgpuTypeLicenseString...
  function nvmlVgpuTypeGetFrameRateLimit (line 1919) | func nvmlVgpuTypeGetFrameRateLimit(VgpuTypeId VgpuTypeId, FrameRateLimit...
  function nvmlVgpuTypeGetMaxInstances (line 1928) | func nvmlVgpuTypeGetMaxInstances(Device Device, VgpuTypeId VgpuTypeId, V...
  function nvmlVgpuTypeGetMaxInstancesPerVm (line 1938) | func nvmlVgpuTypeGetMaxInstancesPerVm(VgpuTypeId VgpuTypeId, VgpuInstanc...
  function nvmlDeviceGetActiveVgpus (line 1947) | func nvmlDeviceGetActiveVgpus(Device Device, VgpuCount *uint32, VgpuInst...
  function nvmlVgpuInstanceGetVmID (line 1957) | func nvmlVgpuInstanceGetVmID(VgpuInstance VgpuInstance, VmId *byte, Size...
  function nvmlVgpuInstanceGetUUID (line 1968) | func nvmlVgpuInstanceGetUUID(VgpuInstance VgpuInstance, Uuid *byte, Size...
  function nvmlVgpuInstanceGetVmDriverVersion (line 1978) | func nvmlVgpuInstanceGetVmDriverVersion(VgpuInstance VgpuInstance, Versi...
  function nvmlVgpuInstanceGetFbUsage (line 1988) | func nvmlVgpuInstanceGetFbUsage(VgpuInstance VgpuInstance, FbUsage *uint...
  function nvmlVgpuInstanceGetLicenseStatus (line 1997) | func nvmlVgpuInstanceGetLicenseStatus(VgpuInstance VgpuInstance, License...
  function nvmlVgpuInstanceGetType (line 2006) | func nvmlVgpuInstanceGetType(VgpuInstance VgpuInstance, VgpuTypeId *Vgpu...
  function nvmlVgpuInstanceGetFrameRateLimit (line 2015) | func nvmlVgpuInstanceGetFrameRateLimit(VgpuInstance VgpuInstance, FrameR...
  function nvmlVgpuInstanceGetEccMode (line 2024) | func nvmlVgpuInstanceGetEccMode(VgpuInstance VgpuInstance, EccMode *Enab...
  function nvmlVgpuInstanceGetEncoderCapacity (line 2033) | func nvmlVgpuInstanceGetEncoderCapacity(VgpuInstance VgpuInstance, Encod...
  function nvmlVgpuInstanceSetEncoderCapacity (line 2042) | func nvmlVgpuInstanceSetEncoderCapacity(VgpuInstance VgpuInstance, Encod...
  function nvmlVgpuInstanceGetEncoderStats (line 2051) | func nvmlVgpuInstanceGetEncoderStats(VgpuInstance VgpuInstance, SessionC...
  function nvmlVgpuInstanceGetEncoderSessions (line 2062) | func nvmlVgpuInstanceGetEncoderSessions(VgpuInstance VgpuInstance, Sessi...
  function nvmlVgpuInstanceGetFBCStats (line 2072) | func nvmlVgpuInstanceGetFBCStats(VgpuInstance VgpuInstance, FbcStats *FB...
  function nvmlVgpuInstanceGetFBCSessions (line 2081) | func nvmlVgpuInstanceGetFBCSessions(VgpuInstance VgpuInstance, SessionCo...
  function nvmlVgpuInstanceGetGpuInstanceId (line 2091) | func nvmlVgpuInstanceGetGpuInstanceId(VgpuInstance VgpuInstance, GpuInst...
  function nvmlVgpuInstanceGetGpuPciId (line 2100) | func nvmlVgpuInstanceGetGpuPciId(VgpuInstance VgpuInstance, VgpuPciId *b...
  function nvmlVgpuTypeGetCapabilities (line 2110) | func nvmlVgpuTypeGetCapabilities(VgpuTypeId VgpuTypeId, Capability VgpuC...
  function nvmlVgpuInstanceGetMetadata (line 2120) | func nvmlVgpuInstanceGetMetadata(VgpuInstance VgpuInstance, nvmlVgpuMeta...
  function nvmlDeviceGetVgpuMetadata (line 2130) | func nvmlDeviceGetVgpuMetadata(Device Device, PgpuMetadata *nvmlVgpuPgpu...
  function nvmlGetVgpuCompatibility (line 2140) | func nvmlGetVgpuCompatibility(nvmlVgpuMetadata *nvmlVgpuMetadata, PgpuMe...
  function nvmlDeviceGetPgpuMetadataString (line 2150) | func nvmlDeviceGetPgpuMetadataString(Device Device, PgpuMetadata *byte, ...
  function nvmlDeviceGetVgpuSchedulerLog (line 2160) | func nvmlDeviceGetVgpuSchedulerLog(Device Device, PSchedulerLog *VgpuSch...
  function nvmlDeviceGetVgpuSchedulerState (line 2169) | func nvmlDeviceGetVgpuSchedulerState(Device Device, PSchedulerState *Vgp...
  function nvmlDeviceSetVgpuSchedulerState (line 2178) | func nvmlDeviceSetVgpuSchedulerState(Device Device, PSchedulerState *Vgp...
  function nvmlDeviceGetVgpuSchedulerCapabilities (line 2187) | func nvmlDeviceGetVgpuSchedulerCapabilities(Device Device, PCapabilities...
  function nvmlGetVgpuVersion (line 2196) | func nvmlGetVgpuVersion(Supported *VgpuVersion, Current *VgpuVersion) Re...
  function nvmlSetVgpuVersion (line 2205) | func nvmlSetVgpuVersion(VgpuVersion *VgpuVersion) Return {
  function nvmlDeviceGetVgpuUtilization (line 2213) | func nvmlDeviceGetVgpuUtilization(Device Device, LastSeenTimeStamp uint6...
  function nvmlDeviceGetVgpuProcessUtilization (line 2225) | func nvmlDeviceGetVgpuProcessUtilization(Device Device, LastSeenTimeStam...
  function nvmlVgpuInstanceGetAccountingMode (line 2236) | func nvmlVgpuInstanceGetAccountingMode(VgpuInstance VgpuInstance, Mode *...
  function nvmlVgpuInstanceGetAccountingPids (line 2245) | func nvmlVgpuInstanceGetAccountingPids(VgpuInstance VgpuInstance, Count ...
  function nvmlVgpuInstanceGetAccountingStats (line 2255) | func nvmlVgpuInstanceGetAccountingStats(VgpuInstance VgpuInstance, Pid u...
  function nvmlVgpuInstanceClearAccountingPids (line 2265) | func nvmlVgpuInstanceClearAccountingPids(VgpuInstance VgpuInstance) Retu...
  function nvmlVgpuInstanceGetLicenseInfo_v2 (line 2273) | func nvmlVgpuInstanceGetLicenseInfo_v2(VgpuInstance VgpuInstance, Licens...
  function nvmlGetExcludedDeviceCount (line 2282) | func nvmlGetExcludedDeviceCount(DeviceCount *uint32) Return {
  function nvmlGetExcludedDeviceInfoByIndex (line 2290) | func nvmlGetExcludedDeviceInfoByIndex(Index uint32, Info *ExcludedDevice...
  function nvmlDeviceSetMigMode (line 2299) | func nvmlDeviceSetMigMode(Device Device, Mode uint32, ActivationStatus *...
  function nvmlDeviceGetMigMode (line 2309) | func nvmlDeviceGetMigMode(Device Device, CurrentMode *uint32, PendingMod...
  function nvmlDeviceGetGpuInstanceProfileInfo (line 2319) | func nvmlDeviceGetGpuInstanceProfileInfo(Device Device, Profile uint32, ...
  function nvmlDeviceGetGpuInstanceProfileInfoV (line 2329) | func nvmlDeviceGetGpuInstanceProfileInfoV(Device Device, Profile uint32,...
  function nvmlDeviceGetGpuInstancePossiblePlacements_v2 (line 2339) | func nvmlDeviceGetGpuInstancePossiblePlacements_v2(Device Device, Profil...
  function nvmlDeviceGetGpuInstanceRemainingCapacity (line 2350) | func nvmlDeviceGetGpuInstanceRemainingCapacity(Device Device, ProfileId ...
  function nvmlDeviceCreateGpuInstance (line 2360) | func nvmlDeviceCreateGpuInstance(Device Device, ProfileId uint32, GpuIns...
  function nvmlDeviceCreateGpuInstanceWithPlacement (line 2370) | func nvmlDeviceCreateGpuInstanceWithPlacement(Device Device, ProfileId u...
  function nvmlGpuInstanceDestroy (line 2381) | func nvmlGpuInstanceDestroy(GpuInstance GpuInstance) Return {
  function nvmlDeviceGetGpuInstances (line 2389) | func nvmlDeviceGetGpuInstances(Device Device, ProfileId uint32, GpuInsta...
  function nvmlDeviceGetGpuInstanceById (line 2400) | func nvmlDeviceGetGpuInstanceById(Device Device, Id uint32, GpuInstance ...
  function nvmlGpuInstanceGetInfo (line 2410) | func nvmlGpuInstanceGetInfo(GpuInstance GpuInstance, Info *GpuInstanceIn...
  function nvmlGpuInstanceGetComputeInstanceProfileInfo (line 2419) | func nvmlGpuInstanceGetComputeInstanceProfileInfo(GpuInstance GpuInstanc...
  function nvmlGpuInstanceGetComputeInstanceProfileInfoV (line 2430) | func nvmlGpuInstanceGetComputeInstanceProfileInfoV(GpuInstance GpuInstan...
  function nvmlGpuInstanceGetComputeInstanceRemainingCapacity (line 2441) | func nvmlGpuInstanceGetComputeInstanceRemainingCapacity(GpuInstance GpuI...
  function nvmlGpuInstanceGetComputeInstancePossiblePlacements (line 2451) | func nvmlGpuInstanceGetComputeInstancePossiblePlacements(GpuInstance Gpu...
  function nvmlGpuInstanceCreateComputeInstance (line 2462) | func nvmlGpuInstanceCreateComputeInstance(GpuInstance GpuInstance, Profi...
  function nvmlGpuInstanceCreateComputeInstanceWithPlacement (line 2472) | func nvmlGpuInstanceCreateComputeInstanceWithPlacement(GpuInstance GpuIn...
  function nvmlComputeInstanceDestroy (line 2483) | func nvmlComputeInstanceDestroy(ComputeInstance ComputeInstance) Return {
  function nvmlGpuInstanceGetComputeInstances (line 2491) | func nvmlGpuInstanceGetComputeInstances(GpuInstance GpuInstance, Profile...
  function nvmlGpuInstanceGetComputeInstanceById (line 2502) | func nvmlGpuInstanceGetComputeInstanceById(GpuInstance GpuInstance, Id u...
  function nvmlComputeInstanceGetInfo_v2 (line 2512) | func nvmlComputeInstanceGetInfo_v2(ComputeInstance ComputeInstance, Info...
  function nvmlDeviceIsMigDeviceHandle (line 2521) | func nvmlDeviceIsMigDeviceHandle(Device Device, IsMigDevice *uint32) Ret...
  function nvmlDeviceGetGpuInstanceId (line 2530) | func nvmlDeviceGetGpuInstanceId(Device Device, Id *uint32) Return {
  function nvmlDeviceGetComputeInstanceId (line 2539) | func nvmlDeviceGetComputeInstanceId(Device Device, Id *uint32) Return {
  function nvmlDeviceGetMaxMigDeviceCount (line 2548) | func nvmlDeviceGetMaxMigDeviceCount(Device Device, Count *uint32) Return {
  function nvmlDeviceGetMigDeviceHandleByIndex (line 2557) | func nvmlDeviceGetMigDeviceHandleByIndex(Device Device, Index uint32, Mi...
  function nvmlDeviceGetDeviceHandleFromMigDeviceHandle (line 2567) | func nvmlDeviceGetDeviceHandleFromMigDeviceHandle(MigDevice Device, Devi...
  function nvmlDeviceGetBusType (line 2576) | func nvmlDeviceGetBusType(Device Device, _type *BusType) Return {
  function nvmlDeviceGetDynamicPstatesInfo (line 2585) | func nvmlDeviceGetDynamicPstatesInfo(Device Device, PDynamicPstatesInfo ...
  function nvmlDeviceSetFanSpeed_v2 (line 2594) | func nvmlDeviceSetFanSpeed_v2(Device Device, Fan uint32, Speed uint32) R...
  function nvmlDeviceGetGpcClkVfOffset (line 2604) | func nvmlDeviceGetGpcClkVfOffset(Device Device, Offset *int32) Return {
  function nvmlDeviceSetGpcClkVfOffset (line 2613) | func nvmlDeviceSetGpcClkVfOffset(Device Device, Offset int32) Return {
  function nvmlDeviceGetMemClkVfOffset (line 2622) | func nvmlDeviceGetMemClkVfOffset(Device Device, Offset *int32) Return {
  function nvmlDeviceSetMemClkVfOffset (line 2631) | func nvmlDeviceSetMemClkVfOffset(Device Device, Offset int32) Return {
  function nvmlDeviceGetMinMaxClockOfPState (line 2640) | func nvmlDeviceGetMinMaxClockOfPState(Device Device, _type ClockType, Ps...
  function nvmlDeviceGetSupportedPerformanceStates (line 2652) | func nvmlDeviceGetSupportedPerformanceStates(Device Device, Pstates *Pst...
  function nvmlDeviceGetGpcClkMinMaxVfOffset (line 2662) | func nvmlDeviceGetGpcClkMinMaxVfOffset(Device Device, MinOffset *int32, ...
  function nvmlDeviceGetMemClkMinMaxVfOffset (line 2672) | func nvmlDeviceGetMemClkMinMaxVfOffset(Device Device, MinOffset *int32, ...
  function nvmlDeviceGetGpuFabricInfo (line 2682) | func nvmlDeviceGetGpuFabricInfo(Device Device, GpuFabricInfo *GpuFabricI...
  function nvmlGpmMetricsGet (line 2691) | func nvmlGpmMetricsGet(MetricsGet *GpmMetricsGetType) Return {
  function nvmlGpmSampleFree (line 2699) | func nvmlGpmSampleFree(GpmSample GpmSample) Return {
  function nvmlGpmSampleAlloc (line 2707) | func nvmlGpmSampleAlloc(GpmSample *GpmSample) Return {
  function nvmlGpmSampleGet (line 2715) | func nvmlGpmSampleGet(Device Device, GpmSample GpmSample) Return {
  function nvmlGpmMigSampleGet (line 2724) | func nvmlGpmMigSampleGet(Device Device, GpuInstanceId uint32, GpmSample ...
  function nvmlGpmQueryDeviceSupport (line 2734) | func nvmlGpmQueryDeviceSupport(Device Device, GpmSupport *GpmSupport) Re...
  function nvmlDeviceCcuGetStreamState (line 2743) | func nvmlDeviceCcuGetStreamState(Device Device, State *uint32) Return {
  function nvmlDeviceCcuSetStreamState (line 2752) | func nvmlDeviceCcuSetStreamState(Device Device, State uint32) Return {
  function nvmlDeviceSetNvLinkDeviceLowPowerThreshold (line 2761) | func nvmlDeviceSetNvLinkDeviceLowPowerThreshold(Device Device, Info *NvL...
  function nvmlInit_v1 (line 2770) | func nvmlInit_v1() Return {
  function nvmlDeviceGetCount_v1 (line 2777) | func nvmlDeviceGetCount_v1(DeviceCount *uint32) Return {
  function nvmlDeviceGetHandleByIndex_v1 (line 2785) | func nvmlDeviceGetHandleByIndex_v1(Index uint32, Device *Device) Return {
  function nvmlDeviceGetHandleByPciBusId_v1 (line 2794) | func nvmlDeviceGetHandleByPciBusId_v1(PciBusId string, Device *Device) R...
  function nvmlDeviceGetPciInfo_v1 (line 2803) | func nvmlDeviceGetPciInfo_v1(Device Device, Pci *PciInfo) Return {
  function nvmlDeviceGetPciInfo_v2 (line 2812) | func nvmlDeviceGetPciInfo_v2(Device Device, Pci *PciInfo) Return {
  function nvmlDeviceGetNvLinkRemotePciInfo_v1 (line 2821) | func nvmlDeviceGetNvLinkRemotePciInfo_v1(Device Device, Link uint32, Pci...
  function nvmlDeviceGetGridLicensableFeatures_v1 (line 2831) | func nvmlDeviceGetGridLicensableFeatures_v1(Device Device, PGridLicensab...
  function nvmlDeviceGetGridLicensableFeatures_v2 (line 2840) | func nvmlDeviceGetGridLicensableFeatures_v2(Device Device, PGridLicensab...
  function nvmlDeviceGetGridLicensableFeatures_v3 (line 2849) | func nvmlDeviceGetGridLicensableFeatures_v3(Device Device, PGridLicensab...
  function nvmlDeviceRemoveGpu_v1 (line 2858) | func nvmlDeviceRemoveGpu_v1(PciInfo *PciInfo) Return {
  function nvmlEventSetWait_v1 (line 2866) | func nvmlEventSetWait_v1(Set EventSet, Data *EventData, Timeoutms uint32...
  function nvmlDeviceGetAttributes_v1 (line 2876) | func nvmlDeviceGetAttributes_v1(Device Device, Attributes *DeviceAttribu...
  function nvmlComputeInstanceGetInfo_v1 (line 2885) | func nvmlComputeInstanceGetInfo_v1(ComputeInstance ComputeInstance, Info...
  function nvmlDeviceGetComputeRunningProcesses_v1 (line 2894) | func nvmlDeviceGetComputeRunningProcesses_v1(Device Device, InfoCount *u...
  function nvmlDeviceGetComputeRunningProcesses_v2 (line 2904) | func nvmlDeviceGetComputeRunningProcesses_v2(Device Device, InfoCount *u...
  function nvmlDeviceGetGraphicsRunningProcesses_v1 (line 2914) | func nvmlDeviceGetGraphicsRunningProcesses_v1(Device Device, InfoCount *...
  function nvmlDeviceGetGraphicsRunningProcesses_v2 (line 2924) | func nvmlDeviceGetGraphicsRunningProcesses_v2(Device Device, InfoCount *...
  function nvmlDeviceGetMPSComputeRunningProcesses_v1 (line 2934) | func nvmlDeviceGetMPSComputeRunningProcesses_v1(Device Device, InfoCount...
  function nvmlDeviceGetMPSComputeRunningProcesses_v2 (line 2944) | func nvmlDeviceGetMPSComputeRunningProcesses_v2(Device Device, InfoCount...
  function nvmlDeviceGetGpuInstancePossiblePlacements_v1 (line 2954) | func nvmlDeviceGetGpuInstancePossiblePlacements_v1(Device Device, Profil...
  function nvmlVgpuInstanceGetLicenseInfo_v1 (line 2965) | func nvmlVgpuInstanceGetLicenseInfo_v1(VgpuInstance VgpuInstance, Licens...

FILE: vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h
  type nvmlDevice_t (line 146) | typedef struct
  type nvmlPciInfo_t (line 164) | typedef struct nvmlPciInfo_st
  type nvmlEccErrorCounts_t (line 201) | typedef struct nvmlEccErrorCounts_st
  type nvmlUtilization_t (line 213) | typedef struct nvmlUtilization_st
  type nvmlMemory_t (line 223) | typedef struct nvmlMemory_st
  type nvmlMemory_v2_t (line 237) | typedef struct nvmlMemory_v2_st
  type nvmlBAR1Memory_t (line 251) | typedef struct nvmlBAR1Memory_st
  type nvmlProcessInfo_v1_t (line 262) | typedef struct nvmlProcessInfo_v1_st
  type nvmlProcessInfo_v2_t (line 273) | typedef struct nvmlProcessInfo_v2_st
  type nvmlProcessInfo_t (line 289) | typedef struct nvmlProcessInfo_st
  type nvmlDeviceAttributes_t (line 301) | typedef struct nvmlDeviceAttributes_st
  type nvmlRowRemapperHistogramValues_t (line 320) | typedef struct nvmlRowRemapperHistogramValues_st
  type nvmlBridgeChipType_t (line 332) | typedef enum nvmlBridgeChipType_enum
  type nvmlNvLinkUtilizationCountUnits_t (line 346) | typedef enum nvmlNvLinkUtilizationCountUnits_enum
  type nvmlNvLinkUtilizationCountPktTypes_t (line 363) | typedef enum nvmlNvLinkUtilizationCountPktTypes_enum
  type nvmlNvLinkUtilizationControl_t (line 379) | typedef struct nvmlNvLinkUtilizationControl_st
  type nvmlNvLinkCapability_t (line 388) | typedef enum nvmlNvLinkCapability_enum
  type nvmlNvLinkErrorCounter_t (line 403) | typedef enum nvmlNvLinkErrorC
Copy disabled (too large) Download .json
Condensed preview — 3691 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (49,171K chars).
[
  {
    "path": ".github/dependabot.yml",
    "chars": 1332,
    "preview": "# Copyright 2022 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this f"
  },
  {
    "path": ".github/workflows/go_tests.yml",
    "chars": 628,
    "preview": "name: Go lint and test\non:\n  push:\n    branches:\n      - master\n  pull_request:\njobs:\n  build:\n    runs-on: ubuntu-lates"
  },
  {
    "path": ".prow.yaml",
    "chars": 781,
    "preview": "presubmits:\n- name: googlecloudplatform-container-engine-accelerators-build\n  always_run: true\n  decorate: true\n  cluste"
  },
  {
    "path": ".travis.yml",
    "chars": 137,
    "preview": "language: go\n\ngo:\n  - 1.9\n\nscript:\n  - make presubmit\n  - make test\n\nnotifications:\n  email:\n    on_success: never\n    o"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 969,
    "preview": "# How to Contribute\n\nWe'd love to accept your patches and contributions to this project. There are\njust a few small guid"
  },
  {
    "path": "Dockerfile",
    "chars": 1682,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "Gopkg.toml",
    "chars": 879,
    "preview": "\n# Gopkg.toml example\n#\n# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md\n# for detailed Gopkg.tom"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Makefile",
    "chars": 3761,
    "preview": "# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "README.md",
    "chars": 426,
    "preview": "# Hardware Accelerators in GKE\n\nThis repository is a collection of installation recipes and integration utilities for co"
  },
  {
    "path": "VERSION",
    "chars": 7,
    "preview": "1.35.0\n"
  },
  {
    "path": "asapd-lite-installer/asapd-lite-installer-a4x-max-bm-cos.yaml",
    "chars": 5128,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: asapd-lite\n  namespace: kube-system\n  labels:\n    k8s-app: asapd-l"
  },
  {
    "path": "build/boilerplate/boilerplate.go.txt",
    "chars": 609,
    "preview": "// Copyright YEAR Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "build/boilerplate/boilerplate.py",
    "chars": 4810,
    "preview": "#!/usr/bin/env python\n\n# Copyright 2016 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "build/boilerplate/boilerplate.py.txt",
    "chars": 619,
    "preview": "#!/usr/bin/env python\n\n# Copyright YEAR Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "build/boilerplate/boilerplate.sh.txt",
    "chars": 596,
    "preview": "# Copyright YEAR Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "build/check_boilerplate.sh",
    "chars": 968,
    "preview": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \""
  },
  {
    "path": "build/check_errorf.sh",
    "chars": 868,
    "preview": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \""
  },
  {
    "path": "build/check_gofmt.sh",
    "chars": 967,
    "preview": "#!/bin/bash\n\n# Copyright 2015 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \""
  },
  {
    "path": "cmd/nvidia_gpu/README.md",
    "chars": 2168,
    "preview": "Kubernetes Device Plugin for NVIDIA GPUs\n----------------------------------------\n\nThis directory contains the code for "
  },
  {
    "path": "cmd/nvidia_gpu/device-plugin.yaml",
    "chars": 3151,
    "preview": "# NOTE: This file is not the source of truth for GKE device plugins. Modifying this file would have no effect on GKE clu"
  },
  {
    "path": "cmd/nvidia_gpu/nvidia_gpu.go",
    "chars": 7555,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "cmd/nvidia_gpu/rbac.yaml",
    "chars": 1476,
    "preview": "# Copyright 2018 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "daemonset.yaml",
    "chars": 3194,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "demo/device-plugin-health-monitoring-enabled.yaml",
    "chars": 2134,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nvidia-gpu-device-plugin\n  namespace: kube-system\n  labels:\n    k8"
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/Dockerfile",
    "chars": 1270,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/README",
    "chars": 74,
    "preview": "This demo will trigger illegal memory access error (Xid 31) when running.\n"
  },
  {
    "path": "demo/gpu-error/illegal-memory-access/vectorAdd.cu",
    "chars": 3074,
    "preview": "/* Copyright 2017 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "demo/gpu-training/generate_job.sh",
    "chars": 2409,
    "preview": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "demo/image-prepull-ds.yaml",
    "chars": 2408,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: image-prepull\nspec:\n  selector:\n    matchLabels:\n      app: image-"
  },
  {
    "path": "demo/minikube/pv.yaml",
    "chars": 215,
    "preview": "apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: nfs\nspec:\n  capacity:\n    storage: 100Gi\n  accessModes:\n    - Re"
  },
  {
    "path": "demo/minikube/pvc.yaml",
    "chars": 173,
    "preview": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: nfs\nspec:\n  accessModes:\n  - ReadWriteMany\n  storageClassNa"
  },
  {
    "path": "demo/minikube/resnet-gpu.yaml",
    "chars": 2027,
    "preview": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "demo/serving/load_generator.yaml",
    "chars": 1284,
    "preview": "# Copyright 2018 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this f"
  },
  {
    "path": "demo/serving/tensorflow-serving.yaml",
    "chars": 2829,
    "preview": "# Copyright 2018 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this f"
  },
  {
    "path": "demo/tpu-training/inception-v3-tpu.yaml",
    "chars": 2932,
    "preview": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "demo/tpu-training/resnet-tpu.yaml",
    "chars": 2901,
    "preview": "# Copyright 2018 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "example/cuda-mps/Dockerfile",
    "chars": 128,
    "preview": "# Basic Dockerfile\nFROM nvidia/cuda:11.7.1-base-ubuntu22.04\n\nCOPY cuda_mem_and_sm_count /tmp\nCMD [\"/tmp/cuda_mem_and_sm_"
  },
  {
    "path": "example/cuda-mps/Makefile",
    "chars": 230,
    "preview": "CUDA_BIN_PATH=/usr/local/cuda/bin\nCC=$(CUDA_BIN_PATH)/nvcc\nCUDA_MEM_GET_INFO=cuda_mem_and_sm_count\nLINK_OPTS=\n\nall: $(CU"
  },
  {
    "path": "example/cuda-mps/cuda_mem_and_sm_count.c",
    "chars": 2015,
    "preview": "#include <cuda.h>\n#include <cuda_runtime.h>\n\n#include <dlfcn.h>\n#include <errno.h>\n#include <stdio.h>\n#include <stdlib.h"
  },
  {
    "path": "example/tensorflow-notebook/README.md",
    "chars": 873,
    "preview": "# Jupyter Notebook Scientific Python Stack + Tensorflow with GPU\n\n## What it Gives You\n\n* Tensorflow for Python 2.7 and "
  },
  {
    "path": "example/tensorflow-notebook/tensorflow-notebook.yaml",
    "chars": 1703,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "fast-socket-installer/README.md",
    "chars": 648,
    "preview": "# NCCL Fast Socket Installer\nNCCL Fast Socket is a transport layer plugin to improve NCCL collective\ncommunication perfo"
  },
  {
    "path": "fast-socket-installer/fast-socket-installer.yaml",
    "chars": 1793,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-fastsocket-manual-installer\n  namespace: kube-system\n  labels"
  },
  {
    "path": "fast-socket-installer/image/Dockerfile",
    "chars": 512,
    "preview": "FROM gcr.io/gke-release/debian-base:bookworm-v1.0.7-gke.2\n\nRUN apt-get update && \\\n    apt-get install -y --no-install-r"
  },
  {
    "path": "fast-socket-installer/image/README.md",
    "chars": 331,
    "preview": "# NCCL Fast Socket Installer Image\n\nThe Dockerfile downloads and installs a specific stable release of NCCL Fast\nSocket "
  },
  {
    "path": "gke-topology-scheduler/README.md",
    "chars": 1936,
    "preview": "## Overview\n\nThis document gives instructions on how to enable topology in GKE clusters on\nA3M & A3U machines clusters.\n"
  },
  {
    "path": "gke-topology-scheduler/label-nodes-daemon.py",
    "chars": 2118,
    "preview": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "gke-topology-scheduler/label-nodes-daemon.yaml",
    "chars": 794,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: label-nodes-daemon\n  namespace: kube-system\nspec:\n  selector:\n    "
  },
  {
    "path": "gke-topology-scheduler/schedule-daemon.py",
    "chars": 26119,
    "preview": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "gke-topology-scheduler/schedule-daemon.yaml",
    "chars": 1015,
    "preview": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: topology-scheduler\n  labels:\n    app: topology-scheduler\n  namesp"
  },
  {
    "path": "gke-topology-scheduler/service-account.yaml",
    "chars": 760,
    "preview": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: topology-scheduler\n  namespace: kube-system\n\n---\napiVersion: rbac."
  },
  {
    "path": "go.mod",
    "chars": 3084,
    "preview": "module github.com/GoogleCloudPlatform/container-engine-accelerators\n\ngo 1.25.8\n\nrequire (\n\tcloud.google.com/go/compute/m"
  },
  {
    "path": "go.sum",
    "chars": 27559,
    "preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go/compute/metadata "
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer-a4x.yaml",
    "chars": 2914,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer-autopilot.yaml",
    "chars": 2743,
    "preview": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-rdma-installer.yaml",
    "chars": 2692,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4-autopilot.yaml",
    "chars": 4314,
    "preview": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4.yaml",
    "chars": 3653,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4x-max-jobset.yaml",
    "chars": 6316,
    "preview": "apiVersion: resource.nvidia.com/v1beta1\nkind: ComputeDomain\nmetadata:\n  name: nccl-test-compute-domain\nspec:\n  numNodes:"
  },
  {
    "path": "gpudirect-rdma/nccl-test-a4x-max.yaml",
    "chars": 3991,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-rdma/nccl-test-autopilot.yaml",
    "chars": 4526,
    "preview": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-test-imex-a4x-max.yaml",
    "chars": 3218,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-rdma/nccl-test-imex-a4x.yaml",
    "chars": 4232,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-rdma/nccl-test-managed-rdma.yaml",
    "chars": 3518,
    "preview": "# Copyright 2026 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-rdma/nccl-test.yaml",
    "chars": 4174,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-tcpx/nccl-config.yaml",
    "chars": 2414,
    "preview": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: nccl-configmap\ndata:\n  allgather.sh: |-\n    #!/bin/bash\n    for script "
  },
  {
    "path": "gpudirect-tcpx/nccl-tcpx-installer-autopilot.yaml",
    "chars": 2140,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpx-installer\n  namespace: gpudirect-system\n  labels:\n    k8"
  },
  {
    "path": "gpudirect-tcpx/nccl-tcpx-installer.yaml",
    "chars": 1989,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpx-installer\n  namespace: kube-system\n  labels:\n    k8s-app"
  },
  {
    "path": "gpudirect-tcpx/nccl-test-latest-autopilot.yaml",
    "chars": 6795,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-tcpx/nccl-test-latest.yaml",
    "chars": 6199,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-tcpx/nccl-test-unprivileged-without-hostnetwork.yaml",
    "chars": 6279,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-tcpx/nccl-test-without-hostnetwork.yaml",
    "chars": 4750,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-tcpx/nccl-test.yaml",
    "chars": 3677,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: nccl-host-1\nspec:\n  selector:\n    name: nccl-host-1\n  clusterIP: None\n---"
  },
  {
    "path": "gpudirect-tcpx/optmem-max-ds.yaml",
    "chars": 1381,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: optmem-max-ds\n  namespace: kube-system\n  labels:\n    k8s-app: optm"
  },
  {
    "path": "gpudirect-tcpx/tcpx-metrics-server.yaml",
    "chars": 1705,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: tcpx-metrics-server\n  namespace: kube-system\n  labels:\n    k8s-app"
  },
  {
    "path": "gpudirect-tcpxo/README.md",
    "chars": 34480,
    "preview": "# GPUDirect-TCPXO Release Notes\nThis release notes updates support for the following GPUDirect-TCPXO components: GKE ver"
  },
  {
    "path": "gpudirect-tcpxo/best-practice.md",
    "chars": 6058,
    "preview": "# Best practice to run workload with GPUDirect-TCPX(O)\n* [Automatic Sidecar Termination](./best-practice.md#automatic-si"
  },
  {
    "path": "gpudirect-tcpxo/cos-enable-kdump.yaml",
    "chars": 3597,
    "preview": "# Copyright 2019 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this f"
  },
  {
    "path": "gpudirect-tcpxo/fix-hostname.yaml",
    "chars": 1780,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: fix-hostname\n  namespace: kube-system\nspec:\n  selector:\n    matchL"
  },
  {
    "path": "gpudirect-tcpxo/nccl-tcpxo-installer-autopilot.yaml",
    "chars": 3390,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpxo-installer\n  namespace: gpudirect-system\n  labels:\n    k"
  },
  {
    "path": "gpudirect-tcpxo/nccl-tcpxo-installer.yaml",
    "chars": 3129,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: nccl-tcpxo-installer\n  namespace: kube-system\n  labels:\n    k8s-ap"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-latest-autopilot.yaml",
    "chars": 7457,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n-"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-latest.yaml",
    "chars": 8560,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "gpudirect-tcpxo/nccl-test-unprivileged-without-hostnetwork.yaml",
    "chars": 7931,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n-"
  },
  {
    "path": "gpudirect-tcpxo/nccl-test.yaml",
    "chars": 4724,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name:  nccl-host-1\nspec:\n  selector:\n    name:  nccl-host-1\n  clusterIP: None\n-"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/README.md",
    "chars": 1883,
    "preview": "## Overview\n\nThis document gives instructions on how to enable topology in GKE clusters.\n\nThe general outline for this t"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.py",
    "chars": 1961,
    "preview": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.yaml",
    "chars": 826,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: label-nodes-daemon\n  namespace: kube-system\nspec:\n  selector:\n    "
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/schedule-daemon.py",
    "chars": 14799,
    "preview": "#!/usr/bin/env python\n\n# Copyright 2024 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version "
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/schedule-daemon.yaml",
    "chars": 982,
    "preview": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: topology-scheduler\n  labels:\n    app: topology-scheduler\n  namesp"
  },
  {
    "path": "gpudirect-tcpxo/topology-scheduler/service-account.yaml",
    "chars": 759,
    "preview": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: topology-scheduler\n  namespace: kube-system\n---\napiVersion: rbac.a"
  },
  {
    "path": "nri_device_injector/Dockerfile",
    "chars": 1304,
    "preview": "# Copyright 2023 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nri_device_injector/README.md",
    "chars": 1327,
    "preview": "# NRI Device Injector Plugin\n\nBased on [containerd NRI](https://github.com/containerd/nri/tree/main) and the [example pl"
  },
  {
    "path": "nri_device_injector/nri-device-injector-autopilot.yaml",
    "chars": 2177,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nri_device_injector/nri-device-injector.yaml",
    "chars": 2320,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nri_device_injector/nri_device_injector.go",
    "chars": 5202,
    "preview": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "nri_device_injector/nri_device_injector_test.go",
    "chars": 4921,
    "preview": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-confidential-latest.yaml",
    "chars": 6373,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-confidential.yaml",
    "chars": 6374,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-nvidia-mig.yaml",
    "chars": 3838,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded-latest-a4x.yaml",
    "chars": 4394,
    "preview": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded-latest.yaml",
    "chars": 4899,
    "preview": "# Copyright 2022 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-preloaded.yaml",
    "chars": 4855,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/daemonset-vgpu-latest.yaml",
    "chars": 5423,
    "preview": "# Copyright 2026 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/cos/kustomization.yaml",
    "chars": 38,
    "preview": "resources:\n- daemonset-preloaded.yaml\n"
  },
  {
    "path": "nvidia-driver-installer/minikube/Dockerfile",
    "chars": 837,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/minikube/Makefile",
    "chars": 852,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/minikube/daemonset.yaml",
    "chars": 2227,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/minikube/entrypoint.sh",
    "chars": 7914,
    "preview": "#!/bin/bash\n# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"L"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/Dockerfile",
    "chars": 804,
    "preview": "# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/Makefile",
    "chars": 1265,
    "preview": "# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/README.md",
    "chars": 731,
    "preview": "# container-engine-accelerators/nvidia-driver-installer/ubuntu\n\nThis directory contains the following files:\n\n- `Dockerf"
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R525.yaml",
    "chars": 2236,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R535.yaml",
    "chars": 2236,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R550.yaml",
    "chars": 2239,
    "preview": "# Copyright 2024 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded-R570.yaml",
    "chars": 2236,
    "preview": "# Copyright 2025 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset-preloaded.yaml",
    "chars": 2155,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/daemonset.yaml",
    "chars": 2472,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-driver-installer/ubuntu/entrypoint.sh",
    "chars": 6505,
    "preview": "#!/bin/bash\n# Copyright 2021 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"L"
  },
  {
    "path": "nvidia-persistenced-installer/Dockerfile",
    "chars": 1764,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "nvidia-persistenced-installer/README.md",
    "chars": 220,
    "preview": "## To build Confidential GPU NVIDIA Persistence Daemon Installer Image\nFrom root of the repository, run:\n  `docker build"
  },
  {
    "path": "nvidia-persistenced-installer/nvidia_persistenced_installer.go",
    "chars": 9354,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "nvidia-persistenced-installer/nvidia_persistenced_installer_test.go",
    "chars": 2409,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "partition_gpu/Dockerfile",
    "chars": 1308,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "partition_gpu/README.md",
    "chars": 513,
    "preview": "# Partition GPUs\n\nSimple command line tool to partition the GPUs as specified in a GPU configuration file. The GPU confi"
  },
  {
    "path": "partition_gpu/partition_gpu.go",
    "chars": 13699,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "partition_gpu/partition_gpu.yaml",
    "chars": 2356,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "partition_gpu/partition_gpu_test.go",
    "chars": 8054,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/beta_plugin.go",
    "chars": 5004,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/beta_plugin_test.go",
    "chars": 19073,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/gpusharing/gpusharing.go",
    "chars": 3328,
    "preview": "// Copyright 2021 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/gpusharing/gpusharing_test.go",
    "chars": 4025,
    "preview": "// Copyright 2021 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/health_check/health_checker.go",
    "chars": 15357,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/health_check/health_checker_test.go",
    "chars": 13936,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/manager.go",
    "chars": 18752,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/manager_test.go",
    "chars": 8953,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/devices.go",
    "chars": 4228,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/metrics.go",
    "chars": 8605,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/metrics_test.go",
    "chars": 5906,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/metrics/util.go",
    "chars": 5067,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/mig/mig.go",
    "chars": 9166,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/mig/mig_test.go",
    "chars": 4686,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/nvmlutil/nvml_mock.go",
    "chars": 1964,
    "preview": "// Copyright 2025 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/nvmlutil/nvmlutil.go",
    "chars": 4466,
    "preview": "// Copyright 2025 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/util/util.go",
    "chars": 1854,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/util/util_test.go",
    "chars": 973,
    "preview": "// Copyright 2017 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/version_visibility/version_visibility.go",
    "chars": 2799,
    "preview": "// Copyright 2026 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "pkg/gpu/nvidia/version_visibility/version_visibility_test.go",
    "chars": 3441,
    "preview": "// Copyright 2026 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "test/nvidia_gpu/daemonset-nvidia-mig-test.yaml",
    "chars": 4054,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "test/nvidia_gpu/daemonset-nvidia-preloaded-test.yaml",
    "chars": 3588,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "test/nvidia_gpu/daemonset-ubuntu-preloaded.yaml",
    "chars": 2174,
    "preview": "# Copyright 2017 Google Inc. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "test/nvidia_gpu/device-plugin-test.yaml",
    "chars": 3085,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  labels:\n    k8s-app: nvidia-gpu-device-plugin\n  name: nvidia-gpu-device-"
  },
  {
    "path": "test/nvidia_gpu/xid-config.yaml",
    "chars": 121,
    "preview": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: xid-config\n namespace: kube-system\ndata:\n  HealthCriticalXid: \"32,79,74\""
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/CHANGES.md",
    "chars": 6300,
    "preview": "# Changes\n\n## [0.9.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.8.4...compute/metadata/v"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/README.md",
    "chars": 970,
    "preview": "# Compute API\n\n[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/compute.svg)](https://pkg.go.dev/cloud.goog"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/log.go",
    "chars": 3933,
    "preview": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/metadata.go",
    "chars": 33869,
    "preview": "// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/retry.go",
    "chars": 2493,
    "preview": "// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/retry_linux.go",
    "chars": 941,
    "preview": "// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck.go",
    "chars": 1050,
    "preview": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck_linux.go",
    "chars": 936,
    "preview": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/cloud.google.com/go/compute/metadata/syscheck_windows.go",
    "chars": 1128,
    "preview": "// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use th"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl.go",
    "chars": 2432,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/dl/dl_linux.go",
    "chars": 747,
    "preview": "/**\n# Copyright (c) NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"L"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/api.go",
    "chars": 1121,
    "preview": "/**\n# Copyright 2023 NVIDIA CORPORATION\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may no"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers.go",
    "chars": 1641,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers.h",
    "chars": 809,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go",
    "chars": 55779,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const_gen.go",
    "chars": 880,
    "preview": "// Copyright (c) 2021, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go",
    "chars": 88252,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/doc.go",
    "chars": 775,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/dynamicLibrary_mock.go",
    "chars": 3415,
    "preview": "// Code generated by moq; DO NOT EDIT.\n// github.com/matryer/moq\n\npackage nvml\n\nimport (\n\t\"sync\"\n)\n\n// Ensure, that dyna"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go",
    "chars": 1227,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go",
    "chars": 2714,
    "preview": "// Copyright (c) 2022, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/init.go",
    "chars": 1139,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/lib.go",
    "chars": 9359,
    "preview": "/**\n# Copyright 2023 NVIDIA CORPORATION\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may no"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go",
    "chars": 142576,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h",
    "chars": 511253,
    "preview": "/*** NVML VERSION: 12.0.76 ***/\n/*** From https://api.anaconda.org/download/nvidia/cuda-nvml-dev/12.0.76/linux-64/cuda-n"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/return.go",
    "chars": 735,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go",
    "chars": 2703,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go",
    "chars": 11166,
    "preview": "// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs types.go\n\npackage nvml\n\nimport \"unsafe\"\n\ntype Device s"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/unit.go",
    "chars": 2977,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go",
    "chars": 16350,
    "preview": "// Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (t"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/bindings.go",
    "chars": 20527,
    "preview": "/*\n * Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/mig.go",
    "chars": 13600,
    "preview": "// Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.\n\npackage nvml\n\nimport (\n\t\"unsafe\"\n)\n\n// #include \"nvml.h"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml.go",
    "chars": 16590,
    "preview": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\npackage nvml\n\n// #include \"nvml.h\"\nimport \"C\"\n\nimp"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml.h",
    "chars": 401421,
    "preview": "/*\n * Copyright 1993-2020 NVIDIA Corporation.  All rights reserved.\n *\n * NOTICE TO USER:\n *\n * This source code is subj"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml_dl.go",
    "chars": 1571,
    "preview": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\n// +build linux darwin\n\npackage nvml\n\nimport (\n\t\"u"
  },
  {
    "path": "vendor/github.com/NVIDIA/gpu-monitoring-tools/bindings/go/nvml/nvml_dl_windows.go",
    "chars": 1376,
    "preview": "// Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved.\n\n// +build windows\n\npackage nvml\n\nimport (\n\t\"syscal"
  },
  {
    "path": "vendor/github.com/beorn7/perks/LICENSE",
    "chars": 1058,
    "preview": "Copyright (C) 2013 Blake Mizerany\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this "
  },
  {
    "path": "vendor/github.com/beorn7/perks/quantile/exampledata.txt",
    "chars": 5339,
    "preview": "8\n5\n26\n12\n5\n235\n13\n6\n28\n30\n3\n3\n3\n3\n5\n2\n33\n7\n2\n4\n7\n12\n14\n5\n8\n3\n10\n4\n5\n3\n6\n6\n209\n20\n3\n10\n14\n3\n4\n6\n8\n5\n11\n7\n3\n2\n3\n3\n212\n5\n2"
  },
  {
    "path": "vendor/github.com/beorn7/perks/quantile/stream.go",
    "chars": 7956,
    "preview": "// Package quantile computes approximate quantiles over an unbounded data\n// stream within low memory and CPU bounds.\n//"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/LICENSE.txt",
    "chars": 1068,
    "preview": "Copyright (c) 2016 Caleb Spare\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na cop"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/README.md",
    "chars": 2477,
    "preview": "# xxhash\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/cespare/xxhash/v2.svg)](https://pkg.go.dev/github.com/ces"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/testall.sh",
    "chars": 282,
    "preview": "#!/bin/bash\nset -eu -o pipefail\n\n# Small convenience script for running the tests with various combinations of\n# arch/ta"
  },
  {
    "path": "vendor/github.com/cespare/xxhash/v2/xxhash.go",
    "chars": 5660,
    "preview": "// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described\n// at http://cyan4973.github.io/xxHash/.\n"
  }
]

// ... and 3491 more files (download for full content)

About this extraction

This page contains the full source code of the GoogleCloudPlatform/container-engine-accelerators GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3691 files (43.5 MB), approximately 11.6M tokens, and a symbol index with 154712 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!