<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Provisioning Drivers on</title><link>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/</link><description>Recent content in Provisioning Drivers on</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 05 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview</title><link>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/overview/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/overview/</guid><description>&lt;p&gt;&lt;a id="provisioning-integration-overview"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--# Overview --&gt;
&lt;p&gt;The OpenNebula Formation driver system provides a centralized solution for managing cloud and edge infrastructure across different cloud providers. By using Terraform to handle infrastructure setup and Ansible for configuring resources after deployment, OneForm integrates Edge Clusters seamlessly into the OpenNebula workflow, simplifying overall management.&lt;/p&gt;
&lt;p&gt;The driver system is designed with modularity and flexibility in mind, allowing each Provider to define its provisioning logic within a consistent structure. A core part of the driver philosophy is the self-contained design, bundling all necessary components directly within the driver itself, facilitating importing and exporting Providers.&lt;/p&gt;</description></item><item><title>Developing a Provisioning Driver</title><link>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/creating_driver/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/creating_driver/</guid><description>&lt;p&gt;Here you will find a detailed step-by-step guide to creating a new provisioning driver for OpenNebula Formation. It covers all the necessary components starting with the basic configuration, infrastructure provisioned using Terraform, and post-deployment configuration handled by Ansible.&lt;/p&gt;









&lt;div class="alert alert-warning" role="alert"&gt;
 
 &lt;div class="alert-heading"&gt;
 &lt;i class="alert-icon fas fa-triangle-exclamation"&gt;&lt;/i&gt; Important
 &lt;/div&gt;
 
 &lt;div class="alert-body"&gt;
 Creating a driver requires working knowledge of both &lt;strong&gt;Terraform&lt;/strong&gt; and &lt;strong&gt;Ansible&lt;/strong&gt;, as they are fundamental to the provisioning and configuration workflows.
 &lt;/div&gt; 
&lt;/div&gt;
&lt;h2 id="getting-started-from-scratch"&gt;Getting Started from Scratch&lt;/h2&gt;
&lt;p&gt;A driver in OneForm is a self-contained directory that bundles everything required to provision and configure infrastructure. It integrates with OpenNebula and OneForm to automate deployments across various cloud providers.&lt;/p&gt;</description></item><item><title>Customizing a Provisioning Driver</title><link>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/customizing_driver/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.2/product/integration_references/cloud_provider_driver_development/customizing_driver/</guid><description>&lt;p&gt;Here you will find detailed instructions on customizing and extending existing drivers in OneForm. It covers common scenarios such as adding new zones, modifying resources, adding user inputs, and configuring new images or operating systems.&lt;/p&gt;
&lt;h2 id="adding-new-user-inputs"&gt;Adding New User Inputs&lt;/h2&gt;
&lt;p&gt;There are two ways to introduce user inputs: Terraform variables and Jinja2 templates.&lt;/p&gt;
&lt;h3 id="inputs-via-terraform-variables"&gt;Inputs via Terraform Variables&lt;/h3&gt;
&lt;p&gt;Declare the variable in &lt;code&gt;variables.tf&lt;/code&gt;. Optionally, add custom validations in &lt;code&gt;validators.tf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example &lt;code&gt;variables.tf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-hcl" data-lang="hcl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;variable&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;disk_size&amp;#34;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt; description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Disk size for the instance&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt; type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt; default&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Validator (&lt;code&gt;validators.tf&lt;/code&gt;):&lt;/p&gt;</description></item></channel></rss>