1"use strict";(self.webpackChunkkinvolk=self.webpackChunkkinvolk||[]).push([[334],{35079:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=r(74848),t=r(28453);const o={authors:["andy-randall","thilo-fromm"],description:"Instructions for upgrading Azure instances to Flatcar Container Linux Pro",draft:!1,tags:["flatcar","azure","marketplace","flatcar pro","how-to"],title:"Upgrade Your Azure Instances to Flatcar Container Linux Pro",image:"./upgrade-azure-pro.png",slug:"2020/12/upgrade-your-azure-instances-to-flatcar-pro"},i=void 0,l={permalink:"/blog/2020/12/upgrade-your-azure-instances-to-flatcar-pro",source:"@site/blog/2020-12-01-upgrade-your-azure-instances-to-flatcar-pro/index.md",title:"Upgrade Your Azure Instances to Flatcar Container Linux Pro",description:"Instructions for upgrading Azure instances to Flatcar Container Linux Pro",date:"2020-12-01T00:00:00.000Z",tags:[{inline:!0,label:"flatcar",permalink:"/blog/tags/flatcar"},{inline:!0,label:"azure",permalink:"/blog/tags/azure"},{inline:!0,label:"marketplace",permalink:"/blog/tags/marketplace"},{inline:!0,label:"flatcar pro",permalink:"/blog/tags/flatcar-pro"},{inline:!0,label:"how-to",permalink:"/blog/tags/how-to"}],hasTruncateMarker:!1,authors:[{name:"Andy Randall",key:"andy-randall"},{name:"Thilo Fromm",key:"thilo-fromm"}],frontMatter:{authors:["andy-randall","thilo-fromm"],description:"Instructions for upgrading Azure instances to Flatcar Container Linux Pro",draft:!1,tags:["flatcar","azure","marketplace","flatcar pro","how-to"],title:"Upgrade Your Azure Instances to Flatcar Container Linux Pro",image:"./upgrade-azure-pro.png",slug:"2020/12/upgrade-your-azure-instances-to-flatcar-pro"},unlisted:!1,prevItem:{title:"Supercharging AKS Engine with Flatcar Container Linux",permalink:"/blog/2020/12/aks-engine-on-flatcar"},nextItem:{title:"Expanding Flatcar Container Linux Offerings for Enterprise and Cloud",permalink:"/blog/2020/11/expanding-flatcar-offerings-for-enterprise-and-cloud"}},s={image:r(20491).A,authorsImageUrls:[void 0,void 0]},c=[{value:"Deploy Flatcar Container Linux Pro from the Azure web portal",id:"deploy-flatcar-container-linux-pro-from-the-azure-web-portal",level:2},{value:"Update your Terraform-based deployment to use Flatcar Container Linux Pro",id:"update-your-terraform-based-deployment-to-use-flatcar-container-linux-pro",level:2},{value:"Deploy Flatcar Container Linux Pro using the <code>az</code> CLI",id:"deploy-flatcar-container-linux-pro-using-the-az-cli",level:2}];function u(e){const n={a:"a",br:"br",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["Recently, we introduced a ",(0,a.jsx)(n.a,{href:"https://kinvolk.io/blog/2020/11/expanding-flatcar-container-linux-offerings-for-enterprise-and-cloud/",children:"new offer"})," into the Flatcar Container Linux line-up, the Pro edition of Flatcar. Available in the ",(0,a.jsx)(n.a,{href:"https://azuremarketplace.microsoft.com/en-us/marketplace/apps/kinvolk.flatcar_pro",children:"Azure Marketplace"}),", Flatcar Pro offers a number of advantages over the free community edition of Flatcar, including:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/azure/virtual-machines/linux/endorsed-distros#azure-tuned-kernels",children:"Azure-Tuned Linux Kernel"})}),", optimally configured for Azure out of the box."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://kinvolk.io/flatcar-container-linux/#support-section",children:"Commercial Support"})}),": in the event of any issues, the Kinvolk support team is standing by and ready to help, working closely with our counterparts in Microsoft."]}),"\n",(0,a.jsxs)(n.li,{children:["Highest possible network performance, thanks to ",(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/azure/virtual-network/create-vm-accelerated-networking-cli",children:"Azure Accelerated Networking"})})," support."]}
1),"\n",(0,a.jsxs)(n.li,{children:["Built-in drivers for all ",(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/azure/virtual-machines/sizes-gpu",children:"Azure GPU-enabled instance types"})}),", enabling access to accelerated graphics hardware for workloads such as machine learning."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/system-center/vmm/manage-telemetry?view=sc-vmm-2019",children:"HyperV telemetry"})}),", enabling reporting of boot-time and other issues through the hypervisor for ease of troubleshooting and support."]}),"\n",(0,a.jsxs)(n.li,{children:["Optional support for ",(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Federal_Information_Processing_Standards",children:"Federal Information Processing Standards (FIPS)"})}),", to enable organizations to meet security compliance requirements."]}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"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."}),"\n",(0,a.jsx)(n.p,{children:"Below, we provide some guidance depending on how you provisioned your machines in the first place:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Using the Azure Web portal"}),"\n",(0,a.jsx)(n.li,{children:"Using Terraform"}),"\n",(0,a.jsxs)(n.li,{children:["Using the ",(0,a.jsx)(n.code,{children:"az"})," command line tool (for example, in a shell script)"]}),"\n",(0,a.jsx)(n.li,{children:"Using Azure Resource Manager (ARM) templates"}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["Please try it out, and ",(0,a.jsx)(n.a,{href:"https://kinvolk.io/contact-us/",children:"let us know"})," how you get on!"]}),"\n",(0,a.jsx)(n.h2,{id:"deploy-flatcar-container-linux-pro-from-the-azure-web-portal",children:"Deploy Flatcar Container Linux Pro from the Azure web portal"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.strong,{children:"To deploy directly from the web portal start page:"})}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"Select \u201cCreate a resource\u201d from the portal start page. This will direct you to the \u201cnew resource\u201d page."}),"\n",(0,a.jsx)(n.li,{children:"In the search box, enter \u201c Flatcar Container Linux Pro\u201d. You will be directed to our Marketplace product page."}),"\n",(0,a.jsx)(n.li,{children:"On the product page, click \u201ccreate\u201d. 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."}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.strong,{children:"To deploy from the web portal\u2019s \u201cVirtual Machines\u201d section:"})}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"Select \u201cAdd\u201d \u2192 \u201cVirtual machine\u201d. This will direct you to the virtual machine creation wizard."}),"\n",(0,a.jsx)(n.li,{children:"Under \u201cInstance details\u201d / \u201cImage\u201d, click \u201cBrowse all public and private images. This will open a search box."}),"\n",(0,a.jsx)(n.li,{children:"In the search box, enter \u201c Flatcar Container Linux Pro\u201d."}),"\n",(0,a.jsx)(n.li,{children:"Select the first item, \u201cFlatcar Container Linux Pro (Stable)\u201d."}),"\n",(0,a.jsx)(n.li,{children:"Finish the instance config via the wizard to launch your Pro instance."}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"update-your-terraform-based-deployment-to-use-flatcar-container-linux-pro",children:"Update your Terraform-based deployment to use Flatcar Container Linux Pro"}),"\n",(0,a.jsx)(n.p,{children:"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:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:' storage_image_reference \\{\n publisher = "kinvolk"\n offer = "flatcar-container-linux"\n sku = "stable"\n version = "latest"\n \\}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Change the offer from \u201cflatcar-container-linux\u201d to \u201cflatcar_pro\u201d, and your script should look like this:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:' storage_image_reference \\{\n publisher = "kinvolk"\n offer = "flatcar_pro"\n sku = "stable"\n version = "latest"\n \\}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Please note that the change only takes effect for newly deployed instances."}),"\n",(0,a.jsxs)(n.h2,{id:"deploy-flatcar-container-linux-pro-using-the-az-cli",children:["Deploy Flatcar Container Linux Pro using the ",(0,a.jsx)(n.code,{children:"az"})," CLI"]}),"\n",(0,a.jsxs)(n.p,{children:["To deploy using the ",(0,a.jsx)(n.a,{href:"https://github.com/Azure/azure-cli",children:"az command line tool"}),", for example in a shell script:"]}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"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):"}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-$",metastring:"az vm image list --all -p kinvolk -f flatcar_pro -s stable \\",children:'[ \\\n ... \\\n { \\\n "offer": "flatcar_pro", \\\n "publisher": "kinvolk", \\\n "sku": "stable", \\\n <strong>"urn": "kinvolk:flatcar_pro:stable:2605.7.0",</strong>
1 \\\n "version": "2605.7.0" \\\n } \\\n]```\n\n2. Use the above URN in place of the \u201ckinvolk:flatcar-container-linux\u201d URN, wherever you currently use the `az` command line. You can specify you custom ignition config via the `--custom-data` parameter:\n\n'})}),"\n",(0,a.jsxs)(n.p,{children:["$ az vm create --name node-1 --resource-group group-1 ",(0,a.jsx)(n.br,{}),"\n",'--admin-username core --custom-data "$(cat config.ign)" ',(0,a.jsx)(n.br,{}),"\n","--image kinvolk:flatcar_pro:stable:2605.7.0"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"\n\n\n## Update your ARM template to use Flatcar Container Linux Pro\n\nIf you are using ARM templates to automatically deploy Flatcar Container Linux, find the imageReference section in your template. It should look something like this:\n\n\n"})}),"\n",(0,a.jsx)(n.p,{children:'"storageProfile": {\n"imageReference": {\n"publisher": "kinvolk",\n"offer": "flatcar-container-linux",\n"sku": "stable",\n"version": "latest"\n},'}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"\n\nChange the offer from \u201cflatcar-container-linux\u201d to \u201cflatcar_pro\u201d, and your template should look like this:\n\n\n"})}),"\n",(0,a.jsx)(n.p,{children:'"storageProfile": {\n"imageReference": {\n"publisher": "kinvolk",\n"offer": "flatcar_pro",\n"sku": "stable",\n"version": "latest"\n},'}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"\n\nPlease note that the change only takes effect for newly deployed instances.\n"})})]})}function d(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},20491:(e,n,r)=>{r.d(n,{A:()=>a});const a=r.p+"assets/images/upgrade-azure-pro-751e056039138a4666d17c253257ecd6.png"},28453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var a=r(96540);const t={},o=a.createContext(t);function i(e){const n=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(o.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.