google-guest-agent

module
v0.0.0-...-06f893e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2026 License: Apache-2.0

README

Public Cloud Docs

Guest Agent for Google Compute Engine.

This repository contains the source code and packaging artifacts for the Google guest agent. These components are installed on Windows and Linux GCE VMs in order to enable GCE platform features.

Building Guest Agent

In the codebase there's a GNU Make based build system with targets to build and test the guest agent.

In order to build both the guest-agent and core_plugins, run

make

To build only one or the other, run the respective make target:

make build cmd/google_guest_agent/google_guest_agent
make build cmd/core_plugin/core_plugin

To run all the go tests, run:

make test

For more targets and info about the build system run:

make help

Directories

Path Synopsis
cmd
acs_cli command
Package main implements ACS CLI for testing dynamic plugins manually.
Package main implements ACS CLI for testing dynamic plugins manually.
core_plugin command
Package main is the implementation of the guest agent's core plugin.
Package main is the implementation of the guest agent's core plugin.
core_plugin/agentcrypto
Package agentcrypto provides various cryptography related utility functions and a module for mds mtls setup.
Package agentcrypto provides various cryptography related utility functions and a module for mds mtls setup.
core_plugin/clock
Package clock is a package responsible for managing clock skew.
Package clock is a package responsible for managing clock skew.
core_plugin/command
Package command contains the core-plugin's command monitor module registration.
Package command contains the core-plugin's command monitor module registration.
core_plugin/dnsprobe
Package dnsprobe implements the scheduler for probing GCE DNS server.
Package dnsprobe implements the scheduler for probing GCE DNS server.
core_plugin/firstboot
Package firstboot provides a module to setup instance id, generate host ssh keys and generate boto config file.
Package firstboot provides a module to setup instance id, generate host ssh keys and generate boto config file.
core_plugin/iosched
Package iosched provides a module to setup the underlying OS's io scheduler.
Package iosched provides a module to setup the underlying OS's io scheduler.
core_plugin/manager
Package manager is the module manager, it wraps the initialization and mass notification of core-plugin's modules.
Package manager is the module manager, it wraps the initialization and mass notification of core-plugin's modules.
core_plugin/metadatasshkey
Package metadatasshkey provides a module for setting up user accounts from ssh keys in instance and project metadata.
Package metadatasshkey provides a module for setting up user accounts from ssh keys in instance and project metadata.
core_plugin/network
Package network is the network management subsystem.
Package network is the network management subsystem.
core_plugin/network/dhclient
Package dhclient provides dhclient configuration handler for Linux.
Package dhclient provides dhclient configuration handler for Linux.
core_plugin/network/hostname
Package hostname reconfigures the guest hostname (linux only) and fqdn (linux and windows) as necessary.
Package hostname reconfigures the guest hostname (linux only) and fqdn (linux and windows) as necessary.
core_plugin/network/netplan
Package netplan provides the service implementation for netplan.
Package netplan provides the service implementation for netplan.
core_plugin/network/networkd
Package networkd provides is the service implementation for systemd-networkd.
Package networkd provides is the service implementation for systemd-networkd.
core_plugin/network/nm
Package nm provides is the service implementation for NetworkManager.
Package nm provides is the service implementation for NetworkManager.
core_plugin/network/wicked
Package wicked provides network management service implementation for wicked.
Package wicked provides network management service implementation for wicked.
core_plugin/oslogin
Package oslogin contains the Linux implementation of the OS Login module.
Package oslogin contains the Linux implementation of the OS Login module.
core_plugin/platscript
Package platscript is responsible for running platform specific setup scripts.
Package platscript is responsible for running platform specific setup scripts.
core_plugin/snapshot
Package snapshot is responsible for running scripts for guest flush snapshots.
Package snapshot is responsible for running scripts for guest flush snapshots.
core_plugin/stages
Package stages implements common utils for all core plugin stages.
Package stages implements common utils for all core plugin stages.
core_plugin/stages/early
Package early implements the core-plugin's early initialization steps such as setting up metadata server routes on windows, platform hardware configuration etc.
Package early implements the core-plugin's early initialization steps such as setting up metadata server routes on windows, platform hardware configuration etc.
core_plugin/stages/late
Package late implements the core-plugin's late initialization steps such as initializing the configuration managers i.e.
Package late implements the core-plugin's late initialization steps such as initializing the configuration managers i.e.
core_plugin/telemetry
Package telemetry implements the scheduler for collecting and publishing telemetry data.
Package telemetry implements the scheduler for collecting and publishing telemetry data.
core_plugin/workloadcertrefresh
Package workloadcertrefresh is responsible for managing workload certificate refreshes.
Package workloadcertrefresh is responsible for managing workload certificate refreshes.
core_plugin/wsfchealthcheck
Package wsfchealthcheck implements an agent that is used to support Windows Server Failover Cluster (WSFC) in GCE.
Package wsfchealthcheck implements an agent that is used to support Windows Server Failover Cluster (WSFC) in GCE.
examples/basic_plugin command
Package main represents how sample basic plugin binary looks like within Guest Agent Plugin framework.
Package main represents how sample basic plugin binary looks like within Guest Agent Plugin framework.
gce_metadata_script_runner command
Package main handles the running of metadata scripts on Google Compute Engine instances.
Package main handles the running of metadata scripts on Google Compute Engine instances.
ggactl command
Package main is the implementation of CLI for communicating with Guest Agent over command monitor.
Package main is the implementation of CLI for communicating with Guest Agent over command monitor.
ggactl/commands
Package commands provides common helper methods for all commands implemented by CLI.
Package commands provides common helper methods for all commands implemented by CLI.
ggactl/commands/coreplugin
Package coreplugin implements ggactl commands meant for core plugin.
Package coreplugin implements ggactl commands meant for core plugin.
ggactl/commands/guestagent
Package guestagent implements ggactl commands meant for guest agent.
Package guestagent implements ggactl commands meant for guest agent.
ggactl/commands/plugincleanup
Package plugincleanup provides commands to remove on demand plugins.
Package plugincleanup provides commands to remove on demand plugins.
ggactl/commands/routes
Package routes implements ggactl commands for route setup.
Package routes implements ggactl commands for route setup.
ggactl/commands/testhelper
Package testhelper contains helper functions for tests and is accessible only within tests.
Package testhelper contains helper functions for tests and is accessible only within tests.
google_authorized_keys command
Package main is the google_authorized_keys tool.
Package main is the google_authorized_keys tool.
google_authorized_keys_compat command
Package main is the entry point for the google authorized keys compat.
Package main is the entry point for the google authorized keys compat.
google_guest_agent command
Package main is the google_guest_agent binary.
Package main is the google_guest_agent binary.
google_guest_agent/setup
Package setup provides the guest-agent setup functionality.
Package setup provides the guest-agent setup functionality.
google_guest_compat_manager command
Package main is the entry point for the google-guest-compat-manager.
Package main is the entry point for the google-guest-compat-manager.
google_guest_compat_manager/watcher
Package watcher implements the event watcher callback for the guest compat manager and configures the guest agent accordingly.
Package watcher implements the event watcher callback for the guest compat manager and configures the guest agent accordingly.
guest_telemetry_extension command
Package main serves as the Main entry point for the guest telemetry extension.
Package main serves as the Main entry point for the guest telemetry extension.
guest_telemetry_extension/isvdiscovery/commandlineexecutor
Package commandlineexecutor creates an interface to streamline execution of shell commands across multiple platforms.
Package commandlineexecutor creates an interface to streamline execution of shell commands across multiple platforms.
guest_telemetry_extension/isvdiscovery/communication
Package communication provides capability to communicate via Agent Communication Service (ACS).
Package communication provides capability to communicate via Agent Communication Service (ACS).
guest_telemetry_extension/isvdiscovery/engine
Package engine provides the engine for executing the discovery rules.
Package engine provides the engine for executing the discovery rules.
guest_telemetry_extension/isvdiscovery/engine/versioncommands
Package versioncommands provides the commands to be executed to gather version information.
Package versioncommands provides the commands to be executed to gather version information.
guest_telemetry_extension/isvdiscovery/service
Package discovery provides a service for discovering workloads on the host.
Package discovery provides a service for discovering workloads on the host.
metadata_script_runner_compat command
Package main is the entry point for the metadata script runner compat binary.
Package main is the entry point for the metadata script runner compat binary.
internal
accounts
Package accounts sets up accounts and their groups for windows and linux.
Package accounts sets up accounts and their groups for windows and linux.
acs/client
Package client provides client methods to communicate with ACS.
Package client provides client methods to communicate with ACS.
acs/handler
Package handler contains the implementation of handling ACS requests.
Package handler contains the implementation of handling ACS requests.
acs/testserver
Package testserver provides helper methods for functional testing against test ACS server.
Package testserver provides helper methods for functional testing against test ACS server.
acs/watcher
Package watcher implements the ACS event watcher using ACS Client.
Package watcher implements the ACS event watcher using ACS Client.
boundedlist
Package boundedlist implements a fixed size circular list.
Package boundedlist implements a fixed size circular list.
cfg
Package cfg is package responsible to loading and accessing the guest environment configuration.
Package cfg is package responsible to loading and accessing the guest environment configuration.
command
Package command facilitates calling commands within the guest-agent.
Package command facilitates calling commands within the guest-agent.
daemon
Package daemon provides utilities for interacting with daemon services, for linux it uses systemd and for windows it uses service control manager.
Package daemon provides utilities for interacting with daemon services, for linux it uses systemd and for windows it uses service control manager.
events
Package events is a events processing layer.
Package events is a events processing layer.
logger
Package logger wraps the galog configuration/initialization.
Package logger wraps the galog configuration/initialization.
lru
Package lru implements a simple LRU cache.
Package lru implements a simple LRU cache.
metadata
Package metadata provides a client for communication with Metadata Server.
Package metadata provides a client for communication with Metadata Server.
metricregistry
Package metricregistry implements a metric registry and provides a way to collect and export metrics.
Package metricregistry implements a metric registry and provides a way to collect and export metrics.
mocking
Package mocking contains mocking data structures and serves only for testing purposes.
Package mocking contains mocking data structures and serves only for testing purposes.
network/address
Package address contains network address manipulation utilities.
Package address contains network address manipulation utilities.
network/ethernet
Package ethernet contains the ethernet network interface handling utilities.
Package ethernet contains the ethernet network interface handling utilities.
network/nic
Package nic contains the NIC configuration parsing and transformation utilities and representation.
Package nic contains the NIC configuration parsing and transformation utilities and representation.
network/route
Package route contains the OS specific route manipulation implementation.
Package route contains the OS specific route manipulation implementation.
network/service
Package service contains common facilities shared by all network managers.
Package service contains common facilities shared by all network managers.
osinfo
Package osinfo helps collect OS telemetry.
Package osinfo helps collect OS telemetry.
pipewatcher
Package pipewatcher implements a generic pipe event watcher.
Package pipewatcher implements a generic pipe event watcher.
plugin/config
Package config provides functions to setup the core plugin enabled configuration and fetch the current value.
Package config provides functions to setup the core plugin enabled configuration and fetch the current value.
plugin/manager
Package manager contains the plugin manager engine that handles the workflow.
Package manager contains the plugin manager engine that handles the workflow.
ps
Package ps provides a way to find a process in linux without using the ps CLI tool.
Package ps provides a way to find a process in linux without using the ps CLI tool.
reg
resource
Package resource applies resource constraints to processes.
Package resource applies resource constraints to processes.
retry
Package retry implements retry logic helpers to execute arbitrary functions with defined policy.
Package retry implements retry logic helpers to execute arbitrary functions with defined policy.
run
Package run is a package with utilities for running command and handling results.
Package run is a package with utilities for running command and handling results.
scheduler
Package scheduler maintains scheduler utility for scheduling arbitrary jobs.
Package scheduler maintains scheduler utility for scheduling arbitrary jobs.
service
Package service is a package with os specific service handling logic.
Package service is a package with os specific service handling logic.
textconfig
Package textconfig provides a way to read and write plain text configuration files (such as sshd.conf, pam.conf, etc).
Package textconfig provides a way to read and write plain text configuration files (such as sshd.conf, pam.conf, etc).
uefi
Package uefi provides utility functions to read UEFI variables.
Package uefi provides utility functions to read UEFI variables.
utils/file
Package file implements file related utilities for Guest Agent.
Package file implements file related utilities for Guest Agent.
utils/ini
Package ini provides wrapper util functions to parse and write INI files.
Package ini provides wrapper util functions to parse and write INI files.
utils/regex
Package regex contains utility functions for working with regexes.
Package regex contains utility functions for working with regexes.
utils/serialport
Package serialport provides a serial port logger.
Package serialport provides a serial port logger.
utils/ssh
Package ssh includes Google SSH related Utilities for Google Guest Agent and Google Authorized Keys.
Package ssh includes Google SSH related Utilities for Google Guest Agent and Google Authorized Keys.
windowstypes
Package windowstypes contains Windows specific types.
Package windowstypes contains Windows specific types.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL