diff --git a/addons/cetmix_tower_ovh/static/description/index.html b/addons/cetmix_tower_ovh/static/description/index.html new file mode 100644 index 0000000..e4a58ac --- /dev/null +++ b/addons/cetmix_tower_ovh/static/description/index.html @@ -0,0 +1,653 @@ + + + + + +Cetmix Tower OVH + + + +
+

Cetmix Tower OVH

+ + +

Beta License: AGPL-3 cetmix/cetmix-tower

+

This module integrates the OVH Python client, enabling seamless +interaction with OVH cloud services within the Cetmix Tower.

+

Table of contents

+
+ +
+
+

Use Cases / Context

+

Although OVH allows API calls without using an SDK, we found that +integrating the OVH SDK into Cetmix Tower makes provisioning, +configuring, and maintaining OVH instances more convenient for the end +user. However, not all Cetmix Tower users require this functionality, so +to avoid overloading the system, we have included it in a separate +module.

+
+
+

Configuration

+
+
+

Setting up OVH Access

+
+

Create OVH API Credentials

+

To use the OVH integration with Cetmix Tower, you need to create OVH API +credentials:

+
    +
  • Follow the official OVH +documentation +(https://docs.ovh.com/gb/en/api/first-steps/) for creating an +application and generating API keys
  • +
  • It’s recommended to create a dedicated application with appropriate +permissions for Cetmix Tower
  • +
  • Store your Application Key, Application Secret, and Consumer Key +securely—you’ll need them in the next step
  • +
+
+
+

Configure OVH Secrets in Cetmix Tower

+

Create three secrets in Cetmix Tower to store your OVH credentials:

+
    +
  • Navigate to Cetmix Tower > Settings > Keys and Secrets
  • +
  • Create a new Secret with:
      +
    • Name: OVH Application Key
    • +
    • Reference: ovh_application_key
    • +
    • Key Type: Secret
    • +
    +
  • +
  • Enter your OVH Application Key in the Secret Value tab
  • +
  • Similarly, create another Secret with:
      +
    • Name: OVH Application Secret
    • +
    • Reference: ovh_application_secret
    • +
    • Key Type: Secret
    • +
    +
  • +
  • Enter your OVH Application Secret in the Secret Value tab
  • +
  • Finally, create a Secret with:
      +
    • Name: OVH Consumer Key
    • +
    • Reference: ovh_consumer_key
    • +
    • Key Type: Secret
    • +
    +
  • +
  • Enter your OVH Consumer Key in the Secret Value tab
  • +
+ +
+Note: These secrets will be accessible as +#!cxtower.secret.ovh_application_key!#, +#!cxtower.secret.ovh_application_secret!#, and +#!cxtower.secret.ovh_consumer_key!# in your commands.
+
+
+

Configure OVH Endpoint

+

Create a variable to define your OVH API endpoint (region):

+
    +
  • Navigate to Cetmix Tower > Settings > Variables
  • +
  • Create a new Variable with:
      +
    • Name: OVH Endpoint
    • +
    • Reference: ovh_endpoint
    • +
    • Type: String
    • +
    +
  • +
  • Set your OVH endpoint (e.g., ovh-eu, ovh-ca, ovh-us) as +the value
  • +
+
+
+
+

Usage

+
+
+

Cetmix Tower OVHcloud Command Usage

+
+Disclaimer: The following example demonstrates one of many +possible commands you can create and run with this module. The +ovh Python library provides access to the full range of OVHcloud +APIs – this is just a starting point to help you get familiar with +the integration.
+
+

Example of Cetmix Tower Python Command to Create DNS Records

+
    +
  • Navigate to Command Creation

    +
      +
    • Go to Cetmix Tower > Commands > Commands
    • +
    • Click the Create button
    • +
    +
  • +
  • Configure Command Settings

    +
      +
    • Set a descriptive Name (e.g., “List OVHcloud Instances”)
    • +
    • Leave Reference blank to generate automatically (or set a custom +reference)
    • +
    • Select Action: “Execute Python code”
    • +
    • Set Access Level: Choose appropriate level (e.g., “Manager”)
    • +
    • Optional: Set Default Path if needed
    • +
    • Optional: Add Tags (e.g., “ovh”, “cloud”, “instance”) for better +organization
    • +
    +
  • +
  • Add Required Variables

    +
      +
    • In the Variables tab, add the previously configured variable:
        +
      • ovh_endpoint (e.g., “ovh-eu”)
      • +
      +
    • +
    +
  • +
  • Add Required Secrets

    +
      +
    • In the Secrets field, add the previously configured secrets:
        +
      • ovh_application_key
      • +
      • ovh_application_secret
      • +
      • ovh_consumer_key
      • +
      +
    • +
    +
  • +
  • Write Python Code

    +
      +
    • Go to the Code tab
    • +
    • Enter the following Python code:
    • +
    +
    +# List OVHcloud instances using ovh API
    + result = {"exit_code": 0, "message": None}
    +
    +client = ovh.Client(
    + endpoint={{ ovh_endpoint }},
    + application_key=#!cxtower.secret.ovh_application_key!#,
    + application_secret=#!cxtower.secret.ovh_application_secret!#,
    + consumer_key=#!cxtower.secret.ovh_consumer_key!#
    +)
    +
    +# Required variables:
    +# - domain_name: The main domain (e.g., "example.com")
    +# - subdomain: The subdomain to create (e.g., "test")
    +
    +try:
    +  # Create a new subdomain by adding a DNS entry (A record as example)
    +  ip_address = "1.2.3.4"  # Replace with the desired IP address
    +  response = client.post(
    +     "/domain/zone/" + domain_name + "/record",
    +     fieldType="A",
    +     subDomain=subdomain,
    +     target=ip_address,
    +     ttl=3600
    +  )
    +  # Refresh the zone to apply changes
    +  client.post("/domain/zone/" + domain_name + "/refresh")
    +  result["message"] = "Subdomain '" + subdomain + "." + domain_name + "' created and DNS zone refreshed."
    +except Exception as e:
    +  result["exit_code"] = 1
    +  result["message"] = "Error: " + str(e)
    +
    +
  • +
  • Save the Command

    +
      +
    • Click the Save button to create the command
    • +
    +
  • +
+
+
+

Running the OVHcloud Instance Command

+
    +
  • Navigate to Server
      +
    • Go to Cetmix Tower > Servers > Servers
    • +
    • Open the server where you want to run the command
    • +
    +
  • +
  • Execute Command from Server
      +
    • Click the Command button at the top of the server form
    • +
    • In the popup dialog:
        +
      • Select your OVHcloud instance command from the dropdown
      • +
      • Verify the variable values (if any need adjustment)
      • +
      • Click Run to execute
      • +
      +
    • +
    +
  • +
  • View Command Results
      +
    • After execution, the command log will display showing:
        +
      • The command executed
      • +
      • Execution status
      • +
      • Output message containing OVHcloud instance details if successful
      • +
      +
    • +
    +
  • +
+
+
+
+

Changelog

+
+

14.0.1.3.0 (2025-07-15)

+
    +
  • Features: Improve the way Python libraries are added using custom +modules (4832)
  • +
+
+
+

14.0.1.2.0 (2025-06-12)

+
    +
  • Features: Refactor the library import using the latest updates in the +cetmix_tower_server module. (4768)
  • +
+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Cetmix
  • +
  • Giovanni Serra
  • +
+
+
+

Maintainers

+

Current maintainer:

+

GSLabIt

+

This module is part of the cetmix/cetmix-tower project on GitHub.

+

You are welcome to contribute.

+
+
+
+ +