in integration_test/gce-testing-internal/gce/gce_testing.go [1710:1742]
func SetEnvironmentVariables(ctx context.Context, logger *log.Logger, vm *VM, envVariables map[string]string) error {
if IsWindows(vm.ImageSpec) {
for key, value := range envVariables {
envVariableCmd := fmt.Sprintf(`setx %s "%s" /M`, key, value)
logger.Println("envVariableCmd " + envVariableCmd)
if _, err := RunRemotely(ctx, logger, vm, envVariableCmd); err != nil {
return err
}
}
return nil
}
// https://serverfault.com/a/413408
// Escaping newlines here because we'll be using `echo -e` later
override := `[Service]\n`
for key, value := range envVariables {
override += fmt.Sprintf(`Environment="%s=%s"\n`, key, value)
}
for _, service := range []string{
"google-cloud-ops-agent",
"google-cloud-ops-agent-fluent-bit",
"google-cloud-ops-agent-opentelemetry-collector",
} {
dir := fmt.Sprintf("/etc/systemd/system/%s.service.d", service)
cmd := fmt.Sprintf(`sudo mkdir -p %s && echo -e '%s' | sudo tee %s/override.conf`, dir, override, dir)
if _, err := RunRemotely(ctx, logger, vm, cmd); err != nil {
return err
}
}
// Reload the systemd daemon to pick up the new settings edited in the previous command
daemonReload := "sudo systemctl daemon-reload"
_, err := RunRemotely(ctx, logger, vm, daemonReload)
return err
}