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
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[](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[](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.