Revert "Revert "Break the cos-customizer dependency on snapshot.debian.org""
This reverts commit ff862d090297ddd17763ca533fe6ce94c14928d6.
This relands 2b99907, but installs dosfstools in cloudbuild.yaml,
coverage/cloudbuild.yaml, and run_unit_tests.sh.
BUG=b/293196753
TEST=`gcloud builds submit --config cloudbuild.yaml .`
Change-Id: I268e42d1ba9d9cabbf6f61caaa435ef17699d56d
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/57675
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Reviewed-by: Arnav Kansal <rnv@google.com>
Tested-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Reviewed-by: Nandhini Rengaraj <nrengaraj@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 93e78a0..f0cdbe3 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -13,120 +13,6 @@
# limitations under the License.
load("@bazel_gazelle//:def.bzl", "gazelle")
-load("@io_bazel_rules_docker//go:image.bzl", "go_image")
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-load("@package_bundle_amd64//file:packages.bzl", packages_amd64 = "packages")
-load("@package_bundle_arm64//file:packages.bzl", packages_arm64 = "packages")
-load("@rules_pkg//:pkg.bzl", "pkg_deb", "pkg_tar")
# gazelle:prefix cos.googlesource.com/cos/tools.git
gazelle(name = "gazelle")
-
-exports_files(glob(["src/data/**"]))
-
-genrule(
- name = "workspace_dir",
- outs = ["workspace"],
- cmd = "mkdir $@",
-)
-
-genrule(
- name = "tmp_dir",
- outs = ["tmp"],
- cmd = "mkdir $@",
-)
-
-container_image(
- name = "veritysetup_amd64",
- architecture = "amd64",
- debs = [
- packages_amd64["coreutils"],
- packages_amd64["tar"],
- packages_amd64["libacl1"],
- packages_amd64["libattr1"],
- packages_amd64["libc6"],
- packages_amd64["libselinux1"],
- packages_amd64["libpcre3"],
- packages_amd64["cryptsetup-bin"],
- packages_amd64["libcryptsetup4"],
- packages_amd64["libpopt0"],
- packages_amd64["libuuid1"],
- packages_amd64["libdevmapper1.02.1"],
- packages_amd64["libgcrypt20"],
- packages_amd64["libargon2-0"],
- packages_amd64["libjson-c3"],
- packages_amd64["libudev1"],
- packages_amd64["libpthread-stubs0-dev"],
- packages_amd64["libm17n-0"],
- packages_amd64["libgpg-error0"],
- ],
- repository = "veritysetup",
- visibility = ["//visibility:public"],
-)
-
-container_image(
- name = "veritysetup_arm64",
- architecture = "arm64",
- debs = [
- packages_arm64["coreutils"],
- packages_arm64["tar"],
- packages_arm64["libacl1"],
- packages_arm64["libattr1"],
- packages_arm64["libc6"],
- packages_arm64["libselinux1"],
- packages_arm64["libpcre3"],
- packages_arm64["cryptsetup-bin"],
- packages_arm64["libcryptsetup4"],
- packages_arm64["libpopt0"],
- packages_arm64["libuuid1"],
- packages_arm64["libdevmapper1.02.1"],
- packages_arm64["libgcrypt20"],
- packages_arm64["libargon2-0"],
- packages_arm64["libjson-c3"],
- packages_arm64["libudev1"],
- packages_arm64["libpthread-stubs0-dev"],
- packages_arm64["libm17n-0"],
- packages_arm64["libgpg-error0"],
- ],
- repository = "veritysetup",
- visibility = ["//visibility:public"],
-)
-
-pkg_tar(
- name = "data_tar",
- srcs = glob(["src/data/**"]),
- strip_prefix = "src/",
-)
-
-container_image(
- name = "cos_customizer_base",
- base = "@daisy//image",
- data_path = ".",
- debs = [
- packages_amd64["coreutils"],
- packages_amd64["tar"],
- packages_amd64["libacl1"],
- packages_amd64["libattr1"],
- packages_amd64["libc6"],
- packages_amd64["libselinux1"],
- packages_amd64["libpcre3"],
- packages_amd64["mtools"],
- ],
- files = [
- ":tmp_dir",
- ":workspace_dir",
- ],
- tars = [
- ":data_tar",
- ],
-)
-
-go_image(
- name = "cos_customizer",
- base = ":cos_customizer_base",
- embed = ["//src/cmd/cos_customizer:cos_customizer_lib"],
- goarch = "amd64",
- goos = "linux",
- pure = "on",
- visibility = ["//visibility:public"],
-)
diff --git a/WORKSPACE b/WORKSPACE
index 8b5ffbc..e914758 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -35,32 +35,11 @@
)
http_archive(
- name = "io_bazel_rules_docker",
- sha256 = "07ee8ca536080f5ebab6377fc6e8920e9a761d2ee4e64f0f6d919612f6ab56aa",
- strip_prefix = "rules_docker-0.25.0",
- urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.25.0.tar.gz"],
-)
-
-http_archive(
- name = "distroless",
- sha256 = "14834aaf9e005b9175de2cfa2b420c80778880ee4d9f9a9f7f385d3b177abff7",
- strip_prefix = "distroless-fa0765cc86064801e42a3b35f50ff2242aca9998",
- urls = ["https://github.com/GoogleContainerTools/distroless/archive/fa0765cc86064801e42a3b35f50ff2242aca9998.tar.gz"],
-)
-
-http_archive(
name = "rules_pkg",
sha256 = "aeca78988341a2ee1ba097641056d168320ecc51372ef7ff8e64b139516a4937",
urls = ["https://github.com/bazelbuild/rules_pkg/releases/download/0.2.6-1/rules_pkg-0.2.6.tar.gz"],
)
-http_archive(
- name = "rules_foreign_cc",
- sha256 = "ab805b9e00747ba9b184790cbe2d4d19b672770fcac437f01d8c101ae60df996",
- strip_prefix = "rules_foreign_cc-c309ec13192f69a46aaaba39587c3d7ff684eb35",
- urls = ["https://github.com/bazelbuild/rules_foreign_cc/archive/c309ec13192f69a46aaaba39587c3d7ff684eb35.zip"],
-)
-
git_repository(
name = "com_google_protobuf",
commit = "31ebe2ac71400344a5db91ffc13c4ddfb7589f92",
@@ -100,131 +79,3 @@
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
-
-load(
- "@io_bazel_rules_docker//repositories:repositories.bzl",
- container_repositories = "repositories",
-)
-
-container_repositories()
-
-load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
-
-container_deps()
-
-load(
- "@io_bazel_rules_docker//container:container.bzl",
- "container_pull",
-)
-
-container_pull(
- name = "daisy",
- digest = "sha256:a23774074d5941ed9e25f64ee7e02f96d2f8e09a4d7cee7131b49664267c33c7",
- registry = "gcr.io",
- repository = "compute-image-tools/daisy",
-)
-
-load(
- "@io_bazel_rules_docker//go:image.bzl",
- _go_image_repos = "repositories",
-)
-
-_go_image_repos()
-
-load(
- "@distroless//package_manager:package_manager.bzl",
- "package_manager_repositories",
-)
-
-package_manager_repositories()
-
-load(
- "@distroless//package_manager:dpkg.bzl",
- "dpkg_src",
- "dpkg_list",
-)
-
-dpkg_src(
- name = "debian_stretch_amd64",
- arch = "amd64",
- distro = "stretch",
- sha256 = "79a66cd92ba9096fce679e15d0b5feb9effcf618b0a6d065eb32684dbffd0311",
- snapshot = "20190328T105444Z",
- url = "http://snapshot.debian.org/archive",
-)
-
-dpkg_src(
- name = "debian_stretch_arm64",
- arch = "arm64",
- distro = "stretch",
- sha256 = "ec05c9109c0a6aef4509091b9ccf10939583e56b7ce53be9d8ef38ec5e0ce9d2",
- snapshot = "20190328T105444Z",
- url = "http://snapshot.debian.org/archive",
-)
-
-dpkg_list(
- name = "package_bundle_amd64",
- packages = [
- "coreutils",
- "libacl1",
- "libattr1",
- "libc6",
- "libpcre3",
- "libselinux1",
- "tar",
- "cryptsetup-bin",
- "libcryptsetup4",
- "libpopt0",
- "libuuid1",
- "libdevmapper1.02.1",
- "libgcrypt20",
- "libargon2-0",
- "libjson-c3",
- "libudev1",
- "libpthread-stubs0-dev",
- "libm17n-0",
- "libgpg-error0",
- "mtools",
- ],
- sources = [
- "@debian_stretch_amd64//file:Packages.json",
- ],
-)
-
-dpkg_list(
- name = "package_bundle_arm64",
- packages = [
- "coreutils",
- "libacl1",
- "libattr1",
- "libc6",
- "libpcre3",
- "libselinux1",
- "tar",
- "cryptsetup-bin",
- "libcryptsetup4",
- "libpopt0",
- "libuuid1",
- "libdevmapper1.02.1",
- "libgcrypt20",
- "libargon2-0",
- "libjson-c3",
- "libudev1",
- "libpthread-stubs0-dev",
- "libm17n-0",
- "libgpg-error0",
- "mtools",
- ],
- sources = [
- "@debian_stretch_arm64//file:Packages.json",
- ],
-)
-
-load("@rules_foreign_cc//:workspace_definitions.bzl", "rules_foreign_cc_dependencies")
-rules_foreign_cc_dependencies()
-
-load("//src/third_party/dosfstools:dosfstools_repositories.bzl", "dosfstools_repositories")
-dosfstools_repositories()
-
-load("//src/third_party/mtools:mtools_repositories.bzl", "mtools_repositories")
-mtools_repositories()
diff --git a/cloudbuild.yaml b/cloudbuild.yaml
index 2fa41fd..c0db729 100644
--- a/cloudbuild.yaml
+++ b/cloudbuild.yaml
@@ -9,7 +9,7 @@
- |
cat <<EOF | docker build -t bazel -
FROM gcr.io/cloud-builders/bazel
- RUN apt-get update && apt-get install -y mtools
+ RUN apt-get update && apt-get install -y mtools dosfstools
EOF
- name: 'bazel'
args: [ 'test', '--test_output=all', '--remote_cache=${_BUILD_TOOLS_CACHE}', '--google_default_credentials', '--spawn_strategy=standalone','--','...','-//src/pkg/tools/...' ]
diff --git a/coverage/cloudbuild.yaml b/coverage/cloudbuild.yaml
index 0348c56..127cd56 100644
--- a/coverage/cloudbuild.yaml
+++ b/coverage/cloudbuild.yaml
@@ -26,7 +26,7 @@
- |
cat <<EOF | docker build -t bazel -
FROM gcr.io/cloud-builders/bazel
- RUN apt-get update && apt-get install -y mtools
+ RUN apt-get update && apt-get install -y mtools dosfstools
EOF
# Run bash script that builds the metadata.json
# Run bazel tests and redirect to output.txt
diff --git a/deps.bzl b/deps.bzl
index 0e4bb16..77e1fc0 100644
--- a/deps.bzl
+++ b/deps.bzl
@@ -451,3 +451,9 @@
sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
version = "v0.0.0-20200804184101-5ec99f83aff1",
)
+ go_repository(
+ name = "com_github_pkg_errors",
+ importpath = "github.com/pkg/errors",
+ sum = "h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=",
+ version = "v0.9.1",
+ )
diff --git a/run_unit_tests.sh b/run_unit_tests.sh
index 310eda8..7155078 100755
--- a/run_unit_tests.sh
+++ b/run_unit_tests.sh
@@ -30,7 +30,7 @@
# build changelogctl binary
go build -o src/cmd/changelogctl/changelogctl src/cmd/changelogctl/main.go
- apt-get update && apt-get install -y sudo fdisk sysstat mtools
+ apt-get update && apt-get install -y sudo fdisk sysstat mtools dosfstools
# clean up to save disk space
rm -rf "$(readlink -f bazel-bin)"
diff --git a/src/cmd/cos_customizer/Dockerfile b/src/cmd/cos_customizer/Dockerfile
new file mode 100644
index 0000000..7e73347
--- /dev/null
+++ b/src/cmd/cos_customizer/Dockerfile
@@ -0,0 +1,137 @@
+# Step 1: build all bundled programs built with Bazel
+FROM gcr.io/cloud-builders/bazel AS bazel_builder
+ARG _BUILD_TOOLS_CACHE
+
+ADD . /workspace
+WORKDIR /workspace
+RUN bazel build \
+ --remote_cache=$_BUILD_TOOLS_CACHE \
+ //src/cmd/cos_customizer:cos_customizer \
+ //src/cmd/provisioner:provisioner_amd64 \
+ //src/cmd/provisioner:provisioner_arm64 \
+ //src/cmd/metadata_watcher:metadata_watcher_amd64 \
+ //src/cmd/metadata_watcher:metadata_watcher_arm64 \
+ //src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64 \
+ //src/cmd/handle_disk_layout:handle_disk_layout_bin_arm64 \
+ @com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_amd64 \
+ @com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_arm64; \
+ mkdir -p _out/amd64; \
+ cp \
+ $(bazel cquery --output=files //src/cmd/cos_customizer:cos_customizer) \
+ $(bazel cquery --output=files //src/cmd/provisioner:provisioner_amd64) \
+ $(bazel cquery --output=files //src/cmd/metadata_watcher:metadata_watcher_amd64) \
+ $(bazel cquery --output=files //src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64) \
+ $(bazel cquery --output=files @com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_amd64) \
+ _out/amd64; \
+ mkdir -p _out/arm64; \
+ cp \
+ $(bazel cquery --output=files //src/cmd/provisioner:provisioner_arm64) \
+ $(bazel cquery --output=files //src/cmd/metadata_watcher:metadata_watcher_arm64) \
+ $(bazel cquery --output=files //src/cmd/handle_disk_layout:handle_disk_layout_bin_arm64) \
+ $(bazel cquery --output=files @com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_arm64) \
+ _out/arm64
+
+# Step 2: build CIDATA and SCRATCH images
+FROM debian:bookworm AS cidata_builder
+
+RUN dpkg --add-architecture arm64; apt-get update; \
+ apt-get install -y --no-install-recommends dosfstools mtools
+
+# Output in /opt/veritysetup_amd64/veritysetup_amd64.tar.gz
+RUN mkdir -p /opt/veritysetup_amd64/{root,debs}
+WORKDIR /opt/veritysetup_amd64/debs
+RUN apt-get download \
+ coreutils:amd64 \
+ tar:amd64 \
+ libacl1:amd64 \
+ libattr1:amd64 \
+ libc6:amd64 \
+ libselinux1:amd64 \
+ libpcre3:amd64 \
+ cryptsetup-bin:amd64 \
+ libblkid1:amd64 \
+ libcryptsetup12:amd64 \
+ libpopt0:amd64 \
+ libuuid1:amd64 \
+ libdevmapper1.02.1:amd64 \
+ libgcrypt20:amd64 \
+ libargon2-1:amd64 \
+ libjson-c5:amd64 \
+ libudev1:amd64 \
+ libssl3:amd64 \
+ libpcre2-8-0:amd64
+WORKDIR /opt/veritysetup_amd64
+RUN for f in debs/*.deb; do dpkg-deb --extract $f root; done; \
+ tar czf veritysetup_amd64.tar.gz -C root .
+
+# Output in /opt/veritysetup_arm64/veritysetup_arm64.tar.gz
+RUN mkdir -p /opt/veritysetup_arm64/{root,debs}
+WORKDIR /opt/veritysetup_arm64/debs
+RUN apt-get download \
+ coreutils:arm64 \
+ tar:arm64 \
+ libacl1:arm64 \
+ libattr1:arm64 \
+ libc6:arm64 \
+ libselinux1:arm64 \
+ libpcre3:arm64 \
+ cryptsetup-bin:arm64 \
+ libblkid1:arm64 \
+ libcryptsetup12:arm64 \
+ libpopt0:arm64 \
+ libuuid1:arm64 \
+ libdevmapper1.02.1:arm64 \
+ libgcrypt20:arm64 \
+ libargon2-1:arm64 \
+ libjson-c5:arm64 \
+ libudev1:arm64 \
+ libssl3:arm64 \
+ libpcre2-8-0:arm64
+WORKDIR /opt/veritysetup_arm64
+RUN for f in debs/*.deb; do dpkg-deb --extract $f root; done; \
+ tar czf veritysetup_arm64.tar.gz -C root .
+
+# Output in /opt/cidata/cidata.img
+RUN mkdir -p /opt/cidata/deps
+WORKDIR /opt/cidata
+COPY --from=bazel_builder /workspace/src/data/startup.yaml deps/user-data
+COPY --from=bazel_builder /workspace/_out/amd64 deps/amd64
+COPY --from=bazel_builder /workspace/_out/arm64 deps/arm64
+RUN mkfs.fat -n CIDATA -S 512 -s 8 -C cidata.img 131072; \
+ touch meta-data; \
+ mcopy -i cidata.img deps/user-data ::/user-data; \
+ mcopy -i cidata.img meta-data ::/meta-data; \
+ mcopy -i cidata.img deps/amd64/provisioner_amd64 ::/provisioner_amd64; \
+ mcopy -i cidata.img deps/arm64/provisioner_arm64 ::/provisioner_arm64; \
+ mcopy -i cidata.img deps/amd64/metadata_watcher_amd64 ::/metadata_watcher_amd64; \
+ mcopy -i cidata.img deps/arm64/metadata_watcher_arm64 ::/metadata_watcher_arm64; \
+ mcopy -i cidata.img deps/amd64/docker-credential-gcr_amd64 ::/docker-credential-gcr_amd64; \
+ mcopy -i cidata.img deps/arm64/docker-credential-gcr_arm64 ::/docker-credential-gcr_arm64; \
+ mcopy -i cidata.img deps/amd64/handle_disk_layout_bin_amd64 ::/handle_disk_layout_bin_amd64; \
+ mcopy -i cidata.img deps/arm64/handle_disk_layout_bin_arm64 ::/handle_disk_layout_bin_arm64; \
+ mcopy -i cidata.img /opt/veritysetup_amd64/veritysetup_amd64.tar.gz ::/veritysetup_amd64.tar.gz; \
+ mcopy -i cidata.img /opt/veritysetup_arm64/veritysetup_arm64.tar.gz ::/veritysetup_arm64.tar.gz
+
+# Output in /opt/scratch/scratch.img
+RUN mkdir -p /opt/scratch
+WORKDIR /opt/scratch
+RUN fallocate -l 512M scratch.img; \
+ mkfs.ext4 scratch.img; \
+ tune2fs -c0 -i0 scratch.img; \
+ e2label scratch.img SCRATCH
+
+# Step 3: build the cos-customizer container image
+FROM gcr.io/compute-image-tools/daisy@sha256:a23774074d5941ed9e25f64ee7e02f96d2f8e09a4d7cee7131b49664267c33c7 AS daisy
+FROM debian:bookworm-slim
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ tar \
+ mtools \
+ ca-certificates
+RUN mkdir -p /tmp; mkdir -p /workspace
+COPY --from=bazel_builder /workspace/src/data /data
+COPY --from=bazel_builder /workspace/_out/amd64/cos_customizer /cos_customizer
+COPY --from=daisy /daisy /daisy
+COPY --from=cidata_builder /opt/cidata/cidata.img /cidata.img
+COPY --from=cidata_builder /opt/scratch/scratch.img /scratch.img
+ENTRYPOINT ["/cos_customizer"]
diff --git a/src/cmd/cos_customizer/cloudbuild.yaml b/src/cmd/cos_customizer/cloudbuild.yaml
index b13cb0e..9de1966 100644
--- a/src/cmd/cos_customizer/cloudbuild.yaml
+++ b/src/cmd/cos_customizer/cloudbuild.yaml
@@ -20,16 +20,17 @@
- |
cat <<EOF | docker build -t bazel -
FROM gcr.io/cloud-builders/bazel
- RUN apt-get update && apt-get install -y mtools
+ RUN apt-get update && apt-get install -y mtools dosfstools
EOF
- name: 'bazel'
args: ['test', '--remote_cache=${_BUILD_TOOLS_CACHE}', '--google_default_credentials', '--spawn_strategy=standalone','--','...','-//src/pkg/tools/...']
-- name: 'bazel'
- args: ['run', '--remote_cache=${_BUILD_TOOLS_CACHE}', '--google_default_credentials', '--spawn_strategy=standalone', ':cos_customizer', '--', '--norun']
- name: 'gcr.io/cloud-builders/docker'
- args: ['tag', 'bazel:cos_customizer', 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${TAG_NAME}']
-- name: 'gcr.io/cloud-builders/docker'
- args: ['tag', 'bazel:cos_customizer', 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:latest']
+ args: ['build',
+ '-t', 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${TAG_NAME}',
+ '-t', 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:latest',
+ '-f', 'src/cmd/cos_customizer/Dockerfile',
+ '--build-arg', '_BUILD_TOOLS_CACHE=${_BUILD_TOOLS_CACHE}',
+ '.']
options:
machineType: 'N1_HIGHCPU_8'
substitutionOption: 'MUST_MATCH'
diff --git a/src/cmd/cos_customizer/finish_image_build_test.go b/src/cmd/cos_customizer/finish_image_build_test.go
index c812062..71cafc9 100644
--- a/src/cmd/cos_customizer/finish_image_build_test.go
+++ b/src/cmd/cos_customizer/finish_image_build_test.go
@@ -20,11 +20,13 @@
"fmt"
"io/ioutil"
"os"
+ "path/filepath"
"testing"
"cos.googlesource.com/cos/tools.git/src/pkg/config"
"cos.googlesource.com/cos/tools.git/src/pkg/fakes"
"cos.googlesource.com/cos/tools.git/src/pkg/fs"
+ "cos.googlesource.com/cos/tools.git/src/pkg/utils"
"cloud.google.com/go/storage"
"github.com/google/subcommands"
@@ -104,6 +106,16 @@
os.RemoveAll(tmpDir)
return "", nil, err
}
+ files.CIDataImg = filepath.Join(tmpDir, "cidata.img")
+ if err := utils.RunCommand([]string{"mkfs.fat", "-n", "CIDATA", "-S", "512", "-s", "8", "-C", files.CIDataImg, "131072"}, tmpDir, nil); err != nil {
+ os.RemoveAll(tmpDir)
+ return "", nil, err
+ }
+ files.ScratchImg, err = createTempFile(tmpDir)
+ if err != nil {
+ os.RemoveAll(tmpDir)
+ return "", nil, err
+ }
return tmpDir, files, nil
}
diff --git a/src/cmd/provisioner/BUILD.bazel b/src/cmd/provisioner/BUILD.bazel
index 3c2c3be..3f0a0d0 100644
--- a/src/cmd/provisioner/BUILD.bazel
+++ b/src/cmd/provisioner/BUILD.bazel
@@ -13,53 +13,6 @@
# limitations under the License.
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data")
-
-# Our goal is for this program to be embedded into this Go package. Go embed
-# only allows files in the same package directory to be embedded. So we need to
-# use a "no-op" genrule to place this binary in the same directory as the
-# package source.
-genrule(
- name = "handle_disk_layout_amd64.bin",
- srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64"],
- outs = ["_handle_disk_layout_amd64.bin"],
- cmd = "cp $< $@",
-)
-
-genrule(
- name = "handle_disk_layout_arm64.bin",
- srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_arm64"],
- outs = ["_handle_disk_layout_arm64.bin"],
- cmd = "cp $< $@",
-)
-
-genrule(
- name = "veritysetup_amd64.img",
- srcs = ["//:veritysetup_amd64.tar"],
- outs = ["_veritysetup_amd64.img"],
- cmd = "cp $< $@",
-)
-
-genrule(
- name = "veritysetup_arm64.img",
- srcs = ["//:veritysetup_arm64.tar"],
- outs = ["_veritysetup_arm64.img"],
- cmd = "cp $< $@",
-)
-
-genrule(
- name = "docker_credential_gcr_amd64",
- srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_amd64"],
- outs = ["docker-credential-gcr_amd64"],
- cmd = "cp $< $@",
-)
-
-genrule(
- name = "docker_credential_gcr_arm64",
- srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_arm64"],
- outs = ["docker-credential-gcr_arm64"],
- cmd = "cp $< $@",
-)
go_library(
name = "provisioner_lib",
@@ -67,21 +20,7 @@
"main.go",
"resume.go",
"run.go",
- "embeds_linux_amd64.go",
- "embeds_linux_arm64.go",
],
- embedsrcs = select({
- "@io_bazel_rules_go//go/toolchain:amd64": [
- ":handle_disk_layout_amd64.bin",
- ":veritysetup_amd64.img",
- ":docker_credential_gcr_amd64",
- ],
- "@io_bazel_rules_go//go/toolchain:arm64": [
- ":handle_disk_layout_arm64.bin",
- ":veritysetup_arm64.img",
- ":docker_credential_gcr_arm64",
- ],
- }),
importpath = "cos.googlesource.com/cos/tools.git/src/cmd/provisioner",
visibility = ["//visibility:private"],
deps = [
diff --git a/src/cmd/provisioner/embeds_linux_amd64.go b/src/cmd/provisioner/embeds_linux_amd64.go
deleted file mode 100644
index 427f337..0000000
--- a/src/cmd/provisioner/embeds_linux_amd64.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2021 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.
-
-package main
-
-import _ "embed"
-
-//go:embed _handle_disk_layout_amd64.bin
-var handleDiskLayoutBin []byte
-
-//go:embed _veritysetup_amd64.img
-var veritySetupImage []byte
-
-//go:embed docker-credential-gcr_amd64
-var dockerCredentialGCR []byte
diff --git a/src/cmd/provisioner/embeds_linux_arm64.go b/src/cmd/provisioner/embeds_linux_arm64.go
deleted file mode 100644
index b3c56b2..0000000
--- a/src/cmd/provisioner/embeds_linux_arm64.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2021 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.
-
-package main
-
-import _ "embed"
-
-//go:embed _handle_disk_layout_arm64.bin
-var handleDiskLayoutBin []byte
-
-//go:embed _veritysetup_arm64.img
-var veritySetupImage []byte
-
-//go:embed docker-credential-gcr_arm64
-var dockerCredentialGCR []byte
diff --git a/src/cmd/provisioner/main.go b/src/cmd/provisioner/main.go
index ef889b2..966ebfb 100644
--- a/src/cmd/provisioner/main.go
+++ b/src/cmd/provisioner/main.go
@@ -32,6 +32,9 @@
stateDir = flag.String("state-dir", "/var/lib/.cos-customizer", "Absolute path to the directory to use for provisioner state. "+
"This directory is used for persisting internal state across reboots, unpacking inputs, and running provisioning scripts. "+
"The size of the directory scales with the size of the inputs.")
+ dockerCredentialGCR = flag.String("docker-credential-gcr", "", "Path to the docker-credential-gcr executable to use during provisioning.")
+ veritySetupImage = flag.String("veritysetup-image", "", "Path to the veritysetup file system tarball to use as a Docker container during provisioning.")
+ handleDiskLayoutBin = flag.String("handle-disk-layout-bin", "", "Path to the handle_disk_layout executable to use during provisioning.")
)
func main() {
@@ -56,9 +59,9 @@
Resize2fsCmd: "resize2fs",
E2fsckCmd: "e2fsck",
RootDir: "/",
- DockerCredentialGCR: dockerCredentialGCR,
- VeritySetupImage: veritySetupImage,
- HandleDiskLayoutBin: handleDiskLayoutBin,
+ DockerCredentialGCR: *dockerCredentialGCR,
+ VeritySetupImage: *veritySetupImage,
+ HandleDiskLayoutBin: *handleDiskLayoutBin,
}
var exitCode int
ret := subcommands.Execute(ctx, deps, &exitCode)
diff --git a/src/data/startup.yaml b/src/data/startup.yaml
index 20b8958..9f55be1 100644
--- a/src/data/startup.yaml
+++ b/src/data/startup.yaml
@@ -101,9 +101,17 @@
status mkdir -p /mnt/disks/cidata
status mount /dev/disk/by-label/CIDATA /mnt/disks/cidata
if [[ ! -d /var/lib/.cos-customizer ]]; then
- run_provisioner /mnt/disks/cidata/provisioner_${ARCH} run --config=/mnt/disks/cidata/config.json
+ run_provisioner /mnt/disks/cidata/provisioner_${ARCH} \
+ --docker-credential-gcr=/mnt/disks/cidata/docker-credential-gcr_${ARCH} \
+ --veritysetup-image=/mnt/disks/cidata/veritysetup_${ARCH}.tar.gz \
+ --handle-disk-layout-bin=/mnt/disks/cidata/handle_disk_layout_bin_${ARCH} \
+ run --config=/mnt/disks/cidata/config.json
else
- run_provisioner /mnt/disks/cidata/provisioner_${ARCH} resume
+ run_provisioner /mnt/disks/cidata/provisioner_${ARCH} \
+ --docker-credential-gcr=/mnt/disks/cidata/docker-credential-gcr_${ARCH} \
+ --veritysetup-image=/mnt/disks/cidata/veritysetup_${ARCH}.tar.gz \
+ --handle-disk-layout-bin=/mnt/disks/cidata/handle_disk_layout_bin_${ARCH} \
+ resume
fi
}
diff --git a/src/pkg/fs/file_system.go b/src/pkg/fs/file_system.go
index e9139b7..d7dd49f 100644
--- a/src/pkg/fs/file_system.go
+++ b/src/pkg/fs/file_system.go
@@ -61,6 +61,12 @@
DaisyWorkflow string
// DaisyBin points to the Daisy binary.
DaisyBin string
+ // CIDataImg points to the vfat image that delivers the provisioner and its
+ // dependencies to the build VM.
+ CIDataImg string
+ // ScratchImg points to an empty ext4 file system image that is used by the
+ // provisioner for scratch space.
+ ScratchImg string
}
// DefaultFiles builds a Files struct with a default file layout.
@@ -74,6 +80,8 @@
ProvConfig: filepath.Join(persistentDir, provConfig),
DaisyWorkflow: filepath.Join(volatileDir, daisyWorkflow),
DaisyBin: daisyBin,
+ CIDataImg: "/cidata.img",
+ ScratchImg: "/scratch.img",
}
}
diff --git a/src/pkg/preloader/BUILD.bazel b/src/pkg/preloader/BUILD.bazel
index 021204a..3fb01ca 100644
--- a/src/pkg/preloader/BUILD.bazel
+++ b/src/pkg/preloader/BUILD.bazel
@@ -14,51 +14,12 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
-genrule(
- name = "scratch",
- outs = ["scratch.img"],
- cmd = "\
-fallocate -l 512M $@;\
-mkfs.ext4 $@;\
-tune2fs -c0 -i0 $@;\
-e2label $@ SCRATCH",
-)
-
-genrule(
- name = "cidata",
- srcs = [
- "//:src/data/startup.yaml",
- "//src/cmd/provisioner:provisioner_amd64",
- "//src/cmd/provisioner:provisioner_arm64",
- "//src/cmd/metadata_watcher:metadata_watcher_amd64",
- "//src/cmd/metadata_watcher:metadata_watcher_arm64",
- ],
- outs = ["cidata.img"],
- cmd = "\
-$(location @dosfstools//:mkfs.fat) -n CIDATA -S 512 -s 8 -C $@ 131072;\
-touch meta-data;\
-$(location @mtools//:mcopy) -i $@ $(location //:src/data/startup.yaml) ::/user-data;\
-$(location @mtools//:mcopy) -i $@ meta-data ::/meta-data;\
-$(location @mtools//:mcopy) -i $@ $(location //src/cmd/provisioner:provisioner_amd64) ::/provisioner_amd64;\
-$(location @mtools//:mcopy) -i $@ $(location //src/cmd/provisioner:provisioner_arm64) ::/provisioner_arm64;\
-$(location @mtools//:mcopy) -i $@ $(location //src/cmd/metadata_watcher:metadata_watcher_amd64) ::/metadata_watcher_amd64;\
-$(location @mtools//:mcopy) -i $@ $(location //src/cmd/metadata_watcher:metadata_watcher_arm64) ::/metadata_watcher_arm64;",
- tools = [
- "@dosfstools//:mkfs.fat",
- "@mtools//:mcopy",
- ],
-)
-
go_library(
name = "preloader",
srcs = [
"gcs.go",
"preload.go",
],
- embedsrcs = [
- ":cidata",
- ":scratch"
- ],
importpath = "cos.googlesource.com/cos/tools.git/src/pkg/preloader",
visibility = ["//visibility:public"],
deps = [
diff --git a/src/pkg/preloader/preload.go b/src/pkg/preloader/preload.go
index 23dccbf..dba5e9e 100644
--- a/src/pkg/preloader/preload.go
+++ b/src/pkg/preloader/preload.go
@@ -18,7 +18,6 @@
import (
"context"
- _ "embed"
"encoding/json"
"fmt"
"io/ioutil"
@@ -40,12 +39,6 @@
"cloud.google.com/go/storage"
)
-//go:embed cidata.img
-var ciDataImg []byte
-
-//go:embed scratch.img
-var scratchImg []byte
-
// storeInGCS stores the given files in GCS using the given gcsManager.
// Files to store are provided in a map where each key is a file on the local
// file system and each value is the relative path in GCS at which to store the
@@ -203,18 +196,16 @@
return utils.RunCommand([]string{"mcopy", "-i", path, files.ProvConfig, "::/config.json"}, "", nil)
}
-func writeImage(imgData *[]byte) (path string, err error) {
+func writeImage(fileName string) (path string, err error) {
img, err := ioutil.TempFile(fs.ScratchDir, "img-")
if err != nil {
return "", err
}
- _, writeErr := img.Write(*imgData)
- closeErr := img.Close()
- if writeErr != nil {
- return "", writeErr
+ if err := img.Close(); err != nil {
+ return "", err
}
- if closeErr != nil {
- return "", closeErr
+ if err := utils.CopyFile(fileName, img.Name()); err != nil {
+ return "", err
}
return img.Name(), err
}
@@ -305,7 +296,7 @@
if err := updateProvConfig(provConfig, buildSpec, buildContexts, gcs, files); err != nil {
return nil, err
}
- ciDataFile, err := writeImage(&ciDataImg)
+ ciDataFile, err := writeImage(files.CIDataImg)
if err != nil {
return nil, err
}
@@ -316,11 +307,7 @@
if err != nil {
return nil, err
}
- scratchImgFile, err := writeImage(&scratchImg)
- if err != nil {
- return nil, err
- }
- scratchImgFileTar, err := tarImage(scratchImgFile)
+ scratchImgFileTar, err := tarImage(files.ScratchImg)
if err != nil {
return nil, err
}
diff --git a/src/pkg/preloader/preload_test.go b/src/pkg/preloader/preload_test.go
index 045a8bc..bd14663 100644
--- a/src/pkg/preloader/preload_test.go
+++ b/src/pkg/preloader/preload_test.go
@@ -28,6 +28,7 @@
"cos.googlesource.com/cos/tools.git/src/pkg/fakes"
"cos.googlesource.com/cos/tools.git/src/pkg/fs"
"cos.googlesource.com/cos/tools.git/src/pkg/provisioner"
+ "cos.googlesource.com/cos/tools.git/src/pkg/utils"
"github.com/google/go-cmp/cmp"
compute "google.golang.org/api/compute/v1"
@@ -65,6 +66,16 @@
os.RemoveAll(tmpDir)
return "", nil, err
}
+ files.CIDataImg = filepath.Join(tmpDir, "cidata.img")
+ if err := utils.RunCommand([]string{"mkfs.fat", "-n", "CIDATA", "-S", "512", "-s", "8", "-C", files.CIDataImg, "131072"}, tmpDir, nil); err != nil {
+ os.RemoveAll(tmpDir)
+ return "", nil, err
+ }
+ files.ScratchImg, err = createTempFile(tmpDir)
+ if err != nil {
+ os.RemoveAll(tmpDir)
+ return "", nil, err
+ }
return tmpDir, files, nil
}
diff --git a/src/pkg/provisioner/config.go b/src/pkg/provisioner/config.go
index a0ccf09..adb1191 100644
--- a/src/pkg/provisioner/config.go
+++ b/src/pkg/provisioner/config.go
@@ -94,9 +94,9 @@
type stepDeps struct {
// GCSClient is used to access Google Cloud Storage.
GCSClient *storage.Client
- // VeritySetupImage is an embedded Docker image that contains the
- // "veritysetup" tool.
- VeritySetupImage []byte
+ // VeritySetupImage is a path to a file system tarball (can be imported as a
+ // Docker image) that contains the "veritysetup" tool.
+ VeritySetupImage string
}
type step interface {
diff --git a/src/pkg/provisioner/disk_layout.go b/src/pkg/provisioner/disk_layout.go
index 5cb418a..7950700 100644
--- a/src/pkg/provisioner/disk_layout.go
+++ b/src/pkg/provisioner/disk_layout.go
@@ -101,7 +101,11 @@
if err := mountFunc("", filepath.Join(deps.RootDir, "tmp"), "", unix.MS_REMOUNT|unix.MS_NOSUID|unix.MS_NODEV, ""); err != nil {
return fmt.Errorf("error remounting /tmp as exec: %v", err)
}
- if err := ioutil.WriteFile(filepath.Join(deps.RootDir, "tmp", "handle_disk_layout.bin"), deps.HandleDiskLayoutBin, 0744); err != nil {
+ out := filepath.Join(deps.RootDir, "tmp", "handle_disk_layout.bin")
+ if err := utils.CopyFile(deps.HandleDiskLayoutBin, out); err != nil {
+ return err
+ }
+ if err := os.Chmod(out, 755); err != nil {
return err
}
data := fmt.Sprintf(`[Unit]
diff --git a/src/pkg/provisioner/provisioner.go b/src/pkg/provisioner/provisioner.go
index 954a5eb..48f9f28 100644
--- a/src/pkg/provisioner/provisioner.go
+++ b/src/pkg/provisioner/provisioner.go
@@ -115,7 +115,10 @@
}
}
if _, err := os.Stat(dockerCredentialGCRPath); os.IsNotExist(err) {
- if err := ioutil.WriteFile(dockerCredentialGCRPath, deps.DockerCredentialGCR, 0744); err != nil {
+ if err := utils.CopyFile(deps.DockerCredentialGCR, dockerCredentialGCRPath); err != nil {
+ return err
+ }
+ if err := os.Chmod(dockerCredentialGCRPath, 0755); err != nil {
return err
}
}
@@ -334,15 +337,15 @@
// RootDir is the path to the root file system. Should be "/" in all real
// runtime situations.
RootDir string
- // DockerCredentialGCR is an embedded docker-credential-gcr program to use as a Docker
+ // DockerCredentialGCR is a path to a docker-credential-gcr program to use as a Docker
// credential helper.
- DockerCredentialGCR []byte
- // VeritySetupImage is an embedded Docker image that contains the
- // "veritysetup" tool.
- VeritySetupImage []byte
- // HandleDiskLayoutBin is an embedded program for reformatting a COS disk
+ DockerCredentialGCR string
+ // VeritySetupImage is a path to a file system tarball (which can be imported
+ // as a Docker image) that contains the "veritysetup" tool.
+ VeritySetupImage string
+ // HandleDiskLayoutBin is a path to a program for reformatting a COS disk
// image.
- HandleDiskLayoutBin []byte
+ HandleDiskLayoutBin string
}
func run(ctx context.Context, deps Deps, runState *state) (err error) {
diff --git a/src/pkg/provisioner/provisioner_test.go b/src/pkg/provisioner/provisioner_test.go
index 92af977..a4172c2 100644
--- a/src/pkg/provisioner/provisioner_test.go
+++ b/src/pkg/provisioner/provisioner_test.go
@@ -27,8 +27,6 @@
"golang.org/x/sys/unix"
)
-const trueExecutable = "#!/bin/bash\ntrue"
-
func testDataDir(t *testing.T) string {
t.Helper()
path, err := filepath.Abs("testdata")
@@ -73,9 +71,9 @@
GCSClient: nil,
TarCmd: "",
SystemctlCmd: "",
- DockerCredentialGCR: []byte(trueExecutable),
- VeritySetupImage: []byte(trueExecutable),
- HandleDiskLayoutBin: []byte(trueExecutable),
+ DockerCredentialGCR: "/bin/true",
+ VeritySetupImage: "/bin/true",
+ HandleDiskLayoutBin: "/bin/true",
}
config := Config{}
if err := Run(ctx, deps, dir, config); err != errStateAlreadyExists {
@@ -118,9 +116,9 @@
TarCmd: "tar",
SystemctlCmd: "/bin/true",
RootDir: tempDir,
- DockerCredentialGCR: []byte(trueExecutable),
- VeritySetupImage: []byte(trueExecutable),
- HandleDiskLayoutBin: []byte(trueExecutable),
+ DockerCredentialGCR: "/bin/true",
+ VeritySetupImage: "/bin/true",
+ HandleDiskLayoutBin: "/bin/true",
}
stateDir := filepath.Join(tempDir, "var", "lib", ".cos-customizer")
if err := stubMountInfo(filepath.Join(tempDir, "proc", "self", "mountinfo"), filepath.Join(stateDir, "bin")); err != nil {
@@ -193,9 +191,9 @@
TarCmd: "tar",
SystemctlCmd: "/bin/true",
RootDir: tempDir,
- DockerCredentialGCR: []byte(trueExecutable),
- VeritySetupImage: []byte(trueExecutable),
- HandleDiskLayoutBin: []byte(trueExecutable),
+ DockerCredentialGCR: "/bin/true",
+ VeritySetupImage: "/bin/true",
+ HandleDiskLayoutBin: "/bin/true",
}
stateDir := filepath.Join(tempDir, "var", "lib", ".cos-customizer")
if err := stubMountInfo(filepath.Join(tempDir, "proc", "self", "mountinfo"), filepath.Join(stateDir, "bin")); err != nil {
@@ -276,9 +274,9 @@
TarCmd: "tar",
SystemctlCmd: "/bin/true",
RootDir: tempDir,
- DockerCredentialGCR: []byte(trueExecutable),
- VeritySetupImage: []byte(trueExecutable),
- HandleDiskLayoutBin: []byte(trueExecutable),
+ DockerCredentialGCR: "/bin/true",
+ VeritySetupImage: "/bin/true",
+ HandleDiskLayoutBin: "/bin/true",
}
stateDir := filepath.Join(tempDir, "var", "lib", ".cos-customizer")
if err := stubMountInfo(filepath.Join(tempDir, "proc", "self", "mountinfo"), filepath.Join(stateDir, "bin")); err != nil {
diff --git a/src/pkg/provisioner/seal_oem_step.go b/src/pkg/provisioner/seal_oem_step.go
index 9c1415e..22e8795 100644
--- a/src/pkg/provisioner/seal_oem_step.go
+++ b/src/pkg/provisioner/seal_oem_step.go
@@ -16,12 +16,12 @@
import (
"context"
- "io/ioutil"
"log"
"os"
"path/filepath"
"cos.googlesource.com/cos/tools.git/src/pkg/tools"
+ "cos.googlesource.com/cos/tools.git/src/pkg/utils"
)
type SealOEMStep struct{}
@@ -30,7 +30,7 @@
log.Println("Sealing the OEM partition with dm-verity")
veritysetupImgPath := filepath.Join(runState.dir, "veritysetup.img")
if _, err := os.Stat(veritysetupImgPath); os.IsNotExist(err) {
- if err := ioutil.WriteFile(veritysetupImgPath, deps.VeritySetupImage, 0644); err != nil {
+ if err := utils.CopyFile(deps.VeritySetupImage, veritysetupImgPath); err != nil {
return err
}
}
diff --git a/src/pkg/tools/seal_oem_partition.go b/src/pkg/tools/seal_oem_partition.go
index cd86cf6..604bc75 100644
--- a/src/pkg/tools/seal_oem_partition.go
+++ b/src/pkg/tools/seal_oem_partition.go
@@ -73,13 +73,14 @@
// loadVeritysetupImage loads the docker image of veritysetup.
// return the image ID.
func loadVeritysetupImage(imgPath string) (string, error) {
- cmd := exec.Command("sudo", "docker", "load", "-i", imgPath)
+ tag := "veritysetup:veritysetup_" + runtime.GOARCH
+ cmd := exec.Command("sudo", "docker", "import", imgPath, tag)
if err := cmd.Run(); err != nil {
return "", fmt.Errorf("error in loading docker image, "+
"input: imgPath=%q, error msg: (%v)", imgPath, err)
}
var idBuf bytes.Buffer
- cmd = exec.Command("sudo", "docker", "images", "veritysetup:veritysetup_"+runtime.GOARCH, "-q")
+ cmd = exec.Command("sudo", "docker", "images", tag, "-q")
cmd.Stdout = &idBuf
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
@@ -199,7 +200,7 @@
dmVersion := 0
for idx, line := range lines {
if !strings.Contains(line, "dm=") &&
- !strings.Contains(line, "dm-mod.create=") {
+ !strings.Contains(line, "dm-mod.create=") {
continue
}
var startPos = strings.Index(line, "dm=")
@@ -214,7 +215,7 @@
lineBuf[startPos+4] = '2'
lines[idx] = strings.Join(append(strings.Split(string(lineBuf), ","), entryStringV0), ",")
} else {
- configs := []string {string(lineBuf), entryStringV1}
+ configs := []string{string(lineBuf), entryStringV1}
lines[idx] = strings.Join(configs, ";")
}
}
diff --git a/src/third_party/dosfstools/BUILD.bazel b/src/third_party/dosfstools/BUILD.bazel
deleted file mode 100644
index 8e71575..0000000
--- a/src/third_party/dosfstools/BUILD.bazel
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2021 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.
diff --git a/src/third_party/dosfstools/BUILD.dosfstools.bazel b/src/third_party/dosfstools/BUILD.dosfstools.bazel
deleted file mode 100644
index 98ee6e8..0000000
--- a/src/third_party/dosfstools/BUILD.dosfstools.bazel
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2021 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.
-
-load("@rules_foreign_cc//tools/build_defs:configure.bzl", "configure_make")
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
- name = "all_srcs",
- srcs = glob(["**"]),
-)
-
-configure_make(
- name = "dosfstools_pkg",
- lib_source = ":all_srcs",
- configure_options = ["--disable-dependency-tracking"],
- make_commands = [
- # dosfstools requires the path to 'make' be present in the MAKE
- # variable. Since the configure_make() rule doesn't do this for us, some
- # magic is needed.
- # 1. Set MAKE to the output of a 'shell' function that reads the path of
- # the parent process. The parent process of the 'shell' function is the
- # make process, run by configure_make() using the correct make program.
- # 2. Write "$$PID" as "$$$PID$$". We do this because the
- # configure_make() rule has a substitution that does "$$PID$$" ->
- # "$PID".
- "make MAKE='$(shell realpath /proc/$$$PPID$$/exe)'",
- "make MAKE='$(shell realpath /proc/$$$PPID$$/exe)' install",
- ],
- out_bin_dir = "sbin",
- binaries = ["mkfs.fat"],
-)
-
-filegroup(
- name = "mkfs.fat",
- srcs = [":dosfstools_pkg"],
- output_group = "mkfs.fat",
-)
diff --git a/src/third_party/dosfstools/dosfstools_repositories.bzl b/src/third_party/dosfstools/dosfstools_repositories.bzl
deleted file mode 100644
index 1c839ca..0000000
--- a/src/third_party/dosfstools/dosfstools_repositories.bzl
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2021 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.
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
-
-def dosfstools_repositories():
- """Load all repositories needed for dosfstools."""
-
- maybe(
- http_archive,
- name = "dosfstools",
- build_file = Label("//src/third_party/dosfstools:BUILD.dosfstools.bazel"),
- strip_prefix = "dosfstools-4.2",
- urls = ["https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz"],
- sha256 = "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527",
- )
diff --git a/src/third_party/mtools/BUILD.bazel b/src/third_party/mtools/BUILD.bazel
deleted file mode 100644
index 8e71575..0000000
--- a/src/third_party/mtools/BUILD.bazel
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2021 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.
diff --git a/src/third_party/mtools/BUILD.mtools.bazel b/src/third_party/mtools/BUILD.mtools.bazel
deleted file mode 100644
index 9b0f74d..0000000
--- a/src/third_party/mtools/BUILD.mtools.bazel
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2021 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.
-
-load("@rules_foreign_cc//tools/build_defs:configure.bzl", "configure_make")
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
- name = "all_srcs",
- srcs = glob(["**"]),
-)
-
-configure_make(
- name = "mtools_pkg",
- lib_source = ":all_srcs",
- binaries = ["mcopy"],
-)
-
-filegroup(
- name = "mcopy",
- srcs = [":mtools_pkg"],
- output_group = "mcopy",
-)
diff --git a/src/third_party/mtools/mtools_repositories.bzl b/src/third_party/mtools/mtools_repositories.bzl
deleted file mode 100644
index 79064d9..0000000
--- a/src/third_party/mtools/mtools_repositories.bzl
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2021 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.
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
-
-def mtools_repositories():
- """Load all repositories needed for mtools."""
-
- maybe(
- http_archive,
- name = "mtools",
- build_file = Label("//src/third_party/mtools:BUILD.mtools.bazel"),
- strip_prefix = "mtools-4.0.26",
- urls = [
- "https://mirror.bazel.build/ftp.gnu.org/gnu/mtools/mtools-4.0.26.tar.gz",
- "http://ftp.gnu.org/gnu/mtools/mtools-4.0.26.tar.gz",
- ],
- sha256 = "b1adb6973d52b3b70b16047e682f96ef1b669d6b16894c9056a55f407e71cd0f",
- )
diff --git a/testing/deprecate_test.yaml b/testing/deprecate_test.yaml
index 93dfa34..572cd18 100644
--- a/testing/deprecate_test.yaml
+++ b/testing/deprecate_test.yaml
@@ -13,38 +13,38 @@
# limitations under the License.
substitutions:
- "_TEST": "deprecate_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'deprecate_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'gcr.io/cloud-builders/gcloud'
- args: ["compute", "images", "create", "preload-test-$BUILD_ID-old",
- "--source-image=${_INPUT_IMAGE}", "--source-image-project=${_INPUT_PROJECT}",
- "--family=test-family"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-family=test-family",
- "-deprecate-old-images",
- "-image-project=$PROJECT_ID"]
+ args: ['compute', 'images', 'create', 'preload-test-$BUILD_ID-old',
+ '--source-image=${_INPUT_IMAGE}', '--source-image-project=${_INPUT_PROJECT}',
+ '--family=test-family']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-family=test-family',
+ '-deprecate-old-images',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: '/bin/bash'
env:
- - "OLD_IMAGE=preload-test-$BUILD_ID-old"
- - "IMAGE=preload-test-$BUILD_ID"
- - "PROJECT=$PROJECT_ID"
- args: ["/workspace/testing/${_TEST}/run_test.sh"]
+ - 'OLD_IMAGE=preload-test-$BUILD_ID-old'
+ - 'IMAGE=preload-test-$BUILD_ID'
+ - 'PROJECT=$PROJECT_ID'
+ args: ['/workspace/testing/${_TEST}/run_test.sh']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/disable_auto_update_test.yaml b/testing/disable_auto_update_test.yaml
index 4231a0e..5a724b5 100644
--- a/testing/disable_auto_update_test.yaml
+++ b/testing/disable_auto_update_test.yaml
@@ -13,34 +13,34 @@
# limitations under the License.
substitutions:
- "_TEST": "disable_auto_update_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'disable_auto_update_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["disable-auto-update"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['disable-auto-update']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/env_test.yaml b/testing/env_test.yaml
index dad5b19..11b1a8e 100644
--- a/testing/env_test.yaml
+++ b/testing/env_test.yaml
@@ -13,33 +13,33 @@
# limitations under the License.
substitutions:
- "_TEST": "env_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'env_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh",
- "-env=HELLO=hello"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh',
+ '-env=HELLO=hello']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/extend_oem_test/extend_oem_test.yaml b/testing/extend_oem_test/extend_oem_test.yaml
index 5516179..dea2b5a 100644
--- a/testing/extend_oem_test/extend_oem_test.yaml
+++ b/testing/extend_oem_test/extend_oem_test.yaml
@@ -13,40 +13,40 @@
# limitations under the License.
substitutions:
- "_TEST": "extend_oem_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
- "_OEM_SIZE": ""
- "_DISK_SIZE": ""
- "_OEM_SIZE_TH": ""
+ '_TEST': 'extend_oem_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
+ '_OEM_SIZE': ''
+ '_DISK_SIZE': ''
+ '_OEM_SIZE_TH': ''
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'busybox'
- args: ["sed", "-i", "-e", "s|%s|'${_OEM_SIZE_TH}'|",
- "testing/${_TEST}/preload_test.cfg"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID",
- "-disk-size-gb=${_DISK_SIZE}",
- "-oem-size=${_OEM_SIZE}"]
+ args: ['sed', '-i', '-e', 's|%s|"${_OEM_SIZE_TH}"|',
+ 'testing/${_TEST}/preload_test.cfg']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID',
+ '-disk-size-gb=${_DISK_SIZE}',
+ '-oem-size=${_OEM_SIZE}']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/gpu_test/gpu_test.yaml b/testing/gpu_test/gpu_test.yaml
index c9f49de..d97fe5c 100644
--- a/testing/gpu_test/gpu_test.yaml
+++ b/testing/gpu_test/gpu_test.yaml
@@ -13,16 +13,16 @@
# limitations under the License.
substitutions:
- "_TEST": "gpu_test"
- "_INPUT_IMAGE": "cos-89-16108-798-1"
- "_INPUT_PROJECT": "cos-cloud"
- "_DRIVER_VERSION": ""
- "_DEPS_DIR": ""
+ '_TEST': 'gpu_test'
+ '_INPUT_IMAGE': 'cos-89-16108-798-1'
+ '_INPUT_PROJECT': 'cos-cloud'
+ '_DRIVER_VERSION': ''
+ '_DEPS_DIR': ''
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'ubuntu'
- args:
+ args:
- bash
- -c
- |
@@ -33,32 +33,32 @@
sub="${ver}"
fi
sed -i -e "s|%s|'${sub}'|" testing/${_TEST}/preload_test.cfg
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["install-gpu",
- "-version=${_DRIVER_VERSION}",
- "-gpu-type=nvidia-tesla-t4",
- "-deps-dir=${_DEPS_DIR}"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['install-gpu',
+ '-version=${_DRIVER_VERSION}',
+ '-gpu-type=nvidia-tesla-t4',
+ '-deps-dir=${_DEPS_DIR}']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "-var:vm_workflow",
- "./gpu_vm.wf.json", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', '-var:vm_workflow',
+ './gpu_vm.wf.json', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/image_test.yaml b/testing/image_test.yaml
index 6eaeb9e..cb82e30 100644
--- a/testing/image_test.yaml
+++ b/testing/image_test.yaml
@@ -13,39 +13,39 @@
# limitations under the License.
substitutions:
- "_TEST": "image_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'image_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-labels=hello=world,test_key=test_value",
- "-licenses=projects/cos-cloud/global/licenses/cos-gpu",
- "-disk-size-gb=50",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-family=test-family",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-labels=hello=world,test_key=test_value',
+ '-licenses=projects/cos-cloud/global/licenses/cos-gpu',
+ '-disk-size-gb=50',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-family=test-family',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: '/bin/bash'
env:
- - "IMAGE=preload-test-$BUILD_ID"
- - "PROJECT=$PROJECT_ID"
- - "LABELS=hello=world;test_key=test_value"
- - "FAMILY=test-family"
- - "DISK_SIZE_GB=50"
- - "LICENSES=https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos-gpu;https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos"
- args: ["/workspace/testing/${_TEST}/run_test.sh"]
+ - 'IMAGE=preload-test-$BUILD_ID'
+ - 'PROJECT=$PROJECT_ID'
+ - 'LABELS=hello=world;test_key=test_value'
+ - 'FAMILY=test-family'
+ - 'DISK_SIZE_GB=50'
+ - 'LICENSES=https://www.googleapis.com/compute/v1/projects/cos-cloud-shielded/global/licenses/shielded-cos;https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos-pcid;https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos;https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos-gpu'
+ args: ['/workspace/testing/${_TEST}/run_test.sh']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/install_packages_remote_pkgspec_test.yaml b/testing/install_packages_remote_pkgspec_test.yaml
index 04a7ea6..66bcfac 100644
--- a/testing/install_packages_remote_pkgspec_test.yaml
+++ b/testing/install_packages_remote_pkgspec_test.yaml
@@ -20,21 +20,21 @@
'_INPUT_PKGSPEC': 'testing/install_packages_remote_pkgspec_test/kubernetes_pkg_spec.tar.gz'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ['run', '--spawn_strategy=standalone', ':cos_customizer', '--', '--norun']
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'gcr.io/cloud-builders/gsutil'
- args: [ "-m", "cp", "${_INPUT_PKGSPEC}", "gs://${PROJECT_ID}_cloudbuild/" ]
-- name: 'bazel:cos_customizer'
+ args: [ '-m', 'cp', '${_INPUT_PKGSPEC}', 'gs://${PROJECT_ID}_cloudbuild/' ]
+- name: 'cos_customizer'
args: ['start-image-build',
'-build-context=testing/${_TEST}',
'-image-name=${_INPUT_IMAGE}',
'-image-project=${_INPUT_PROJECT}',
'-gcs-bucket=${PROJECT_ID}_cloudbuild',
'-gcs-workdir=customizer-$BUILD_ID']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['anthos-installer-install',
'-pkgspec-url=gs://${PROJECT_ID}_cloudbuild/${_INPUT_PKGSPEC_FILE}']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['finish-image-build',
'-zone=us-west1-b',
'-project=$PROJECT_ID',
@@ -42,11 +42,11 @@
'-image-project=$PROJECT_ID',
'-timeout=5m']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
- name: 'gcr.io/cloud-builders/gsutil'
- args: ["rm", "gs://${PROJECT_ID}_cloudbuild/kubernetes_pkg_spec.tar.gz" ]
+ args: ['rm', 'gs://${PROJECT_ID}_cloudbuild/kubernetes_pkg_spec.tar.gz' ]
options:
machineType: 'N1_HIGHCPU_32'
timeout: '7200s'
diff --git a/testing/install_packages_test.yaml b/testing/install_packages_test.yaml
index bc52b33..20e4535 100644
--- a/testing/install_packages_test.yaml
+++ b/testing/install_packages_test.yaml
@@ -17,19 +17,19 @@
'_INPUT_IMAGE': 'cos-85-13310-1260-8'
'_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ['run', '--spawn_strategy=standalone', ':cos_customizer', '--', '--norun']
-- name: 'bazel:cos_customizer'
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
args: ['start-image-build',
'-build-context=testing/${_TEST}',
'-image-name=${_INPUT_IMAGE}',
'-image-project=${_INPUT_PROJECT}',
'-gcs-bucket=${PROJECT_ID}_cloudbuild',
'-gcs-workdir=customizer-$BUILD_ID']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['anthos-installer-install',
'-pkgspec-url=pkgspec']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['finish-image-build',
'-zone=us-west1-b',
'-project=$PROJECT_ID',
@@ -37,9 +37,9 @@
'-image-project=$PROJECT_ID',
'-timeout=5m']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
timeout: '7200s'
diff --git a/testing/machine_type_test.yaml b/testing/machine_type_test.yaml
index a230666..0ea2322 100644
--- a/testing/machine_type_test.yaml
+++ b/testing/machine_type_test.yaml
@@ -13,33 +13,33 @@
# limitations under the License.
substitutions:
- "_TEST": "machine_type_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'machine_type_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: "gcr.io/cloud-builders/bazel"
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: "bazel:cos_customizer"
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: "bazel:cos_customizer"
- args: ["run-script",
- "-script=preload.sh"]
-- name: "bazel:cos_customizer"
- args: ["finish-image-build",
- "-machine-type=n1-standard-8",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
-- name: "gcr.io/compute-image-tools/daisy"
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-machine-type=n1-standard-8',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
+- name: 'gcr.io/compute-image-tools/daisy'
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
- machineType: "N1_HIGHCPU_8"
-timeout: "7200s"
+ machineType: 'N1_HIGHCPU_8'
+timeout: '7200s'
diff --git a/testing/milestone_test.yaml b/testing/milestone_test.yaml
index c1e4dbf..e74e31e 100644
--- a/testing/milestone_test.yaml
+++ b/testing/milestone_test.yaml
@@ -13,29 +13,29 @@
# limitations under the License.
substitutions:
- "_TEST": "milestone_test"
- "_INPUT_IMAGE": "69"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'milestone_test'
+ '_INPUT_IMAGE': '69'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-milestone=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-milestone=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/multi_script/preload_test.cfg b/testing/multi_script/preload_test.cfg
index 203cd15..602f265 100644
--- a/testing/multi_script/preload_test.cfg
+++ b/testing/multi_script/preload_test.cfg
@@ -60,7 +60,7 @@
}
testVersion() {
- expected="10895.0.0"
+ expected="16623.461.15"
actual=$(. /etc/os-release; echo "${BUILD_ID}")
if [[ "${expected}" != "${actual}" ]]; then
echo "expected version: ${expected}"
diff --git a/testing/multi_script_test.yaml b/testing/multi_script_test.yaml
index 10afdeb..9f30632 100644
--- a/testing/multi_script_test.yaml
+++ b/testing/multi_script_test.yaml
@@ -13,35 +13,35 @@
# limitations under the License.
substitutions:
- "_TEST": "multi_script"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'multi_script'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload_1.sh"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload_2.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload_1.sh']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload_2.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/network_subnet_test.yaml b/testing/network_subnet_test.yaml
index 4c39fc6..1304232 100644
--- a/testing/network_subnet_test.yaml
+++ b/testing/network_subnet_test.yaml
@@ -16,45 +16,43 @@
# This test uses subnetwork `cos-customizer-test` in default VPC for the preload VM.
substitutions:
- "_TEST": "network_subnet_test"
- "_INPUT_IMAGE": "cos-85-13310-1260-8"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'network_subnet_test'
+ '_INPUT_IMAGE': 'cos-85-13310-1260-8'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: "gcr.io/cloud-builders/bazel"
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
args: [ 'gcloud', 'compute', 'networks', 'subnets',
'create', 'cos-customizer-test',
'--project', '${PROJECT_ID}', '--network', 'default', '--region', 'us-central1',
- '--range', '10.124.0.0/20'
- ]
-- name: "bazel:cos_customizer"
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: "bazel:cos_customizer"
- args: ["run-script",
- "-script=preload.sh"]
-- name: "bazel:cos_customizer"
- args: ["finish-image-build",
- "-machine-type=n1-standard-8",
- "-zone=us-central1-a",
- "-project=$PROJECT_ID",
- "-subnet=regions/us-central1/subnetworks/cos-customizer-test",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
-- name: "gcr.io/compute-image-tools/daisy"
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ '--range', '10.124.0.0/20']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-machine-type=n1-standard-8',
+ '-zone=us-central1-a',
+ '-project=$PROJECT_ID',
+ '-subnet=regions/us-central1/subnetworks/cos-customizer-test',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
+- name: 'gcr.io/compute-image-tools/daisy'
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
args: [ 'gcloud', 'compute', 'networks', 'subnets',
'delete', 'cos-customizer-test',
- '--project', '${PROJECT_ID}', '--region', 'us-central1',
- ]
+ '--project', '${PROJECT_ID}', '--region', 'us-central1']
options:
- machineType: "N1_HIGHCPU_8"
-timeout: "7200s"
+ machineType: 'N1_HIGHCPU_8'
+timeout: '7200s'
diff --git a/testing/parallel_test.yaml b/testing/parallel_test.yaml
index 598a901..5620f4e 100644
--- a/testing/parallel_test.yaml
+++ b/testing/parallel_test.yaml
@@ -13,90 +13,90 @@
# limitations under the License.
substitutions:
- "_TEST_1": "smoke_test"
- "_INPUT_IMAGE_1": "cos-dev-69-10895-0-0"
- "_TEST_2": "gpu_test"
- "_INPUT_IMAGE_2": "cos-89-16108-798-1"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST_1': 'smoke_test'
+ '_INPUT_IMAGE_1': 'cos-93-16623-461-15'
+ '_TEST_2': 'gpu_test'
+ '_INPUT_IMAGE_2': 'cos-89-16108-798-1'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- id: "docker-build"
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ id: 'docker-build'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
# TEST_1 workflow
-- name: 'bazel:cos_customizer'
- waitFor: "docker-build"
- id: "test-1-start-build"
- args: ["-local-state-workdir=.${_TEST_1}",
- "start-image-build",
- "-build-context=testing/${_TEST_1}",
- "-image-name=${_INPUT_IMAGE_1}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-${_TEST_1}-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- waitFor: "test-1-start-build"
- id: "test-1-run-script"
- args: ["-local-state-workdir=.${_TEST_1}",
- "run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- waitFor: "test-1-run-script"
- id: "test-1-finish-build"
- args: ["-local-state-workdir=.${_TEST_1}",
- "finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-t1-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'cos_customizer'
+ waitFor: 'docker-build'
+ id: 'test-1-start-build'
+ args: ['-local-state-workdir=.${_TEST_1}',
+ 'start-image-build',
+ '-build-context=testing/${_TEST_1}',
+ '-image-name=${_INPUT_IMAGE_1}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-${_TEST_1}-$BUILD_ID']
+- name: 'cos_customizer'
+ waitFor: 'test-1-start-build'
+ id: 'test-1-run-script'
+ args: ['-local-state-workdir=.${_TEST_1}',
+ 'run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ waitFor: 'test-1-run-script'
+ id: 'test-1-finish-build'
+ args: ['-local-state-workdir=.${_TEST_1}',
+ 'finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-t1-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- waitFor: "test-1-finish-build"
- id: "test-1-test-build"
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-t1-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST_1}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ waitFor: 'test-1-finish-build'
+ id: 'test-1-test-build'
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-t1-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST_1}/preload_test.cfg', 'testing/util/run_test.wf.json']
# TEST_2 workflow
- name: 'busybox'
- args: ["sed", "-i", "-e", "s|%s|'450.216.04'|",
- "testing/${_TEST_2}/preload_test.cfg"]
-- name: 'bazel:cos_customizer'
- waitFor: "docker-build"
- id: "test-2-start-build"
- args: ["-local-state-workdir=.${_TEST_2}",
- "start-image-build",
- "-build-context=testing/${_TEST_2}",
- "-image-name=${_INPUT_IMAGE_2}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-${_TEST_2}-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- waitFor: "test-2-start-build"
- id: "test-2-install-gpu"
- args: ["-local-state-workdir=.${_TEST_2}",
- "install-gpu",
- "-version=450.216.04",
- "-gpu-type=nvidia-tesla-t4"]
-- name: 'bazel:cos_customizer'
- waitFor: "test-2-install-gpu"
- id: "test-2-run-script"
- args: ["-local-state-workdir=.${_TEST_2}",
- "run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- waitFor: "test-2-run-script"
- id: "test-2-finish-build"
- args: ["-local-state-workdir=.${_TEST_2}",
- "finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-t2-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+ args: ['sed', '-i', '-e', 's|%s|"450.216.04"|',
+ 'testing/${_TEST_2}/preload_test.cfg']
+- name: 'cos_customizer'
+ waitFor: 'docker-build'
+ id: 'test-2-start-build'
+ args: ['-local-state-workdir=.${_TEST_2}',
+ 'start-image-build',
+ '-build-context=testing/${_TEST_2}',
+ '-image-name=${_INPUT_IMAGE_2}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-${_TEST_2}-$BUILD_ID']
+- name: 'cos_customizer'
+ waitFor: 'test-2-start-build'
+ id: 'test-2-install-gpu'
+ args: ['-local-state-workdir=.${_TEST_2}',
+ 'install-gpu',
+ '-version=450.216.04',
+ '-gpu-type=nvidia-tesla-t4']
+- name: 'cos_customizer'
+ waitFor: 'test-2-install-gpu'
+ id: 'test-2-run-script'
+ args: ['-local-state-workdir=.${_TEST_2}',
+ 'run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ waitFor: 'test-2-run-script'
+ id: 'test-2-finish-build'
+ args: ['-local-state-workdir=.${_TEST_2}',
+ 'finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-t2-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- waitFor: "test-2-finish-build"
- id: "test-2-test-build"
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-t2-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST_2}/preload_test.cfg", "-var:vm_workflow",
- "./gpu_vm.wf.json", "testing/util/run_test.wf.json"]
+ waitFor: 'test-2-finish-build'
+ id: 'test-2-test-build'
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-t2-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST_2}/preload_test.cfg', '-var:vm_workflow',
+ './gpu_vm.wf.json', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/seal_oem_test/seal_oem_test.yaml b/testing/seal_oem_test/seal_oem_test.yaml
index 373f90c..7989337 100644
--- a/testing/seal_oem_test/seal_oem_test.yaml
+++ b/testing/seal_oem_test/seal_oem_test.yaml
@@ -13,42 +13,42 @@
# limitations under the License.
substitutions:
- "_TEST": "seal_oem_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
- "_OEM_SIZE": ""
- "_DISK_SIZE": ""
- "_OEM_SIZE_TH": ""
+ '_TEST': 'seal_oem_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
+ '_OEM_SIZE': ''
+ '_DISK_SIZE': ''
+ '_OEM_SIZE_TH': ''
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'busybox'
- args: ["sed", "-i", "-e", "s|%s|'${_OEM_SIZE_TH}'|",
- "testing/${_TEST}/preload_test.cfg"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["seal-oem"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID",
- "-disk-size-gb=${_DISK_SIZE}",
- "-oem-size=${_OEM_SIZE}"]
+ args: ['sed', '-i', '-e', 's|%s|"${_OEM_SIZE_TH}"|',
+ 'testing/${_TEST}/preload_test.cfg']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['seal-oem']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID',
+ '-disk-size-gb=${_DISK_SIZE}',
+ '-oem-size=${_OEM_SIZE}']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-default_timeout=15m", "-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-default_timeout=15m', '-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/seal_oem_test_no_oem_size.yaml b/testing/seal_oem_test_no_oem_size.yaml
index 1974487..e209a39 100644
--- a/testing/seal_oem_test_no_oem_size.yaml
+++ b/testing/seal_oem_test_no_oem_size.yaml
@@ -13,34 +13,34 @@
# limitations under the License.
substitutions:
- "_TEST": "seal_oem_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'seal_oem_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["seal-oem"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['seal-oem']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-default_timeout=15m", "-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-default_timeout=15m', '-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/seal_oem_test_no_size.yaml b/testing/seal_oem_test_no_size.yaml
index 051180b..0f73214 100644
--- a/testing/seal_oem_test_no_size.yaml
+++ b/testing/seal_oem_test_no_size.yaml
@@ -13,35 +13,35 @@
# limitations under the License.
substitutions:
- "_TEST": "seal_oem_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'seal_oem_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["seal-oem"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID",
- "-disk-size-gb=11"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['seal-oem']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID',
+ '-disk-size-gb=11']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-default_timeout=15m", "-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-default_timeout=15m', '-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/seal_oem_test_timeout.yaml b/testing/seal_oem_test_timeout.yaml
index 2b6dcca..4235840 100644
--- a/testing/seal_oem_test_timeout.yaml
+++ b/testing/seal_oem_test_timeout.yaml
@@ -13,46 +13,46 @@
# limitations under the License.
substitutions:
- "_TEST": "seal_oem_test"
- "_INPUT_IMAGE": "cos-81-12871-148-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'seal_oem_test'
+ '_INPUT_IMAGE': 'cos-81-12871-148-0'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["seal-oem"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=modify_oem.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID",
- "-disk-size-gb=11"]
-- name: 'gcr.io/cloud-builders/docker'
- args: [ 'build', '-t', 'seal-oem-test-timeout-image', 'testing/${_TEST}' ]
-- name: 'seal-oem-test-timeout-image'
- entrypoint: '/bin/bash'
- args:
- - '-c'
- - |
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['seal-oem']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=modify_oem.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID',
+ '-disk-size-gb=11']
+- name: 'gcr.io/cloud-builders/docker'
+ args: [ 'build', '-t', 'seal-oem-test-timeout-image', 'testing/${_TEST}' ]
+- name: 'seal-oem-test-timeout-image'
+ entrypoint: '/bin/bash'
+ args:
+ - '-c'
+ - |
/daisy -default_timeout=5m -project=$PROJECT_ID -zone=us-west1-b \
-var:image_name preload-test-$BUILD_ID -var:image_project $PROJECT_ID \
- -var:test_cfg /preload_test.cfg /run_test.wf.json | tee /build.log
+ -var:test_cfg /preload_test.cfg /run_test.wf.json | tee /build.log
if ( grep "did not complete within the specified timeout" /build.log > /dev/null ); \
then exit 0; else echo "error: timemout expected"; exit 1; fi
options:
machineType: 'N1_HIGHCPU_32'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/smoke_test.yaml b/testing/smoke_test.yaml
index 59950c6..d412432 100644
--- a/testing/smoke_test.yaml
+++ b/testing/smoke_test.yaml
@@ -13,32 +13,32 @@
# limitations under the License.
substitutions:
- "_TEST": "smoke_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'smoke_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/smoke_test/preload_test.cfg b/testing/smoke_test/preload_test.cfg
index c943032..207717f 100644
--- a/testing/smoke_test/preload_test.cfg
+++ b/testing/smoke_test/preload_test.cfg
@@ -60,7 +60,7 @@
}
testVersion() {
- expected="10895.0.0"
+ expected="16623.461.15"
actual=$(. /etc/os-release; echo "${BUILD_ID}")
if [[ "${expected}" != "${actual}" ]]; then
echo "expected version: ${expected}"
diff --git a/testing/timeout_test/timeout_test.yaml b/testing/timeout_test/timeout_test.yaml
index 0c5bc3f..94be555 100644
--- a/testing/timeout_test/timeout_test.yaml
+++ b/testing/timeout_test/timeout_test.yaml
@@ -14,22 +14,22 @@
substitutions:
'_TEST': 'timeout_test'
- '_INPUT_IMAGE': 'cos-dev-69-10895-0-0'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
'_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ['run', '--spawn_strategy=standalone', ':cos_customizer', '--', '--norun']
-- name: 'bazel:cos_customizer'
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
args: ['start-image-build',
'-build-context=testing/${_TEST}',
'-image-name=${_INPUT_IMAGE}',
'-image-project=${_INPUT_PROJECT}',
'-gcs-bucket=${PROJECT_ID}_cloudbuild',
'-gcs-workdir=customizer-$BUILD_ID']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['run-script',
'-script=preload.sh']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['finish-image-build',
'-zone=us-west1-b',
'-project=$PROJECT_ID',
diff --git a/testing/toolbox_test.yaml b/testing/toolbox_test.yaml
index 0b89950..f489204 100644
--- a/testing/toolbox_test.yaml
+++ b/testing/toolbox_test.yaml
@@ -13,32 +13,32 @@
# limitations under the License.
substitutions:
- "_TEST": "toolbox_test"
- "_INPUT_IMAGE": "cos-dev-69-10895-0-0"
- "_INPUT_PROJECT": "cos-cloud"
+ '_TEST': 'toolbox_test'
+ '_INPUT_IMAGE': 'cos-93-16623-461-15'
+ '_INPUT_PROJECT': 'cos-cloud'
steps:
-- name: 'gcr.io/cloud-builders/bazel'
- args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
-- name: 'bazel:cos_customizer'
- args: ["start-image-build",
- "-build-context=testing/${_TEST}",
- "-image-name=${_INPUT_IMAGE}",
- "-image-project=${_INPUT_PROJECT}",
- "-gcs-bucket=${PROJECT_ID}_cloudbuild",
- "-gcs-workdir=customizer-$BUILD_ID"]
-- name: 'bazel:cos_customizer'
- args: ["run-script",
- "-script=preload.sh"]
-- name: 'bazel:cos_customizer'
- args: ["finish-image-build",
- "-zone=us-west1-b",
- "-project=$PROJECT_ID",
- "-image-name=preload-test-$BUILD_ID",
- "-image-project=$PROJECT_ID"]
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
+- name: 'cos_customizer'
+ args: ['start-image-build',
+ '-build-context=testing/${_TEST}',
+ '-image-name=${_INPUT_IMAGE}',
+ '-image-project=${_INPUT_PROJECT}',
+ '-gcs-bucket=${PROJECT_ID}_cloudbuild',
+ '-gcs-workdir=customizer-$BUILD_ID']
+- name: 'cos_customizer'
+ args: ['run-script',
+ '-script=preload.sh']
+- name: 'cos_customizer'
+ args: ['finish-image-build',
+ '-zone=us-west1-b',
+ '-project=$PROJECT_ID',
+ '-image-name=preload-test-$BUILD_ID',
+ '-image-project=$PROJECT_ID']
- name: 'gcr.io/compute-image-tools/daisy'
- args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
- "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
- "-var:test_cfg", "../${_TEST}/preload_test.cfg", "testing/util/run_test.wf.json"]
+ args: ['-project=$PROJECT_ID', '-zone=us-west1-b', '-var:image_name',
+ 'preload-test-$BUILD_ID', '-var:image_project', '$PROJECT_ID',
+ '-var:test_cfg', '../${_TEST}/preload_test.cfg', 'testing/util/run_test.wf.json']
options:
machineType: 'N1_HIGHCPU_8'
-timeout: "7200s"
+timeout: '7200s'
diff --git a/testing/toolbox_test/preload.sh b/testing/toolbox_test/preload.sh
index fee0210..0eece3c 100644
--- a/testing/toolbox_test/preload.sh
+++ b/testing/toolbox_test/preload.sh
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-toolbox
+toolbox echo
diff --git a/testing/toolbox_test/preload_test.cfg b/testing/toolbox_test/preload_test.cfg
index da3f4f6..32094d3 100644
--- a/testing/toolbox_test/preload_test.cfg
+++ b/testing/toolbox_test/preload_test.cfg
@@ -30,8 +30,8 @@
}
testToolbox() {
- expected="gcr.io/google-containers/toolbox"
- actual=$(docker images --format {{.Repository}})
+ expected="gcr.io/cos-cloud/toolbox:v20230615"
+ actual=$(ctr images ls -q)
if [[ "${expected}" != "${actual}" ]]; then
echo "expected: ${expected}"
echo "actual: ${actual}"
diff --git a/testing/ubuntu_ova_test.yaml b/testing/ubuntu_ova_test.yaml
index 06d5230..bf7a0d7 100644
--- a/testing/ubuntu_ova_test.yaml
+++ b/testing/ubuntu_ova_test.yaml
@@ -17,8 +17,8 @@
'_INPUT_IMAGE': 'https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.ova'
steps:
# Build cos-customizer and tools container
-- name: 'gcr.io/cloud-builders/bazel'
- args: ['run', '--spawn_strategy=standalone', ':cos_customizer', '--', '--norun']
+- name: 'gcr.io/cloud-builders/docker'
+ args: ['build', '-f', 'src/cmd/cos_customizer/Dockerfile', '-t', 'cos_customizer', '.']
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
@@ -56,17 +56,17 @@
args: ['rm', 'gs://${PROJECT_ID}_cloudbuild/build-ova-${BUILD_ID}/ubuntu_gce.tar.gz']
# Run cos-customizer
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['start-image-build',
'-build-context=testing/${_TEST}',
'-image-name=input-${BUILD_ID}',
'-image-project=${PROJECT_ID}',
'-gcs-bucket=${PROJECT_ID}_cloudbuild',
'-gcs-workdir=customizer-$BUILD_ID']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['run-script',
'-script=preload.sh']
-- name: 'bazel:cos_customizer'
+- name: 'cos_customizer'
args: ['finish-image-build',
'-zone=us-west1-b',
'-project=${PROJECT_ID}',