Recently, we introduced a new offer into the Flatcar Container Linux line-up, the Pro edition of Flatcar. Available in the Azure Marketplace , Flatcar Pro offers a number of advantages over the free community edition of Flatcar, including:

If you are already using the (non-Pro) version of Flatcar Container Linux, and would like to upgrade to Pro, you will need to reprovision your instances using the new Marketplace offer ID. An in-place migration is unfortunately not possible, but reprovisioning should be straightforward.

Below, we provide some guidance depending on how you provisioned your machines in the first place:

  • Using the Azure Web portal
  • Using Terraform
  • Using the az command line tool (for example, in a shell script)
  • Using Azure Resource Manager (ARM) templates

Please try it out, and let us know how you get on!

Deploy Flatcar Container Linux Pro from the Azure web portal

To deploy directly from the web portal start page:

  1. Select “Create a resource” from the portal start page. This will direct you to the “new resource” page.
  2. In the search box, enter “ Flatcar Container Linux Pro”. You will be directed to our Marketplace product page.
  3. On the product page, click “create”. This will start the regular virtual machine creation wizard where you can pick a region, configure machine and storage size, peripherals, etc. Finish the wizard to launch your Pro instance.

To deploy from the web portal’s “Virtual Machines” section:

  1. Select “Add” → “Virtual machine”. This will direct you to the virtual machine creation wizard.
  2. Under “Instance details” / “Image”, click “Browse all public and private images. This will open a search box.
  3. In the search box, enter “ Flatcar Container Linux Pro”.
  4. Select the first item, “Flatcar Container Linux Pro (Stable)”.
  5. Finish the instance config via the wizard to launch your Pro instance.

Update your Terraform-based deployment to use Flatcar Container Linux Pro

If you are using Terraform to automatically deploy Flatcar Container Linux, find the storage_image_reference section in your Terraform script. It should look something like this:

   storage_image_reference {
        publisher = "kinvolk"
        offer     = "flatcar-container-linux"
        sku       = "stable"
        version   = "latest"
    }

Change the offer from “flatcar-container-linux” to “flatcar_pro”, and your script should look like this:

   storage_image_reference {
        publisher = "kinvolk"
        offer     = "flatcar_pro"
        sku       = "stable"
        version   = "latest"
    }

Please note that the change only takes effect for newly deployed instances.

Deploy Flatcar Container Linux Pro using the az CLI

To deploy using the az command line tool , for example in a shell script:

  1. List the images available to retrieve the URN. The latest version will be listed last (the exact URN may differ from what is shown here):
    $ az vm image list –all -p kinvolk -f flatcar_pro -s stable
    [

    {
    “offer”: “flatcar_pro”,
    “publisher”: “kinvolk”,
    “sku”: “stable”,
    “urn”: “kinvolk:flatcar_pro:stable:2605.7.0”,
    “version”: “2605.7.0”
    }
    ]

  2. Use the above URN in place of the “kinvolk:flatcar-container-linux” URN, wherever you currently use the az command line. You can specify you custom ignition config via the –custom-data parameter:

    $ az vm create --name node-1 --resource-group group-1 \
    --admin-username core --custom-data "$(cat config.ign)" \
    --image kinvolk:flatcar_pro:stable:2605.7.0
    
    
    
    
    
    
    
    
    
    
    
  "storageProfile": {
          "imageReference": {
            "publisher": "kinvolk",
            "offer": "flatcar-container-linux",
            "sku": "stable",
            "version": "latest"
          },

Change the offer from “flatcar-container-linux” to “flatcar_pro”, and your template should look like this:

  "storageProfile": {
          "imageReference": {
            "publisher": "kinvolk",
            "offer": "flatcar_pro",
            "sku": "stable",
            "version": "latest"
          },

Please note that the change only takes effect for newly deployed instances.

Related Articles