diff --git a/content/docs/latest/container-runtimes/getting-started-with-docker.md b/content/docs/latest/container-runtimes/getting-started-with-docker.md
index 275dd1d79..ca2d03bf9 100644
--- a/content/docs/latest/container-runtimes/getting-started-with-docker.md
+++ b/content/docs/latest/container-runtimes/getting-started-with-docker.md
@@ -8,7 +8,7 @@ aliases:
Docker is an open-source project that makes creating and managing Linux containers really easy. Containers are like extremely lightweight VMs – they allow code to run in isolation from other containers but safely share the machine’s resources, all without the overhead of a hypervisor.
-Docker containers can boot extremely fast (in milliseconds!) which gives you unprecedented flexibility in managing load across your cluster. For example, instead of running chef on each of your VMs, it’s faster and more reliable to have your build system create a container and launch it on the appropriate number of Flatcar Container Linux hosts. This guide will show you how to launch a container, install some software on it, commit that container, and optionally launch it on another Flatcar Container Linux machine. Before starting, make sure you've got at least one Flatcar Container Linux machine up and running — try it on [Amazon EC2][aws-ec2] or locally with [Vagrant][vagrant].
+Docker containers can boot extremely fast (in milliseconds!) which gives you unprecedented flexibility in managing load across your cluster. For example, instead of running chef on each of your VMs, it’s faster and more reliable to have your build system create a container and launch it on the appropriate number of Flatcar Container Linux hosts. This guide will show you how to launch a container, install some software on it, commit that container, and optionally launch it on another Flatcar Container Linux machine. Before starting, make sure you've got at least one Flatcar Container Linux machine up and running — try it on [Amazon EC2][aws-ec2] or locally with [QEMU].
## Docker CLI basics
@@ -169,7 +169,7 @@ docker run -d -p 80:80 registry.example.com:5000/myname/myapache /usr/sbin/apach
* [docker's Getting Started Guide](https://docs.docker.com/mac/started/)
[aws-ec2]: ../installing/cloud/aws-ec2
-[vagrant]: ../installing/vms/vagrant
+[QEMU]: ../installing/vms/qemu
[docker-cli]: https://docs.docker.com/engine/reference/commandline/cli/
[docker-signup]: https://hub.docker.com/account/signup/
[systemd-getting-started]: ../setup/systemd/getting-started
diff --git a/content/docs/latest/installing/community-platforms/_index.md b/content/docs/latest/installing/community-platforms/_index.md
index a3135bfa2..a953554de 100644
--- a/content/docs/latest/installing/community-platforms/_index.md
+++ b/content/docs/latest/installing/community-platforms/_index.md
@@ -16,7 +16,6 @@ The platforms and providers listed below each provide support and documentation
* [Exoscale][exoscale]
* [OVHcloud][ovhcloud]
-* [Rackspace Cloud][rackspace]
* [Scaleway][scaleway]
* [Vultr VPS][vultr]
@@ -28,7 +27,6 @@ The platforms and providers listed below each provide support and documentation
* [VirtualBox][virtualbox]
[exoscale]: exoscale
-[rackspace]: rackspace
[vultr]: vultr
[eucalyptus]: eucalyptus
[scaleway]: scaleway
diff --git a/content/docs/latest/installing/community-platforms/notes-for-distributors.md b/content/docs/latest/installing/community-platforms/notes-for-distributors.md
index 97f767899..13f68e605 100644
--- a/content/docs/latest/installing/community-platforms/notes-for-distributors.md
+++ b/content/docs/latest/installing/community-platforms/notes-for-distributors.md
@@ -38,7 +38,7 @@ There are two predominant ways that a Flatcar Container Linux image can be easil
### Ignition
-[Ignition][ignition] is a tool that acquires a JSON config file when a machine first boots, and uses this config to perform tasks such as formatting disks, creating files, modifying and creating users, and adding systemd units. How Ignition acquires this config file varies per-platform, and it is highly recommended that providers ensure Ignition supports their respective platform. In addition to providers supported by [upstream Ignition][ign-platforms], Flatcar [supports](https://github.com/flatcar/scripts/blob/main/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-revert-internal-oem-drop-noop-OEMs.patch) cloudsigma, rackspace[-onmetal], and vagrant.
+[Ignition][ignition] is a tool that acquires a JSON config file when a machine first boots, and uses this config to perform tasks such as formatting disks, creating files, modifying and creating users, and adding systemd units. How Ignition acquires this config file varies per-platform, and it is highly recommended that providers ensure Ignition supports their respective platform. The list of providers supported by Ignition can be found [upstream][ign-platforms]. If your image introduces a new OEM sysext with a name that is not recognised as a provider by Ignition, then you must add a fallback to Flatcar's [bootengine].
It is recommended that providers ensure that [Afterburn][coreos-metadata] has support for their platform. This will allow a nicer user experience, as Afterburn will be able to install users' ssh keys and users will be able to reference metadata variables in their systemd units.
@@ -61,3 +61,4 @@ Flatcar Container Linux will automatically parse and execute `/usr/share/oem/clo
End-users should be able to provide an Ignition file to your platform while specifying their VM's parameters. This file should be made available to Flatcar Container Linux at the time of boot (e.g. at known network address, injected directly onto disk). Examples of these data sources can be found in the [Ignition documentation][ign-platforms].
[ign-platforms]: https://github.com/coreos/ignition/blob/main/docs/supported-platforms.md
+[bootengine]: https://github.com/flatcar/bootengine/blob/32aede10a3d9e20036ead7e2dc45242f0f273f45/dracut/53ignition/ignition-setup-pre.sh#L36
diff --git a/content/docs/latest/installing/community-platforms/rackspace.md b/content/docs/latest/installing/community-platforms/rackspace.md
deleted file mode 100644
index ef328f60d..000000000
--- a/content/docs/latest/installing/community-platforms/rackspace.md
+++ /dev/null
@@ -1,229 +0,0 @@
----
-title: Running Flatcar Container Linux on Rackspace
-linktitle: Running on Rackspace
-weight: 20
-aliases:
- - ../../os/booting-on-rackspace
- - ../../community-platforms/booting-on-rackspace
----
-
-These instructions will walk you through running Flatcar Container Linux on the Rackspace OpenStack cloud, which differs slightly from the generic OpenStack instructions. There are two ways to launch a Flatcar Container Linux cluster: launch an entire cluster with Heat or launch machines with Nova.
-
-## Choosing a channel
-
-Flatcar Container Linux is designed to be updated automatically with different schedules per channel. You can [disable this feature][update-strategies], although we don't recommend it. Read the [release notes][release-notes] for specific features and bug fixes.
-
-
The Alpha channel closely tracks master and is released frequently. The newest versions of system libraries and utilities will be available for testing. The current version is Flatcar Container Linux {{< param alpha_channel >}}.
-
The following command can be used to determine the image IDs for Alpha:
-
supernova production image-list | grep 'Flatcar Container Linux (Alpha)'
-
-
-
-
-
The Beta channel consists of promoted Alpha releases. The current version is Flatcar Container Linux {{< param beta_channel >}}.
-
The following command can be used to determine the image IDs for Beta:
-
supernova production image-list | grep 'Flatcar Container Linux (Beta)'
-
-
-
-
-
The Stable channel should be used by production clusters. Versions of Flatcar Container Linux are battle-tested within the Beta and Alpha channels before being promoted. The current version is Flatcar Container Linux {{< param stable_channel >}}.
-
The following command can be used to determine the image IDs for Stable:
-
supernova production image-list | grep 'Flatcar Container Linux (Stable)'
-
-
-
-
-
-## Cloud-config
-
-Flatcar Container Linux allows you to configure machine parameters, launch systemd units on startup and more via cloud-config. Jump over to the [docs to learn about the supported features][cloud-config-docs]. Cloud-config is intended to bring up a cluster of machines into a minimal useful state and ideally shouldn't be used to configure anything that isn't standard across many hosts. Once a machine is created on Rackspace, the cloud-config can't be modified.
-
-You can provide cloud-config data via both Heat and Nova APIs. You **cannot** provide cloud-config via the Control Panel. If you launch machines via the UI, you will have to do all configuration manually.
-
-The most common Rackspace cloud-config looks like:
-
-```yaml
-#cloud-config
-
-flatcar:
- etcd2:
- # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
- # specify the initial size of your cluster with ?size=X
- discovery: https://discovery.etcd.io/
- # multi-region and multi-cloud deployments need to use $public_ipv4
- advertise-client-urls: http://$private_ipv4:2379,http://$private_ipv4:4001
- initial-advertise-peer-urls: http://$private_ipv4:2380
- # listen on both the official ports and the legacy ports
- # legacy ports can be omitted if your application doesn't depend on them
- listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
- listen-peer-urls: http://$private_ipv4:2380
- units:
- - name: etcd2.service
- command: start
- - name: fleet.service
- command: start
-```
-
-The `$private_ipv4` and `$public_ipv4` substitution variables are fully supported in cloud-config on Rackspace.
-
-[cloud-config-docs]: https://github.com/flatcar/coreos-cloudinit/blob/master/Documentation/cloud-config.md
-
-### Mount data disk
-
-Certain server flavors have separate system and data disks. To utilize the data disks, they must be mounted with a `.mount` unit. Check to make sure the `Where=` parameter accurately reflects the location of the block device:
-
-```yaml
-#cloud-config
-flatcar:
- units:
- - name: media-data.mount
- command: start
- content: |
- [Mount]
- What=/dev/disk/by-label/FSLABEL
- Where=/media/data
- Type=ext3
-```
-
-Mounting Cloud Block Storage can be done with a mount unit, but should not be included in cloud-config unless the disk is present on the first boot.
-
-For more general information, check out [mounting storage on Flatcar Container Linux][mounting-storage].
-
-## Launch with Nova
-
-We're going to install `rackspace-novaclient`, upload a keypair and boot the image id from above.
-
-### Install Supernova tool
-
-The Supernova tool requires Python and `pip`, a Python package manager. If you don't have `pip` installed, install it by running `sudo easy_install pip`. Now let's use `pip` to install Supernova, a tool that lets you easily switch Rackspace regions. Be sure to install these in the order listed:
-
-```shell
-sudo pip install keyring
-sudo pip install rackspace-novaclient
-sudo pip install supernova
-```
-
-### Store account information
-
-Edit your config file (`~/.supernova`) to store your Rackspace username, API key (referenced as `OS_PASSWORD`) and some other settings. The `OS_TENANT_NAME` should be set to your Rackspace account ID, which can be found by clicking on your Rackspace username in the upper right-hand corner of the cloud control panel UI.
-
-```ini
-[production]
-OS_AUTH_URL = https://identity.api.rackspacecloud.com/v2.0/
-OS_USERNAME = username
-OS_PASSWORD = fd62afe2-4686-469f-9849-ceaa792c55a6
-OS_TENANT_NAME = 123456
-OS_REGION_NAME = DFW
-OS_AUTH_SYSTEM = rackspace
-```
-
-We're ready to create a keypair then boot a server with it.
-
-### Create keypair
-
-For this guide, I'm assuming you already have a public key you use for your Flatcar Container Linux servers. Note that only RSA keypairs are supported. Load the public key to Rackspace:
-
-```shell
-supernova production keypair-add --pub-key ~/.ssh/flatcar.pub flatcar-key
-```
-
-Check you make sure the key is in your list by running `supernova production keypair-list`
-
-```sell
-+------------+--------------------------------------------------+
-| Name | Fingerprint |
-+------------+--------------------------------------------------+
-| flatcar-key | d0:6b:d8:3a:3e:6a:52:43:32:bc:01:ea:c2:0f:49:59 |
-+------------+--------------------------------------------------+
-```
-
-### Boot a server
-
-
-
-You should now see the details of your new server in your terminal and it should also show up in the control panel:
-
-```shell
-+------------------------+--------------------------------------+
-| Property | Value |
-+------------------------+--------------------------------------+
-| status | BUILD |
-| updated | 2013-11-02T19:43:45Z |
-| hostId | |
-| key_name | flatcar-key |
-| image | Flatcar Container Linux |
-| OS-EXT-STS:task_state | scheduling |
-| OS-EXT-STS:vm_state | building |
-| flavor | 512MB Standard Instance |
-| id | 82dbe66d-0762-4cba-a286-8c1af8431e47 |
-| user_id | 3c55bca772ba4a4bb6a4eb5b25754738 |
-| name | My_Flatcar_Server |
-| adminPass | mgNqEx7I9pQA |
-| tenant_id | 833111 |
-| created | 2013-11-02T19:43:44Z |
-| OS-DCF:diskConfig | MANUAL |
-| accessIPv4 | |
-| accessIPv6 | |
-| progress | 0 |
-| OS-EXT-STS:power_state | 0 |
-| metadata | {} |
-+------------------------+--------------------------------------+
-```
-
-### Launching more servers
-
-To launch more servers and have them join your cluster, simply provide the same cloud-config.
-
-## Launch via control panel
-
-You can also launch servers with either the `alpha` and `beta` channel versions via the web-based Control Panel, although you can't provide cloud-config via the UI. To do so:
-
- 1. Log into your Rackspace Control Panel
- 2. Click on 'Servers'
- 3. Click on 'Create Server'
- 4. Choose server name and region
- 5. Click on 'Linux', then on 'Flatcar Container Linux' and finally choose '(alpha)' or '(beta)' version
- 6. Choose flavor and use 'Advanced Options' to select SSH Key -- if available
- 7. Click on 'Create Server'
-
-## Using Flatcar Container Linux
-
-Now that you have a machine booted it is time to play around. Check out the [Flatcar Container Linux Quickstart][quickstart] guide or dig into [more specific topics][doc-index].
-
-[update-strategies]: ../../setup/releases/update-strategies
-[release-notes]: https://flatcar-linux.org/releases
-[quickstart]: ../
-[doc-index]: ../../
-[mounting-storage]: ../../setup/storage/mounting-storage
diff --git a/content/docs/latest/installing/customizing-the-image/customize-the-image.md b/content/docs/latest/installing/customizing-the-image/customize-the-image.md
index ae8db8ab5..4bd99794f 100644
--- a/content/docs/latest/installing/customizing-the-image/customize-the-image.md
+++ b/content/docs/latest/installing/customizing-the-image/customize-the-image.md
@@ -62,8 +62,7 @@ The OEM partition is also useful to force a particular Ignition configuration to
For example, `flatcar-install` offers to write a `config.ign` Ignition file to the OEM partition through the `-i` flag.
This file is used as preferred Ignition configuration even when Ignition cloud instance userdata is present. With the special `oem:///` file URL the config can copy files from the OEM Partition to the root filesystem (note: in case you have many binaries, the OEM partition may be too small and you have to either host them somewhere or place them directly on the root filesystem, see the next section).
-The `grub.cfg` file gets sourced by GRUB to set up the OEM ID which is used by systemd units to be started conditionally, or to set up kernel parameters like the Ignition config URL (`ignition.config.url`, to fetch the preferred config remotely), or settings required for the hardware.
-Again, a good example is the [`grub.cfg` file](https://github.com/flatcar/coreos-overlay/blob/ad9c06df2c34be3c6d50ffb80f886bdae10b4809/coreos-base/oem-packet/files/grub.cfg) used for Equinix Metal images to set the OEM ID and the kernel parameter `flatcar.autologin` to be able to use the serial console without having to configure a user password.
+The `grub.cfg` file gets sourced by GRUB to set up the OEM ID which is used by systemd units to be started conditionally, or to set up kernel parameters like the Ignition config URL (`ignition.config.url`, to fetch the preferred config remotely), or settings required for the hardware. Again, a good example is the [`grub.cfg` file](https://github.com/flatcar/scripts/blob/400b4dabd4ca0229f336950c8d5e54959700145e/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/azure/grub.cfg.frag) used in Azure images, which sets the OEM ID, configures the serial console per-architecture, and adds the `flatcar.autologin` kernel parameter to spawn a console shell automatically without a password.
### Customizing the root partition
diff --git a/content/docs/latest/installing/vms/vagrant.md b/content/docs/latest/installing/vms/vagrant.md
index fff20ad86..9a242b937 100644
--- a/content/docs/latest/installing/vms/vagrant.md
+++ b/content/docs/latest/installing/vms/vagrant.md
@@ -9,181 +9,137 @@ aliases:
_While we always welcome community contributions and fixes, please note that Vagrant is not an officially supported platform at this time. (See the [platform overview](/#installing-flatcar).)_
-Running Flatcar Container Linux with Vagrant is one way to bring up a single machine or virtualize an entire cluster on your laptop. Since the true power of Flatcar Container Linux can be seen with a cluster, we're going to concentrate on that. Instructions for a single machine can be found [towards the end](#single-machine) of the guide.
+Running Flatcar Container Linux with Vagrant is one way to bring up a single machine or virtualize an entire cluster on your laptop.
You can direct questions to the [Matrix channel][matrix] or [mailing list][flatcar-dev].
-## Install Vagrant and VirtualBox
+## Install Vagrant and VirtualBox (or Parallels)
-Vagrant is a simple-to-use command line virtual machine manager. There are install packages available for Windows, Linux and OS X. Find the latest installer on the [Vagrant downloads page][vagrant]. Be sure to get version 2.0.4 or greater, to be able to detect Flatcar images correctly.
+Vagrant is a simple-to-use command line virtual machine manager. There are install packages available for Windows, Linux, and macOS. Find the latest installer on the [Vagrant downloads page](https://developer.hashicorp.com/vagrant/install).
-[vagrant]: http://www.vagrantup.com/downloads.html
-
-Vagrant can use either the free VirtualBox provider or the commercial VMware provider. Instructions for both are below. For the VirtualBox provider, version 4.3.10 or greater is required.
+Vagrant is most commonly used in conjunction with [VirtualBox](https://www.virtualbox.org), which is free. It also supports several more "providers", but the only other one supported by Flatcar is [Parallels](https://www.parallels.com/products/desktop/) on macOS.
## Install Flatcar Container Linux
-You can import the flatcar box and boot it with Vagrant.
-You'll find it in `https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/${VERSION}/flatcar_production_vagrant.box`.
-Make sure you download the signature (it's available in `https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/${VERSION}/flatcar_production_vagrant.box.sig`) and check it before proceeding.
+Vagrant's images are known as boxes. They are shipped alongside JSON-based metadata. Unfortunately, Vagrant doesn't support verifying the metadata's signature with GPG, but it does at least verify the box's checksum. The following assumes the Flatcar **alpha** channel. Select your chosen provider when prompted.
-For example, to get the latest alpha:
+```text
+$ vagrant box add https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.json
+==> box: Loading metadata for box 'https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.json'
+This box can work with multiple providers! The providers that it
+can work with are listed below. Please review the list and choose
+the provider you will be working with.
-```shell
-$ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.box
-$ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.box.sig
-$ gpg --verify flatcar_production_vagrant.box.sig
-gpg: assuming signed data in 'flatcar_production_vagrant.box'
-gpg: Signature made Thu 15 Mar 2018 10:29:23 AM CET
-gpg: using RSA key A621F1DA96C93C639506832D603443A1D0FC498C
-gpg: Good signature from "Flatcar Buildbot (Official Builds) " [ultimate]
-$ vagrant box add flatcar-alpha flatcar_production_vagrant.box
-==> box: Box file was not detected as metadata. Adding it directly...
-==> box: Adding box 'flatcar-alpha' (v0) for provider:
- box: Unpacking necessary files from: file:///tmp/flatcar_production_vagrant.box
-==> box: Successfully added box 'flatcar-alpha' (v0) for 'virtualbox'!
+1) virtualbox
+2) parallels
+
+Enter your choice: 1
+==> box: Adding box 'flatcar-alpha' (v4669.0.0) for provider: virtualbox (amd64)
+ box: Downloading: https://bincache.flatcar-linux.net/images/amd64/4669.0.0/flatcar_production_vagrant.box
+ box: Calculating and comparing box checksum...
+==> box: Successfully added box 'flatcar-alpha' (v4669.0.0) for 'virtualbox' (amd64)!
+```
+
+Create the configuration file for your environment, known as a `Vagrantfile`.
+
+```text
$ vagrant init flatcar-alpha
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
-$ vagrant up
-Bringing machine 'default' up with 'virtualbox' provider...
-==> default: Importing base box 'flatcar-alpha'...
-==> default: Matching MAC address for NAT networking...
-==> default: Setting the name of the VM: vagrant_default_1520510346048_14823
-==> default: Clearing any previously set network interfaces...
-==> default: Preparing network interfaces based on configuration...
- default: Adapter 1: nat
-==> default: Forwarding ports...
- default: 22 (guest) => 2222 (host) (adapter 1)
-==> default: Running 'pre-boot' VM customizations...
-==> default: Booting VM...
-==> default: Waiting for machine to boot. This may take a few minutes...
- default: SSH address: 127.0.0.1:2222
- default: SSH username: core
- default: SSH auth method: private key
-==> default: Machine booted and ready!
-$ vagrant ssh
-Last login: Thu Mar 15 17:02:25 UTC 2018 from 10.0.2.2 on ssh
-Flatcar Container Linux by Kinvolk alpha (1702.1.0)
-core@localhost ~ $
```
-## Starting a cluster
+## Starting a single machine
-You can configure your Vagrant machine by having a `Vagrantfile` example file:
+You can customise the `Vagrantfile` at this point, but it will support a single machine without any changes. Bring up the VM and connect to it with SSH:
-```ruby
-ENV["TERM"] = "xterm-256color"
-ENV["LC_ALL"] = "en_US.UTF-8"
+```shell
+vagrant up
+vagrant ssh
+```
-Vagrant.require_version '>= 2.0.4'
+It will continue to run in the background. Don't forget to destroy it to free up resources:
+```shell
+vagrant destroy
+```
+
+## Starting a cluster
+
+Additional machines can be defined in the `Vagrantfile`. They can be configured differently. See Vagrant's documentation for more details.
+
+```ruby
Vagrant.configure('2') do |config|
- config.ssh.username = 'core'
- config.ssh.insert_key = true
- config.vm.box = 'flatcar-alpha'
- config.vm.synced_folder '.', '/vagrant', disabled: true
- config.vm.provider :virtualbox do |v|
- v.check_guest_additions = false
- v.functional_vboxsf = false
- v.cpus = 2
- v.memory = 2048
- end
- config.vm.define 'core-01' do |c|
+ config.vm.define 'flatcar-01' do |c|
end
- config.vm.define 'core-02' do |c|
+ config.vm.define 'flatcar-02' do |c|
end
- config.vm.define 'core-03' do |c|
+ config.vm.define 'flatcar-03' do |c|
end
end
```
-### Start machines using Vagrant's default VirtualBox provider
-
-Start the machine(s):
-
-```shell
-vagrant up
-```
-
-List the status of the running machines:
+`vagrant up` will bring up all of them. To see the status of each:
```shell
$ vagrant status
Current machine states:
-core-01 running (virtualbox)
-core-02 running (virtualbox)
-core-03 running (virtualbox)
+flatcar-01 running (virtualbox)
+flatcar-02 running (virtualbox)
+flatcar-03 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
```
-Connect to one of the machines:
+To connect to one of the machines, specify the name:
```shell
-vagrant ssh core-01 -- -A
+vagrant ssh flatcar-01
```
-### Start machines using Vagrant's VMware provider
+## Shared folder setup
-If you have purchased the [VMware Vagrant provider](http://www.vagrantup.com/vmware), run the following commands:
+You can optionally share a folder from your laptop into the virtual machine by modifying the `Vagrantfile`. This is useful for easily getting code and other files into the environment. Note that Flatcar does not include VirtualBox's shared folder driver, so NFS-based sharing must be used. Flatcar also disables NFS over UDP as recommended, but Vagrant still uses it by default, so tell it to use TCP instead. The default NAT network is not sufficient for NFS, so a private network is needed too. Adjust the IP address as necessary.
-```shell
-vagrant up --provider vmware_fusion
-vagrant ssh core-01 -- -A
+```ruby
+config.vm.synced_folder ".", "/home/core/share", id: "core", type: "nfs", nfs_udp: false
+config.vm.network "private_network", ip: "192.168.33.10"
```
-## Single machine
+Use `vagrant reload` to apply this to your existing VM. Vagrant needs to modify `/etc/exports`, so you will be prompted for your local machine password.
-To start a single machine, we need to provide some config parameters in cloud-config format via the `user-data` file.
-
-Start the machine:
-
-```shell
-vagrant up
-```
+## New box versions
-Connect to the machine:
+Flatcar Container Linux is a rolling release distribution and versions that are out of date will automatically update. To initially deploy VMs with the most recent version, you must fetch the latest box file. Vagrant remembers where to download this from. This assumes you used a "current" URL when you initially added the box.
```shell
-vagrant ssh core-01 -- -A
+vagrant box update
```
-## Shared folder setup
-
-Optionally, you can share a folder from your laptop into the virtual machine. This is useful for easily getting code and Dockerfiles into Flatcar Container Linux.
-
-```ini
-config.vm.synced_folder ".", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp']
-```
+## Provisioning
-After a 'vagrant reload' you will be prompted for your local machine password.
+Vagrant can do some provisioning by itself, but Flatcar is usually provisioned with Ignition or cloud-config. These can be used in conjunction with Vagrant, but Parallels is not supported by Ignition.
-## New box versions
+### Ignition
-Flatcar Container Linux is a rolling release distribution and versions that are out of date will automatically update. If you want to start from the most up to date version you will need to make sure that you have the latest box file of Flatcar Container Linux. You can do this using `vagrant box update` - or, simply remove the old box file and Vagrant will download the latest one the next time you `vagrant up`.
+Write a [Butane configuration][butane-configs] and transpile it, placing the resulting file alongside the `Vagrantfile` as `config.ign`. Vagrant will then pick it up automatically.
-```shell
-vagrant box remove flatcar-alpha vmware_fusion
-vagrant box remove flatcar-alpha virtualbox
-```
+Unfortunately, a VirtualBox restriction limits the permitted size of `config.ign` to just 1024 bytes. This is barely enough for an SSH key and/or a URL to a remote configuration. Anything further must therefore be done in a remote configuration. See [Ignition issue #2226](https://github.com/coreos/ignition/issues/2226) for more details.
-If you'd like to download the box separately, you can download the URL contained in the Vagrantfile and add it manually:
+### cloud-config
-```shell
-vagrant box add flatcar-alpha
-```
+Simply put your cloud-config file alongside the `Vagrantfile` as `user-data`. Vagrant will then pick it up automatically. Note that cloud-config is considered a legacy mechanism.
## Using Flatcar Container Linux
-Now that you have a machine booted it is time to play around. Check out the [Flatcar Container Linux Quickstart][quickstart] guide, learn about [CoreOS Container Linux clustering with Vagrant](https://coreos.com/blog/coreos-clustering-with-vagrant/), or dig into [more specific topics][doc-index].
+Now that you have a machine booted it is time to play around. Check out the [Flatcar Container Linux Quickstart][quickstart] guide or dig into [more specific topics][doc-index].
[flatcar-dev]: https://groups.google.com/forum/#!forum/flatcar-linux-dev
[matrix]: https://app.element.io/#/room/#flatcar:matrix.org
+[butane-configs]: ../../provisioning/config-transpiler
[quickstart]: ../
[doc-index]: ../../
diff --git a/content/docs/latest/installing/vms/virtualbox.md b/content/docs/latest/installing/vms/virtualbox.md
index 140fd7a23..67854ed21 100644
--- a/content/docs/latest/installing/vms/virtualbox.md
+++ b/content/docs/latest/installing/vms/virtualbox.md
@@ -10,25 +10,6 @@ _While we always welcome community contributions and fixes, please note that Vir
These instructions will walk you through running Flatcar Container Linux on Oracle VM VirtualBox.
-## Building the virtual disk
-
-There is a script that simplifies building the VDI image. It downloads a bare-metal image, verifies it with GPG, and converts that image to a VDI image.
-
-The script is located on [GitHub](https://github.com/flatcar/scripts/blob/main/contrib/create-coreos-vdi). The running host must support VirtualBox tools.
-
-As first step, you must download the script and make it executable.
-
-```shell
-wget https://raw.githubusercontent.com/flatcar/scripts/main/contrib/create-coreos-vdi
-chmod +x create-coreos-vdi
-```
-
-To run the script, you can specify a destination location and the Flatcar Container Linux version.
-
-```shell
-./create-coreos-vdi -d /data/VirtualBox/Templates
-```
-
## Choose a channel
Flatcar Container Linux is designed to be updated automatically with different schedules per channel. You can [disable this feature][update-strategies], although we don't recommend it. Read the [release notes][release-notes] for specific features and bug fixes.
@@ -42,84 +23,132 @@ Flatcar Container Linux is designed to be updated automatically with different s
The Alpha channel closely tracks master and is released frequently. The newest versions of system libraries and utilities will be available for testing. The current version is Flatcar Container Linux {{< param alpha_channel >}}.
-
Create a disk image from this channel by running:
+
Download the OVF configuration file and VMDK disk image by running:
The Stable channel should be used by production clusters. Versions of Flatcar Container Linux are battle-tested within the Beta and Alpha channels before being promoted. The current version is Flatcar Container Linux {{< param stable_channel >}}.
-
Create a disk image from this channel by running:
+
Download the OVF configuration file and VMDK disk image by running:
-After the script has finished successfully, the Flatcar Container Linux image will be available at the specified destination location or at the current location. The file name will be something like:
+## Verify and decompress the image
+
+Ensure that what you have downloaded has a good signature:
+
+```shell
+gpg --verify flatcar_production_virtualbox.ovf.sig
+gpg --verify flatcar_production_virtualbox_image.vmdk.bz2.sig
+```
+
+The disk image needs to be decompressed before use:
```shell
-coreos_production_stable.vdi
+bunzip2 flatcar_production_virtualbox_image.vmdk.bz2
```
-## Creating a config-drive
+## Deploying a new virtual machine on VirtualBox
-Cloud-config can be specified by attaching a [config-drive](https://github.com/flatcar/coreos-cloudinit/blob/master/Documentation/config-drive.md) with the label `config-2`. This is commonly done through whatever interface allows for attaching CD-ROMs or new drives.
+### Note for Windows users
-Note that the config-drive standard was originally an OpenStack feature, which is why you'll see strings containing `openstack`. This filepath needs to be retained, although Flatcar Container Linux supports config-drive on all platforms.
+The following steps use the `VBoxManage` command, which is not in the `PATH` on Windows by default. Temporarily add it to the `PATH` like so:
-For more information on customization that can be done with cloud-config, head on over to the [cloud-config guide](https://github.com/flatcar/coreos-cloudinit/blob/master/Documentation/cloud-config.md).
+```powershell
+$env:PATH += ";C:\Program Files\Oracle\VirtualBox"
+```
-You need a config-drive to configure at least one SSH key to access the virtual machine. If you are in hurry, you can create a basic config-drive with following steps:
+### Import the OVF configuration file and VMDK disk image
+
+Importing with no additional arguments will clone the disk image and use the default configuration defined in the OVF. You can give the VM a custom name and override certain properties such as the amount of memory and the number of CPUs. When giving any additional arguments, you must start them with `--vsys=0`.
```shell
-wget https://raw.github.com/flatcar/scripts/main/contrib/create-basic-configdrive
-chmod +x create-basic-configdrive
-./create-basic-configdrive -H my_vm01 -S ~/.ssh/id_rsa.pub
+VBoxManage import flatcar_production_virtualbox.ovf --vsys=0 --vmname=myflatcar --memory=4096 --cpus=4
```
-An ISO file named `my_vm01.iso` will be created that will configure a virtual machine to accept your SSH key and set its name to my_vm01.
+If you don't give a custom name, one will be generated for you and shown in the output.
-## Deploying a new virtual machine on VirtualBox
+### Resize the disk
-Use the built image as the base image. Clone that image for each new virtual machine and set the desired size.
+By default, the root filesystem will hold roughly 12GB. If this is too small, you can resize the image, and Flatcar will adjust the root filesystem at boot time. Find the disk's UUID within the VM's details:
```shell
-VBoxManage clonehd coreos_production_stable.vdi my_vm01.vdi
-# Resize virtual disk to 10 GB
-VBoxManage modifyhd my_vm01.vdi --resize 10240
+VBoxManage showvminfo myflatcar
```
-At boot time, the Flatcar Container Linux will detect that the volume size has changed and will resize the filesystem accordingly.
+Then resize the disk as required:
-Open VirtualBox Manager and go to Machine > New. Type the desired machine name and choose 'Linux' as the type and 'Linux 2.6 / 3.x (64 bit)' as the version.
+```shell
+VBoxManage modifymedium disk 1f768d59-256f-4fee-96f5-c12624d4f0f0 --resize 20480
+```
+
+### Make the VM accessible
-Next, choose the desired memory size; at least 2 GB for an optimal experience.
+If you were to start the VM now, you would not be able to log in because the automatic console login would be disabled, the SSH port would not be exposed, and no SSH keys would be added. Expose the VM's SSH port via port 2222 on the host:
+
+```shell
+VBoxManage modifyvm myflatcar --nat-pf1=ssh,tcp,127.0.0.1,2222,,22
+```
-Then, choose 'Use an existing virtual hard drive file' and find the new cloned image.
+An SSH key must be inserted into the VM by provisioning it with Ignition. First, write a [Butane configuration]
+[butane-configs] containing your public SSH key and transpile it. Then attach the transpiled configuration to the VM as a property:
-Click on the 'Create' button to create the virtual machine.
+#### Bash (Linux, macOS)
+```shell
+VBoxManage guestproperty set myflatcar /Ignition/Config "$(< config.ign)"
+```
-Next, go to the settings from the created virtual machine. Then click on the Storage tab and load the created config-drive into the CD/DVD drive.
+#### PowerShell (Windows)
+```powershell
+VBoxManage guestproperty set myflatcar /Ignition/Config (Get-Content -Raw config.ign)
+```
-Click on the 'OK' button and the virtual machine will be ready to be started.
+Unfortunately, a VirtualBox restriction limits the permitted size of such properties to just 1024 bytes. This is barely enough for an SSH key and/or a URL to a remote configuration. Anything further must therefore be done in a remote configuration. See [Ignition issue #2226](https://github.com/coreos/ignition/issues/2226) for more details.
-## Logging in
+### Start the VM
-Networking can take a bit of time to come up under VirtualBox, and the IP is needed in order to connect to it. Press enter a few times at the login prompt to see an IP address pop up. If you see VirtualBox NAT IP 10.0.2.15, go to the virtual machine settings and click the Network tab then Port Forwarding. Add the rule "Host Port: 2222; Guest Port 22" then connect using the command `ssh core@localhost -p2222`.
+Once configured as necessary, start the VM:
-Now, login using your private SSH key.
+```shell
+VBoxManage startvm myflatcar
+```
+
+This will open a window for the VM's display. You can run the VM headless instead:
+
+```shell
+VBoxManage startvm myflatcar --type=headless
+```
+
+## Logging in
+
+Assuming you're using NAT networking and have exposed SSH via host port 2222, log in using your private SSH key like so:
```shell
-ssh core@192.168.56.101
+ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -l core -p 2222 127.0.0.1
```
## Using Flatcar Container Linux
@@ -128,6 +157,6 @@ Now that you have a machine booted it is time to play around. Check out the [Fla
[update-strategies]: ../../setup/releases/update-strategies
[release-notes]: https://flatcar-linux.org/releases
+[butane-configs]: ../../provisioning/config-transpiler
[quickstart]: ../
[doc-index]: ../../
-
diff --git a/content/docs/latest/provisioning/cl-config/dynamic-data.md b/content/docs/latest/provisioning/cl-config/dynamic-data.md
index fe7774a36..57491d142 100644
--- a/content/docs/latest/provisioning/cl-config/dynamic-data.md
+++ b/content/docs/latest/provisioning/cl-config/dynamic-data.md
@@ -28,9 +28,7 @@ This is the information available in each provider.
| Digital Ocean | ✓ | ✓ | ✓ | ✓ | ✓ |
| EC2 | ✓ | ✓ | ✓ | | |
| GCE | ✓ | ✓ | ✓ | | |
-| Packet | ✓ | ✓ | ✓ | | ✓ |
| OpenStack-Metadata | ✓ | ✓ | ✓ | | |
-| Vagrant-Virtualbox | ✓ | ✓ | | | |
## Custom metadata providers
diff --git a/content/docs/latest/reference/developer-guides/sdk-modifying-flatcar.md b/content/docs/latest/reference/developer-guides/sdk-modifying-flatcar.md
index 12a18a827..231e23cad 100644
--- a/content/docs/latest/reference/developer-guides/sdk-modifying-flatcar.md
+++ b/content/docs/latest/reference/developer-guides/sdk-modifying-flatcar.md
@@ -8,7 +8,7 @@ aliases:
The guides in this document aim to enable engineers to update, and to extend, packages in both the Flatcar OS image as well as the SDK, to suit their own needs.
Overarching goal of this collection of how-tos is to help you to scratch your own itch, to set you up to play with Flatcar.
-We’ll cover everything you need to make the changes you want, and to produce an image for the runtime environment(s) you want to use Flatcar in (e.g. AWS, qemu, Packet, etc).
+We’ll cover everything you need to make the changes you want, and to produce an image for the runtime environment(s) you want to use Flatcar in (e.g. AWS, QEMU, etc).
By the end of the guide you will build a developer image that you can run under qemu and have tools for making changes to the OS image like adding or removing packages, or shipping custom kernels.
Note that we chose this guide's "qemu" image target solely to enable local testing; the same process can be used to produce images for any and all targets (cloud providers etc.) supported by Flatcar.
diff --git a/content/docs/latest/setup/clusters/architectures.md b/content/docs/latest/setup/clusters/architectures.md
index 7132a8519..e2a2f671f 100644
--- a/content/docs/latest/setup/clusters/architectures.md
+++ b/content/docs/latest/setup/clusters/architectures.md
@@ -23,7 +23,7 @@ Most of these scenarios dedicate a few machines, bare metal or virtual, to runni
|------|--------------------|-------------|------------|
| Low | Laptop development | Minutes | No |
-If you're developing locally but plan to run containers in production, it's best practice to mirror that environment locally. Run Docker commands on your laptop that control a Flatcar Container Linux VM in VMware Fusion or Virtual box to mirror your container production environment locally.
+If you're developing locally but plan to run containers in production, it's best practice to mirror that environment locally. Run Docker commands on your laptop that control a Flatcar Container Linux VM in QEMU to mirror your container production environment locally.
### Configuring your laptop
@@ -51,8 +51,7 @@ systemd:
This file is used to provision your local Flatcar Container Linux machine on its first boot. This sets up and enables the Docker API, which is how you can use Docker on your laptop. The Docker CLI manages containers running within the VM, *not* on your personal operating system.
-Using the Butane Config Transpiler, or `butane` ([download][butane-download]), convert the above yaml into an [Ignition][ignition-getting-started]. Alternatively, copy the contents of the Igntion tab in the above example. Once you have the Ignition configuration file, pass it to your provider.
-In addition to providers supported by [upstream Ignition][ignition-supported], Flatcar [supports](https://github.com/flatcar/scripts/blob/main/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0018-revert-internal-oem-drop-noop-OEMs.patch) cloudsigma, hyperv, interoute, niftycloud, rackspace[-onmetal], and vagrant.
+Using the Butane Config Transpiler, or `butane` ([download][butane-download]), convert the above yaml into an [Ignition][ignition-getting-started]. Alternatively, copy the contents of the Igntion tab in the above example. Once you have the Ignition configuration file, pass it to your provider. The list of providers supported by Ignition can be found [upstream][ignition-supported].
Once the local VM is running, tell your Docker binary on your personal operating system to use the remote port by exporting an environment variable and start running Docker commands. Run these commands in a terminal *on your local operating system (MacOS or Linux), not in the Flatcar Container Linux virtual machine*:
diff --git a/content/docs/latest/setup/storage/adding-disk-space.md b/content/docs/latest/setup/storage/adding-disk-space.md
index bd56e8a64..03ee01877 100644
--- a/content/docs/latest/setup/storage/adding-disk-space.md
+++ b/content/docs/latest/setup/storage/adding-disk-space.md
@@ -38,11 +38,8 @@ vmware-vdiskmanager -x 20Gb flatcar_developer_vmware_insecure.vmx
## VirtualBox
-Use qemu-img or vmware-vdiskmanager as described above. VirtualBox does not support resizing VMDK disk images, only VDI and VHD disks. Meanwhile VirtualBox only supports using VMDK disk images with the OVF config file format used for importing/exporting virtual machines.
-
-If you have have no other options you can try converting the VMDK disk image to a VDI image and configuring a new virtual machine with it:
+`VBoxManage` can easily resize VMDK disk images. You can also use qemu-img or vmware-vdiskmanager as described above.
```shell
-VBoxManage clonehd old.vmdk new.vdi --format VDI
-VBoxManage modifyhd new.vdi --resize 20480
+VBoxManage modifymedium disk flatcar_production_virtualbox_image.vmdk --resize 20480
```
diff --git a/data/adopters/adopters.yml b/data/adopters/adopters.yml
index 6254361de..3807e0f2d 100644
--- a/data/adopters/adopters.yml
+++ b/data/adopters/adopters.yml
@@ -24,12 +24,6 @@ items:
logo: "/media/companies/wipro-logo.png"
weight: 85
- - name: "Equinix Metal"
- description: "Equinix uses Flatcar as the OS for its bare metal cloud control plane, which runs in Kubernetes"
- link: "https://kinvolk.io/blog/2021/02/case-study-equinix-metal-builds-on-flatcar/"
- logo: "/media/companies/equinix-metal.png"
- weight: 80
-
- name: "DeepL"
description: '"We use Flatcar for our on-prem Kubernetes clusters to run everything from CI/CD to performance-sensitive GPU workloads."'
link: "https://deepl.com/"
diff --git a/data/references/companies.yml b/data/references/companies.yml
index 3b3d2541a..1c525291d 100644
--- a/data/references/companies.yml
+++ b/data/references/companies.yml
@@ -80,14 +80,6 @@ companies:
- flatcarCloudProvider
area:
- flatcar
- rackspace:
- name: Rackspace
- logo: rackspace.svg
- website: https://www.rackspace.com/
- type:
- - flatcarCloudProvider
- area:
- - flatcar
scaleway:
name: Scaleway
logo: scaleway.svg
@@ -217,18 +209,6 @@ companies:
- flatcarCloudProvider
area:
- flatcar
- equinixmetal:
- name: Equinix Metal
- logo: equinix-metal.png
- website: https://metal.equinix.com/
- type:
- - partner
- - sponsor
- - flatcarCloudProvider
- area:
- - kinvolk
- - flatcar
- - lokomotive
gcp:
name: Google Cloud PLatform
logo: gcp-logo.png
diff --git a/static/media/companies/equinix-metal.png b/static/media/companies/equinix-metal.png
deleted file mode 100644
index d0533be1d..000000000
Binary files a/static/media/companies/equinix-metal.png and /dev/null differ
diff --git a/static/media/companies/packet.png b/static/media/companies/packet.png
deleted file mode 100644
index 78aea754b..000000000
Binary files a/static/media/companies/packet.png and /dev/null differ
diff --git a/static/media/companies/rackspace.svg b/static/media/companies/rackspace.svg
deleted file mode 100644
index f2bbfff5d..000000000
--- a/static/media/companies/rackspace.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file