From e861d8ea51ef702e69b47c1572344c1b8db0fbb3 Mon Sep 17 00:00:00 2001 From: Leandro Dorileo Date: Thu, 24 Oct 2024 14:53:30 -0700 Subject: [PATCH] Revert plugin manager packaging (#460) We'll bring it all back in the future for future releases. --- packaging/debian/rules | 18 +---- packaging/googet/agent_install.ps1 | 60 +++++----------- packaging/googet/agent_uninstall.ps1 | 6 -- .../google-compute-engine-windows.goospec | 2 - packaging/googet/windows_agent_build.sh | 18 ----- packaging/google-guest-agent.spec | 68 ------------------- 6 files changed, 17 insertions(+), 155 deletions(-) diff --git a/packaging/debian/rules b/packaging/debian/rules index a0284072..9c11d28d 100755 --- a/packaging/debian/rules +++ b/packaging/debian/rules @@ -1,6 +1,6 @@ #!/usr/bin/make -f -export PATH := /tmp/go/bin:/usr/share/gocode/bin:$(HOME)/.local/bin:$(PATH) +export PATH := /tmp/go/bin:$(PATH) export SHELL := env PATH=$(PATH) /bin/bash export DH_OPTIONS @@ -22,18 +22,12 @@ override_dh_auto_install: install -p -m 0644 instance_configs.cfg debian/google-guest-agent/usr/share/google-guest-agent install -d debian/google-guest-agent/lib/systemd/system install -p -m 0644 gce-workload-cert-refresh.timer debian/google-guest-agent/lib/systemd/system/ - if [[ -d google-guest-agent ]]; then\ - install -p -m 0644 google-guest-agent/cmd/google_guest_agent/google_guest_agent debian/google-guest-agent/usr/bin/google_guest_agent_manager;\ - fi override_dh_golang: # We don't use any packaged dependencies, so skip dh_golang step. override_dh_auto_build: dh_auto_build -O--buildsystem=golang -- -ldflags="-s -w -X main.version=$(VERSION)" -mod=readonly - if [[ -d google-guest-agent ]]; then\ - VERSION=$(VERSION) make -C google-guest-agent cmd/google_guest_agent/google_guest_agent;\ - fi override_dh_installinit: # We don't ship sysvinit files or need script changes for them. @@ -41,21 +35,11 @@ override_dh_installinit: override_dh_systemd_enable: install -d debian/google-guest-agent/lib/systemd/system install -p -m 0644 *.service debian/google-guest-agent/lib/systemd/system/ - # Don't include guest agent manager if not building with it. - if [[ ! -d google-guest-agent ]]; then\ - rm -f debian/google-guest-agent/lib/systemd/systemd/google-guest-agent-manager.service;\ - fi install -d debian/google-guest-agent/lib/systemd/system-preset install -p -m 0644 *.preset debian/google-guest-agent/lib/systemd/system-preset/ dh_systemd_enable google-guest-agent.service google-startup-scripts.service google-shutdown-scripts.service gce-workload-cert-refresh.timer - if [[ -d google-guest-agent ]]; then\ - dh_systemd_enable google-guest-agent-manager.service;\ - fi override_dh_systemd_start: # Only perform start/stop actions for the guest agent and cert refresh timer. dh_systemd_start google-guest-agent.service dh_systemd_start gce-workload-cert-refresh.timer - if [[ -d google-guest-agent ]]; then\ - dh_systemd_start google-guest-agent-manager.service;\ - fi diff --git a/packaging/googet/agent_install.ps1 b/packaging/googet/agent_install.ps1 index b4938a2f..5909a2a5 100644 --- a/packaging/googet/agent_install.ps1 +++ b/packaging/googet/agent_install.ps1 @@ -16,12 +16,6 @@ $name = 'GCEAgent' $path = '"C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe"' $display_name = 'Google Compute Engine Agent' $description = 'Google Compute Engine Agent' - -$manager_name = 'GCEAgentManager' -$manager_path = '"C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgentManager.exe"' -$manager_display_name = 'Google Compute Engine Agent Manager' -$manager_description = 'Google Compute Engine Agent Manager' - $initial_config = @' # GCE Instance Configuration @@ -35,49 +29,31 @@ $initial_config = @' # disable=false '@ -function Set-ServiceConfig($service_name, $service_binary) { +function Set-ServiceConfig { # Restart service after 1s, then 2s. Reset error counter after 60s. - sc.exe failure $service_name reset= 60 actions= restart/1000/restart/2000 + sc.exe failure $name reset= 60 actions= restart/1000/restart/2000 # Set dependency and delayed start - cmd.exe /c "sc.exe config ${service_name} depend= `"samss`" start= delayed-auto binpath= \`"${service_binary}\`"" + cmd.exe /c "sc.exe config ${name} depend= `"samss`" start= delayed-auto binpath= \`"${path}\`"" # Create trigger to start the service on first IP address - sc.exe triggerinfo $service_name start/networkon + sc.exe triggerinfo $name start/networkon } -function Set-New-Service($service_name, $service_display_name, $service_desc, $service_binary) { - if (-not (Get-Service $service_name -ErrorAction SilentlyContinue)) { - New-Service -Name $service_name ` - -DisplayName $service_display_name ` - -BinaryPathName $service_binary ` +try { + + if (-not (Get-Service $name -ErrorAction SilentlyContinue)) { + New-Service -Name $name ` + -DisplayName $display_name ` + -BinaryPathName $path ` -StartupType Automatic ` - -Description $service_desc + -Description $description } else { - Set-Service -Name $service_name ` - -DisplayName $service_display_name ` - -Description $service_desc + Set-Service -Name $name ` + -DisplayName $display_name ` + -Description $description } -} -try { - # This is to safeguard from installing agent manager using placeholder file - $install_manager = $false - if (Test-Path ($manager_path -replace '"', "")) { - $contains = Select-String -Path ($manager_path -replace '"', "") -Pattern "This is a placeholder file" - if ($contains -eq $null) { - $install_manager = $true - } - } - - # Guest Agent service - Set-New-Service $name $display_name $description $path - Set-ServiceConfig $name $path - - # Guest Agent Manager service - if ($install_manager) { - Set-New-Service $manager_name $manager_display_name $manager_description $manager_path - Set-ServiceConfig $manager_name $manager_path - } + Set-ServiceConfig $config = "${env:ProgramFiles}\Google\Compute Engine\instance_configs.cfg" if (-not (Test-Path $config)) { @@ -85,13 +61,9 @@ try { } Restart-Service $name -Verbose - - if ($install_manager) { - Restart-Service $manager_name -Verbose - } } catch { Write-Output $_.InvocationInfo.PositionMessage Write-Output "Install failed: $($_.Exception.Message)" exit 1 -} \ No newline at end of file +} diff --git a/packaging/googet/agent_uninstall.ps1 b/packaging/googet/agent_uninstall.ps1 index c45e3816..6049e4e3 100644 --- a/packaging/googet/agent_uninstall.ps1 +++ b/packaging/googet/agent_uninstall.ps1 @@ -14,9 +14,3 @@ Stop-Service GCEAgent -Verbose & sc.exe delete GCEAgent - -$name = 'GCEAgentManager' -if (Get-Service $name -ErrorAction SilentlyContinue) { - Stop-Service $name -Verbose - & sc.exe delete $name -} \ No newline at end of file diff --git a/packaging/googet/google-compute-engine-windows.goospec b/packaging/googet/google-compute-engine-windows.goospec index e1f36dcb..8d9e54d7 100644 --- a/packaging/googet/google-compute-engine-windows.goospec +++ b/packaging/googet/google-compute-engine-windows.goospec @@ -7,7 +7,6 @@ "description": "Google Compute Engine Windows agent", "source": "https://github.com/GoogleCloudPlatform/guest-agent/", "files": { - "GCEWindowsAgentManager.exe": "/Google/Compute Engine/agent/GCEWindowsAgentManager.exe", "GCEWindowsAgent.exe": "/Google/Compute Engine/agent/GCEWindowsAgent.exe", "GCEAuthorizedKeysCommand.exe": "/Google/Compute Engine/agent/GCEAuthorizedKeysCommand.exe", "THIRD_PARTY_LICENSES": "/Google/Compute Engine/THIRD_PARTY_LICENSES/", @@ -37,7 +36,6 @@ "sources": [{ "include": [ "GCEWindowsAgent.exe", - "GCEWindowsAgentManager.exe", "GCEAuthorizedKeysCommand.exe", "packaging/googet/agent_install.ps1", "packaging/googet/agent_uninstall.ps1", diff --git a/packaging/googet/windows_agent_build.sh b/packaging/googet/windows_agent_build.sh index ec309121..a5e9520a 100755 --- a/packaging/googet/windows_agent_build.sh +++ b/packaging/googet/windows_agent_build.sh @@ -22,21 +22,3 @@ version=$1 GOOS=windows /tmp/go/bin/go build -ldflags "-X main.version=$version" -mod=readonly -o GCEWindowsAgent.exe ./google_guest_agent GOOS=windows /tmp/go/bin/go build -ldflags "-X main.version=$version" -mod=readonly -o GCEAuthorizedKeysCommand.exe ./google_authorized_keys - -# Script expects guest-agent and google-guest-agent codebase are placed -# side-by-side within same directory and this script is executed from root of -# guest-agent codebase. -GUEST_AGENT_REPO="../google-guest-agent" - -if [[ ! -f "$GUEST_AGENT_REPO/Makefile" ]]; then - # This is a placeholder file for guest-agent package, google-compute-engine-windows.goospec - # looks for this file during goopack packaging and will fail if not found. - echo "This is a placeholder file so guest agent package build without error. Package will have actual Guest Agent Manager executable instead if both repos are cloned side-by-side." > GCEWindowsAgentManager.exe - exit 0 -fi - -BUILD_DIR=$(pwd) -pushd $GUEST_AGENT_REPO -GOOS=windows VERSION=$version make cmd/google_guest_agent/google_guest_agent -cp cmd/google_guest_agent/google_guest_agent.exe $BUILD_DIR/GCEWindowsAgentManager.exe -popd diff --git a/packaging/google-guest-agent.spec b/packaging/google-guest-agent.spec index 12fa5a01..d83bf3f6 100644 --- a/packaging/google-guest-agent.spec +++ b/packaging/google-guest-agent.spec @@ -15,11 +15,6 @@ # Don't build debuginfo packages. %define debug_package %{nil} -# The only use for extra source is to build plugin manager. -%if 0%{?has_extra_source} -%define build_plugin_manager %{has_extra_source} -%endif - Name: google-guest-agent Epoch: 1 Version: %{_version} @@ -28,11 +23,6 @@ Summary: Google Compute Engine guest agent. License: ASL 2.0 Url: https://cloud.google.com/compute/docs/images/guest-environment Source0: %{name}_%{version}.orig.tar.gz - -%if 0%{?build_plugin_manager} -Source1: %{name}_extra-%{version}.orig.tar.gz -%endif - Requires: google-compute-engine-oslogin >= 1:20231003 BuildArch: %{_arch} @@ -46,12 +36,7 @@ Obsoletes: python-google-compute-engine, python3-google-compute-engine Contains the Google guest agent binary. %prep - -%if 0%{?build_plugin_manager} -%autosetup -a 1 -%else %autosetup -%endif %build for bin in google_guest_agent google_metadata_script_runner gce_workload_cert_refresh; do @@ -59,12 +44,6 @@ for bin in google_guest_agent google_metadata_script_runner gce_workload_cert_re GOPATH=%{_gopath} CGO_ENABLED=0 %{_go} build -ldflags="-s -w -X main.version=%{_version}" -mod=readonly popd done -# Build side-by-side both new agent (plugin manager) and legacy agent. -%if 0%{?build_plugin_manager} -pushd %{name}-extra-%{version}/ - VERSION=%{version} make cmd/google_guest_agent/google_guest_agent -popd -%endif %install install -d "%{buildroot}/%{_docdir}/%{name}" @@ -76,12 +55,6 @@ install -p -m 0755 google_metadata_script_runner/google_metadata_script_runner % install -p -m 0755 gce_workload_cert_refresh/gce_workload_cert_refresh %{buildroot}%{_bindir}/gce_workload_cert_refresh install -d %{buildroot}/usr/share/google-guest-agent install -p -m 0644 instance_configs.cfg %{buildroot}/usr/share/google-guest-agent/instance_configs.cfg - -# Compat agent, it will become google_guest_agent after the full package transition. -%if 0%{?build_plugin_manager} -install -p -m 0755 %{name}-extra-%{version}/cmd/google_guest_agent/google_guest_agent %{buildroot}%{_bindir}/google_guest_agent_manager -%endif - %if 0%{?el6} install -d %{buildroot}/etc/init install -p -m 0644 %{name}.conf %{buildroot}/etc/init/ @@ -91,11 +64,6 @@ install -p -m 0644 google-shutdown-scripts.conf %{buildroot}/etc/init/ install -d %{buildroot}%{_unitdir} install -d %{buildroot}%{_presetdir} install -p -m 0644 %{name}.service %{buildroot}%{_unitdir} - -%if 0%{?build_plugin_manager} -install -p -m 0644 google-guest-agent-manager.service %{buildroot}%{_unitdir} -%endif - install -p -m 0644 google-startup-scripts.service %{buildroot}%{_unitdir} install -p -m 0644 google-shutdown-scripts.service %{buildroot}%{_unitdir} install -p -m 0644 gce-workload-cert-refresh.service %{buildroot}%{_unitdir} @@ -108,11 +76,6 @@ install -p -m 0644 90-%{name}.preset %{buildroot}%{_presetdir}/90-%{name}.preset %defattr(-,root,root,-) /usr/share/google-guest-agent/instance_configs.cfg %{_bindir}/google_guest_agent - -%if 0%{?build_plugin_manager} -%{_bindir}/google_guest_agent_manager -%endif - %{_bindir}/google_metadata_script_runner %{_bindir}/gce_workload_cert_refresh %if 0%{?el6} @@ -121,11 +84,6 @@ install -p -m 0644 90-%{name}.preset %{buildroot}%{_presetdir}/90-%{name}.preset /etc/init/google-shutdown-scripts.conf %else %{_unitdir}/%{name}.service - -%if 0%{?build_plugin_manager} -%{_unitdir}/google-guest-agent-manager.service -%endif - %{_unitdir}/google-startup-scripts.service %{_unitdir}/google-shutdown-scripts.service %{_unitdir}/gce-workload-cert-refresh.service @@ -150,53 +108,27 @@ if [ $1 -eq 1 ]; then systemctl enable google-shutdown-scripts.service >/dev/null 2>&1 || : systemctl enable gce-workload-cert-refresh.timer >/dev/null 2>&1 || : - %if 0%{?build_plugin_manager} - systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || : - %endif - if [ -d /run/systemd/system ]; then systemctl daemon-reload >/dev/null 2>&1 || : systemctl start google-guest-agent.service >/dev/null 2>&1 || : systemctl start gce-workload-cert-refresh.timer >/dev/null 2>&1 || : - %if 0%{?build_plugin_manager} - systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || : - %endif fi - - else # Package upgrade if [ -d /run/systemd/system ]; then - systemctl daemon-reload >/dev/null 2>&1 || : systemctl try-restart google-guest-agent.service >/dev/null 2>&1 || : - %if 0%{?build_plugin_manager} - systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || : - systemctl is-active google-guest-agent-manager.service >/dev/null 2>&1 || : - # If the unit is active do a try-restart, otherwise start it. - if [ $? -eq 0 ]; then - systemctl try-restart google-guest-agent-manager.service >/dev/null 2>&1 || : - else - systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || : - if - %endif fi fi %preun if [ $1 -eq 0 ]; then # Package removal, not upgrade - %if 0%{?build_plugin_manager} - systemctl --no-reload disable google-guest-agent-manager.service >/dev/null 2>&1 || : - %endif systemctl --no-reload disable google-guest-agent.service >/dev/null 2>&1 || : systemctl --no-reload disable google-startup-scripts.service >/dev/null 2>&1 || : systemctl --no-reload disable google-shutdown-scripts.service >/dev/null 2>&1 || : systemctl --no-reload disable gce-workload-cert-refresh.timer >/dev/null 2>&1 || : if [ -d /run/systemd/system ]; then systemctl stop google-guest-agent.service >/dev/null 2>&1 || : - %if 0%{?build_plugin_manager} - systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || : - %endif fi fi