Directories ¶
Path | Synopsis |
---|---|
build
|
|
analysis/importsort
importsort implements import grouping style checks as per CODING_STANDARDS.md.
|
importsort implements import grouping style checks as per CODING_STANDARDS.md. |
analysis/lib/genstd
This tool generates //build/analysis/lib:stdlib_packages.go, which contains a set of all Go stdlib packges.
|
This tool generates //build/analysis/lib:stdlib_packages.go, which contains a set of all Go stdlib packges. |
analysis/noioutil
Package noioutil contains a Go analysis pass designed to prevent use of the deprecated ioutil package for which a tree-wide migration was already done.
|
Package noioutil contains a Go analysis pass designed to prevent use of the deprecated ioutil package for which a tree-wide migration was already done. |
bazel_cc_fix
bazel_cc_fix rewrites include directives in C and C++ code.
|
bazel_cc_fix rewrites include directives in C and C++ code. |
toolbase
toolbase implements common functionality for tools operating on a Monogon workspace, notably CI and developer tools.
|
toolbase implements common functionality for tools operating on a Monogon workspace, notably CI and developer tools. |
cloud
|
|
bmaas/bmdb
Package bmdb implements a connector to the Bare Metal Database, which is the main data store backing information about bare metal machines.
|
Package bmdb implements a connector to the Bare Metal Database, which is the main data store backing information about bare metal machines. |
bmaas/bmdb/metrics
Package metrics implements a Prometheus metrics submission interface for BMDB client components.
|
Package metrics implements a Prometheus metrics submission interface for BMDB client components. |
bmaas/bmdb/reflection
Package reflection implements facilities to retrieve information about the implemented Tags and their types from a plain CockroachDB SQL connection, bypassing the queries/types defined in models.
|
Package reflection implements facilities to retrieve information about the implemented Tags and their types from a plain CockroachDB SQL connection, bypassing the queries/types defined in models. |
bmaas/bmdb/webug
Package webug implements a web-based debug/troubleshooting/introspection system for the BMDB.
|
Package webug implements a web-based debug/troubleshooting/introspection system for the BMDB. |
bmaas/scruffy
Package scruffy implements Scruffy, The Janitor.
|
Package scruffy implements Scruffy, The Janitor. |
equinix/wrapngo
Package wrapngo wraps packngo methods providing the following usability enhancements: - API call rate limiting - resource-aware call retries - use of a configurable back-off algorithm implementation - context awareness
|
Package wrapngo wraps packngo methods providing the following usability enhancements: - API call rate limiting - resource-aware call retries - use of a configurable back-off algorithm implementation - context awareness |
lib/component
Package component implements reusable bits for cloud service components.
|
Package component implements reusable bits for cloud service components. |
lib/sinbin
Package sinbin implements a sinbin for naughty processed elements that we wish to time out for a while.
|
Package sinbin implements a sinbin for naughty processed elements that we wish to time out for a while. |
shepherd/manager
Package manager, itself a part of BMaaS project, provides implementation governing Equinix bare metal server lifecycle according to conditions set by Bare Metal Database (BMDB).
|
Package manager, itself a part of BMaaS project, provides implementation governing Equinix bare metal server lifecycle according to conditions set by Bare Metal Database (BMDB). |
shepherd/manager/test_agent
test_agent is used by the Equinix Metal Manager test code.
|
test_agent is used by the Equinix Metal Manager test code. |
go
|
|
clitable
Package clitable implements tabular display for command line tools.
|
Package clitable implements tabular display for command line tools. |
mflags
Package mflags implements custom flags for use in monogon projects.
|
Package mflags implements custom flags for use in monogon projects. |
net/psample
Package psample provides a receiver for sampled network packets using the Netlink psample interface.
|
Package psample provides a receiver for sampled network packets using the Netlink psample interface. |
net/tinylb
Package tinylb implements a small and simple userland round-robin load balancer, mostly for TCP connections.
|
Package tinylb implements a small and simple userland round-robin load balancer, mostly for TCP connections. |
intellij
|
|
localconfig
localconfig modifies the project's IntelliJ config to include project-specific settings.
|
localconfig modifies the project's IntelliJ config to include project-specific settings. |
metropolis
|
|
cli/metroctl/core
Package core contains parts of metroctl which do significant amounts of work beyond just providing a CLI for them.
|
Package core contains parts of metroctl which do significant amounts of work beyond just providing a CLI for them. |
installer
Installer creates a Metropolis image at a suitable block device based on the installer bundle present in the installation medium's ESP, after which it reboots.
|
Installer creates a Metropolis image at a suitable block device based on the installer bundle present in the installation medium's ESP, after which it reboots. |
installer/test
This package runs the installer image in a VM provided with an empty block device.
|
This package runs the installer image in a VM provided with an empty block device. |
installer/test/testos
TestOS is a tiny "operating system" which is packaged the exact same way as an actual Metropolis node but only outputs a single flag before exiting.
|
TestOS is a tiny "operating system" which is packaged the exact same way as an actual Metropolis node but only outputs a single flag before exiting. |
node/build/fwprune
fwprune is a buildsystem utility that filters linux-firmware repository contents to include only files required by the built-in kernel modules, that are specified in modules.builtin.modinfo.
|
fwprune is a buildsystem utility that filters linux-firmware repository contents to include only files required by the built-in kernel modules, that are specified in modules.builtin.modinfo. |
node/build/genosrelease
genosrelease provides rudimentary support to generate os-release files following the freedesktop spec from arguments and stamping
|
genosrelease provides rudimentary support to generate os-release files following the freedesktop spec from arguments and stamping |
node/build/mkerofs
mkerofs takes a specification in the form of a prototext file (see fsspec next to this) and assembles an EROFS filesystem according to it.
|
mkerofs takes a specification in the form of a prototext file (see fsspec next to this) and assembles an EROFS filesystem according to it. |
node/build/mkimage
mkimage is a tool to generate Metropolis node disk images.
|
mkimage is a tool to generate Metropolis node disk images. |
node/build/mkimage/osimage
This package provides self-contained implementation used to generate Metropolis disk images.
|
This package provides self-contained implementation used to generate Metropolis disk images. |
node/build/mkpayload
mkpayload is an objcopy wrapper that builds EFI unified kernel images.
|
mkpayload is an objcopy wrapper that builds EFI unified kernel images. |
node/build/mkucode
This assembles standalone microcode files into the format expected by the Linux microcode loader.
|
This assembles standalone microcode files into the format expected by the Linux microcode loader. |
node/build/mkverity
This package implements a command line tool that creates dm-verity hash images at a selected path, given an existing data image.
|
This package implements a command line tool that creates dm-verity hash images at a selected path, given an existing data image. |
node/core
This uses the unstable overrideWrite interface to also emit all runtime writes to a dedicated runtime file descriptor to catch and debug crash dumps.
|
This uses the unstable overrideWrite interface to also emit all runtime writes to a dedicated runtime file descriptor to catch and debug crash dumps. |
node/core/cluster
Package cluster implements low-level clustering logic, especially logic regarding to bootstrapping, registering into and joining a cluster.
|
Package cluster implements low-level clustering logic, especially logic regarding to bootstrapping, registering into and joining a cluster. |
node/core/clusternet
Package clusternet implements a Cluster Networking mesh service running on all Metropolis nodes.
|
Package clusternet implements a Cluster Networking mesh service running on all Metropolis nodes. |
node/core/consensus/client
package client implements a higher-level client for consensus/etcd that is to be used within the Metropolis node code for unprivileged access (ie.
|
package client implements a higher-level client for consensus/etcd that is to be used within the Metropolis node code for unprivileged access (ie. |
node/core/curator
package curator implements the Curator, a service responsible for management of the Metropolis cluster that it is running on.
|
package curator implements the Curator, a service responsible for management of the Metropolis cluster that it is running on. |
node/core/devmgr
Package devmgr is the userspace pendant to the kernel device management system.
|
Package devmgr is the userspace pendant to the kernel device management system. |
node/core/metrics/fake_exporter
fake_exporter is a tiny Prometheus-compatible metrics exporter which exports a single metric with a value configured at startup.
|
fake_exporter is a tiny Prometheus-compatible metrics exporter which exports a single metric with a value configured at startup. |
node/core/mgmt
Package mgmt implements the node-local management service, a.k.a.
|
Package mgmt implements the node-local management service, a.k.a. |
node/core/network/dhcp4c
Package dhcp4c implements a DHCPv4 Client as specified in RFC2131 (with some notable deviations).
|
Package dhcp4c implements a DHCPv4 Client as specified in RFC2131 (with some notable deviations). |
node/core/network/dhcp4c/callback
Package callback contains minimal callbacks for configuring the kernel with options received over DHCP.
|
Package callback contains minimal callbacks for configuring the kernel with options received over DHCP. |
node/core/network/dhcp4c/transport
Package transport contains Linux-based transports for the DHCP broadcast and unicast specifications.
|
Package transport contains Linux-based transports for the DHCP broadcast and unicast specifications. |
node/core/network/dns
Package DNS provides a DNS server using CoreDNS.
|
Package DNS provides a DNS server using CoreDNS. |
node/core/network/hostsfile
Package hostsfile implements a service which owns and writes all node-local files/interfaces used by the system to resolve the local node's name and the names of other nodes in the cluster:
|
Package hostsfile implements a service which owns and writes all node-local files/interfaces used by the system to resolve the local node's name and the names of other nodes in the cluster: |
node/core/roleserve
Package roleserve implements the roleserver/“Role Server”.
|
Package roleserve implements the roleserver/“Role Server”. |
node/core/time
Package time implements a supervisor runnable which is responsible for keeping both the system clock and the RTC accurate.
|
Package time implements a supervisor runnable which is responsible for keeping both the system clock and the RTC accurate. |
node/kubernetes/authproxy
Package authproxy implements an authenticating proxy in front of the K8s API server converting Metropolis credentials into authentication headers.
|
Package authproxy implements an authenticating proxy in front of the K8s API server converting Metropolis credentials into authentication headers. |
node/kubernetes/clusternet
Package clusternet implements a WireGuard-based overlay network for Kubernetes.
|
Package clusternet implements a WireGuard-based overlay network for Kubernetes. |
node/kubernetes/metricsproxy
Package metricsproxy implements an authenticating proxy in front of the K8s controller-manager and scheduler providing unauthenticated access to the metrics via local ports
|
Package metricsproxy implements an authenticating proxy in front of the K8s controller-manager and scheduler providing unauthenticated access to the metrics via local ports |
node/kubernetes/nfproxy
Package nfproxy is a Kubernetes Service IP proxy based exclusively on the Linux nftables interface.
|
Package nfproxy is a Kubernetes Service IP proxy based exclusively on the Linux nftables interface. |
node/kubernetes/pki
package pki builds upon metropolis/pkg/pki/ to provide an etcd-backed implementation of all x509 PKI Certificates/CAs required to run Kubernetes.
|
package pki builds upon metropolis/pkg/pki/ to provide an etcd-backed implementation of all x509 PKI Certificates/CAs required to run Kubernetes. |
node/kubernetes/plugins/kvmdevice
Package kvmdevice implements a Kubernetes device plugin for the virtual KVM device.
|
Package kvmdevice implements a Kubernetes device plugin for the virtual KVM device. |
node/kubernetes/reconciler
The reconciler ensures that a base set of K8s resources is always available in the cluster.
|
The reconciler ensures that a base set of K8s resources is always available in the cluster. |
pkg/bootparam
Package bootparam implements encoding and decoding of Linux kernel command lines as documented in https://docs.kernel.org/admin-guide/kernel-parameters.html
|
Package bootparam implements encoding and decoding of Linux kernel command lines as documented in https://docs.kernel.org/admin-guide/kernel-parameters.html |
pkg/bootparam/ref
Package ref provides the reference implementation for kernel command line parsing as present in the Linux kernel.
|
Package ref provides the reference implementation for kernel command line parsing as present in the Linux kernel. |
pkg/cmd
Package cmd contains helpers that abstract away the chore of starting new processes, tracking their lifetime, inspecting their output, etc.
|
Package cmd contains helpers that abstract away the chore of starting new processes, tracking their lifetime, inspecting their output, etc. |
pkg/combinectx
package combinectx implements context.Contexts that 'combine' two other 'parent' contexts.
|
package combinectx implements context.Contexts that 'combine' two other 'parent' contexts. |
pkg/devicemapper
package devicemapper is a thin wrapper for the devicemapper ioctl API.
|
package devicemapper is a thin wrapper for the devicemapper ioctl API. |
pkg/efivarfs
Package efivarfs provides functions to read and manipulate UEFI runtime variables.
|
Package efivarfs provides functions to read and manipulate UEFI runtime variables. |
pkg/event
Package event defines and implements Event Values, a mechanism in which multiple consumers can watch a value for updates in a reliable way.
|
Package event defines and implements Event Values, a mechanism in which multiple consumers can watch a value for updates in a reliable way. |
pkg/fat32
Package fat32 implements a writer for the FAT32 filesystem.
|
Package fat32 implements a writer for the FAT32 filesystem. |
pkg/fsquota
Package fsquota provides a simplified interface to interact with Linux's filesystem qouta API.
|
Package fsquota provides a simplified interface to interact with Linux's filesystem qouta API. |
pkg/fsquota/quotactl
Package quotactl implements a low-level wrapper around the modern portion of Linux's quotactl() syscall.
|
Package quotactl implements a low-level wrapper around the modern portion of Linux's quotactl() syscall. |
pkg/gpt
Package gpt implements reading and writing GUID Partition Tables as specified in the UEFI Specification.
|
Package gpt implements reading and writing GUID Partition Tables as specified in the UEFI Specification. |
pkg/jsonpatch
Package jsonpatch contains data structures and encoders for JSON Patch (RFC 6902) and JSON Pointers (RFC 6901)
|
Package jsonpatch contains data structures and encoders for JSON Patch (RFC 6902) and JSON Pointers (RFC 6901) |
pkg/kexec
Package kexec allows executing subsequent kernels from Linux userspace.
|
Package kexec allows executing subsequent kernels from Linux userspace. |
pkg/localregistry
Package localregistry implements a read-only OCI Distribution / Docker V2 container image registry backed by local layers.
|
Package localregistry implements a read-only OCI Distribution / Docker V2 container image registry backed by local layers. |
pkg/logbuffer
Package logbuffer implements a fixed-size in-memory ring buffer for line-separated logs.
|
Package logbuffer implements a fixed-size in-memory ring buffer for line-separated logs. |
pkg/logtree
Package logtree implements a tree-shaped logger for debug events.
|
Package logtree implements a tree-shaped logger for debug events. |
pkg/logtree/unraw
unraw implements a facility to convert raw logs from external sources into leveled logs.
|
unraw implements a facility to convert raw logs from external sources into leveled logs. |
pkg/loop
Package loop implements an interface to configure Linux loop devices.
|
Package loop implements an interface to configure Linux loop devices. |
pkg/msguid
Package msguid provides functions to convert UUIDs/GUIDs to and from Microsoft's idiosyncratic "mixed-endian" format.
|
Package msguid provides functions to convert UUIDs/GUIDs to and from Microsoft's idiosyncratic "mixed-endian" format. |
pkg/nvme
Package nvme provides methods and data structures for issuing commands to device speaking the NVMe protocol.
|
Package nvme provides methods and data structures for issuing commands to device speaking the NVMe protocol. |
pkg/pki
package pki implements an x509 PKI (Public Key Infrastructure) system backed on etcd.
|
package pki implements an x509 PKI (Public Key Infrastructure) system backed on etcd. |
pkg/pstore
The pstore package provides functions for interfacing with the Linux kernel's pstore (persistent storage) system.
|
The pstore package provides functions for interfacing with the Linux kernel's pstore (persistent storage) system. |
pkg/scsi
INCITS 502 Revision 19 / SPC-5 R19
|
INCITS 502 Revision 19 / SPC-5 R19 |
pkg/smbios
Package smbios implements parsing of SMBIOS data structures.
|
Package smbios implements parsing of SMBIOS data structures. |
pkg/socksproxy
package socksproxy implements a limited subset of the SOCKS 5 (RFC1928) protocol in the form of a pluggable Proxy object.
|
package socksproxy implements a limited subset of the SOCKS 5 (RFC1928) protocol in the form of a pluggable Proxy object. |
pkg/sysfs
Implementation included in this file was written with the aim of easing integration with the interface exposed at /sys/class/block.
|
Implementation included in this file was written with the aim of easing integration with the interface exposed at /sys/class/block. |
pkg/tpm/eventlog
Taken and pruned from go-attestation under Apache 2.0
|
Taken and pruned from go-attestation under Apache 2.0 |
pkg/tpm/eventlog/internal
Taken from go-attestation under Apache 2.0
|
Taken from go-attestation under Apache 2.0 |
pkg/verity
This package implements the minimum of functionality needed to generate and map dm-verity images.
|
This package implements the minimum of functionality needed to generate and map dm-verity images. |
pkg/watchdog
Package watchdog provides access to hardware watchdogs.
|
Package watchdog provides access to hardware watchdogs. |
test/e2e/httpserver
httpserver serves a test HTTP endpoint for E2E testing.
|
httpserver serves a test HTTP endpoint for E2E testing. |
test/e2e/k8s_cts
This package launches a Metropolis cluster with two nodes and spawns in the CTS container.
|
This package launches a Metropolis cluster with two nodes and spawns in the CTS container. |
test/ktest
ktest is a test launcher for running tests inside a custom kernel and passes the results back out.
|
ktest is a test launcher for running tests inside a custom kernel and passes the results back out. |
test/ktest/init
ktestinit is an init designed to run inside a lightweight VM for running tests in there.
|
ktestinit is an init designed to run inside a lightweight VM for running tests in there. |
test/launch
launch implements test harnesses for running qemu VMs from tests.
|
launch implements test harnesses for running qemu VMs from tests. |
test/launch/cluster
cluster builds on the launch package and implements launching Metropolis nodes and clusters in a virtualized environment using qemu.
|
cluster builds on the launch package and implements launching Metropolis nodes and clusters in a virtualized environment using qemu. |
test/nanoswitch
nanoswitch is a virtualized switch/router combo intended for testing.
|
nanoswitch is a virtualized switch/router combo intended for testing. |
test/util
This file implements test helper functions that augment the way any given test is run.
|
This file implements test helper functions that augment the way any given test is run. |
vm/smoketest
This is a small smoke test which will run in a container on top of Metropolis Kubernetes.
|
This is a small smoke test which will run in a container on top of Metropolis Kubernetes. |
net
|
|
third_party
|
|
Package version is a companion library to the //version/spec proto.
|
Package version is a companion library to the //version/spec proto. |
stampgo
Package main implements 'stampgo', a tool to convert build status data into a version.spec.Version proto, which is then embedded into a Go source file.
|
Package main implements 'stampgo', a tool to convert build status data into a version.spec.Version proto, which is then embedded into a Go source file. |
Click to show internal directories.
Click to hide internal directories.