Skip to content

Instantly share code, notes, and snippets.

@goern
Last active October 31, 2017 08:52
Show Gist options
  • Save goern/d21e5f9bee733a4f30c7 to your computer and use it in GitHub Desktop.
Save goern/d21e5f9bee733a4f30c7 to your computer and use it in GitHub Desktop.
Atomic Host demo on Google Compute Engine (GCE)

Overview

Basically four steps:

  1. install SDK and initialize a new project via console
  2. upload and generate a new GCE image for your project
  3. instantiate a new instance on GCE using the image
  4. follow a known path

install SDK and initialize a new project via console

  • Sign up for Google Compute Engine
  • Download and install the Cloud SDK
  • Authenticate your client
  • Set your project ID - "A project ID is the customized name you chose when you created the project, or when you activated an API that required you to create a project ID. It can be found in the Dashboard of the project ... ", see GCE doc

That's it for the first step...

upload and generate a new GCE image for your project

download and prepare Atomic Host image

download the current cloud image of Atomic Host and store it in your project directory.

cd <project-dir>
curl <URL of Atomic Host> -o rhel-atomic-host-cloud.qcow2.xz

convert

Convert the Atomic Host qcow2 to a raw file and package it with tar

xz --decompress rhel-atomic-host-cloud.qcow2.xz
qemu-img convert -S 4096 -f qcow2 -O raw rhel-atomic-host-cloud.qcow2 disk.raw
tar -Szcf rhel-atomic-host-image.tar.gz disk.raw

publish (upload) the tar

Upload the tar file into a Google Storage bucket.

gsutil mb gs://dingsbums
gsutil cp rhel-atomic-host-image.tar.gz gs://dingsbums

convert

After upload, the tar file is converted to a GCE image.

gcloud compute images create rhel-7-atomic-host --source-uri gs://dingsbums/rhel-atomic-host-image.tar.gz

instantiate a new instance on GCE using the image

gcloud compute images list

follow a known path

References

@demosdemon
Copy link

May I suggest a helpful comment saying that the raw image is required to be named disk.raw in the tarball.

@eklitzke
Copy link

Can you provide an example using kubectl instead of kubecfg?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment