github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/website/content/docs/partnerships.mdx (about)

     1  ---
     2  layout: docs
     3  page_title: Nomad Partnerships
     4  description: Update this content
     5  ---
     6  
     7  # Nomad Integration Program
     8  
     9  ## Introduction
    10  
    11  The HashiCorp Nomad Integration Program allows vendors to integrate their products to work with Nomad. As a scheduler, Nomad encompasses a broad area. Thereby, a set of integrations may require vendor integration code.
    12  
    13  Vendors integrating their solutions via the Nomad Integration Process provide their customers a verified and seamless user experience. The Nomad Integration Program primarily supports coding with the Go programming language.
    14  
    15  This program is intended to be largely a self-service process with links and guidance to information sources, clearly defined steps, and checkpoints.
    16  
    17  ## Types of Nomad Integrations
    18  
    19  Nomad is a simple and flexible orchestrator to deploy and manage containers and non-containerized applications across on-premises and cloud environments at scale. Nomad is widely adopted and used in production by organizations like Cloudflare, Roblox, Q2, Pandora, and more. For a full description of the current features please refer to the [Nomad Website](/). The diagram below depicts the key Nomad integration categories and types.
    20  
    21  ![Integration Categories](/img/nomad-workload.png)
    22  
    23  Main Nomad categories for partners to integrate with include:
    24  
    25  - CI/CD (Continuous Integration & Delivery)
    26  - Container Runtime
    27  - GPUs & Other Hardware Devices
    28  - Monitoring
    29  - Artifact Repo
    30  - Networking
    31  - Storage
    32  - Autoscaling
    33  
    34  ## Development Process
    35  
    36  The Nomad integration development process is divided into six steps. By following these steps, Nomad integrations can be developed alongside HashiCorp to ensure that the integrations are able to be verified and supported in Nomad as quickly as possible. A visual representation of the self-guided steps is depicted below.
    37  ![Development Process](https://www.datocms-assets.com/2885/1618463733-nomad-integration-program-steps.png)
    38  
    39  The individual Nomad integration steps include:
    40  
    41  1.  Engage: Initial contact between vendor and HashiCorp
    42  2.  Enable: Information and articles to aid with the development of the integration
    43  3.  Dev/Test: Integration development and test process
    44  4.  Review: HashiCorp code review and verification of integration (iterative process)
    45  5.  Release: Verified integration made available and listed on the HashiCorp website once the HashiCorp technology partnership agreement has been executed
    46  6.  Support: Ongoing maintenance and support of the provider by the vendor.
    47  
    48  ### 1. Engage
    49  
    50  Please begin by providing some basic information about the integration that is being built via a simple [webform](https://docs.google.com/forms/d/e/1FAIpQLSflmhg8lkY5QyH3CB5TUMi4I1ZFQFx_GP_TVDtsbxMaFEMWpw/viewform).
    51  
    52  This information is recorded and used by HashiCorp to track the integration through various stages. The information is also used to notify the integration developer of any overlapping work, perhaps coming from the community so you may better focus resources.
    53  
    54  Nomad has a large and active community and ecosystem of partners that may have already started working on a similar integration. We'll do our best to connect similar parties to avoid duplicate work.
    55  
    56  ### 2. Enable
    57  
    58  While not mandatory, HashiCorp encourages vendors to sign and MNDA (Mutual Non-Disclosure Agreement) to allow for open dialog and sharing of ideas during the integration process.
    59  
    60  In an effort to support our self-serve model we've included links to resources, documentation, examples and best practices to guide you through the Nomad integration development and testing process.
    61  
    62  - Contributing to Nomad [guidelines](https://github.com/hashicorp/nomad/tree/main/contributing)
    63  - [Nomad Developer Community Forum](https://groups.google.com/g/nomad-tool)
    64  - [Nomad's source code](https://github.com/hashicorp/nomad)
    65  
    66  We encourage vendors to closely follow the above guidance. Adopting the same structure and coding patterns helps expedite the review and release cycles.
    67  
    68  ### 3. Dev & Test
    69  
    70  Nomad requires all code-level integrations to be written in the [Go](https://golang.org/) programming language and contain an [MPL-2.0](https://en.wikipedia.org/wiki/Mozilla_Public_License) open source license. The only knowledge necessary to write a plugin is basic command-line skills and knowledge of the Go programming language. When writing in Go-Language, HashiCorp has found the integration development process to be straightforward and simple when vendors pay close attention and follow the resources and by adopting the same structure and coding patterns helps expedite the review and release cycles. Please remember that all integration major steps should contain acceptance testing and the appropriate documentation.
    71  
    72  Container Runtime
    73  
    74  - [Task driver documentation](/docs/drivers)
    75  - [Guide to build, install, and maintaining a task driver plugin](/docs/concepts/plugins/task-drivers)
    76  - [Community examples of task drivers](/plugins/drivers/community)
    77  
    78  GPUs & Specialized Hardware Devices
    79  
    80  - [Device plugin documentation](/docs/devices)
    81  - [Guide to build, install, and maintain a device plugin](/docs/concepts/plugins/devices)
    82  - [Template for writing a device plugin](https://github.com/hashicorp/nomad-skeleton-device-plugin)
    83  - [Example of a device plugin](https://github.com/hashicorp/nomad/tree/main/devices/gpu/nvidia)
    84  
    85  Autoscaling
    86  
    87  - [Autoscaling plugin documentation](/tools/autoscaling)
    88  
    89  Storage
    90  
    91  - [CSI plugins documentation](/docs/concepts/plugins/csi)
    92  
    93  Observability & Analysis
    94  
    95  - [Telemetry documentation](/docs/operations/monitoring-nomad)
    96  
    97  ## 4. Review
    98  
    99  During the review process, HashiCorp will provide feedback on the newly developed integration. This is an important step to allow HashiCorp to review and verify your Nomad integration. Please send the integration code and other relevant logs for verification to: [Nomad-integration-dev@hashicorp.com](mailto:Nomad-integration-dev@hashicorp.com).
   100  
   101  For task, device, storage, and autoscaling plugins, please submit a GitHub pull request (PR) against the [Nomad project](https://github.com/hashicorp/nomad). In some cases the vendor may need to provide HashiCorp with a permanent test account so that the integration can be verified on an ongoing basis.
   102  
   103  The review process can take a while to complete and may require some iterations through the code to address and problems identified by the HashiCorp team.
   104  
   105  ### 5. Release
   106  
   107  At this stage, it is expected that the integration is fully complete, the necessary documentation has been written, the acceptance tests have all passed, and that HashiCorp has reviewed the integration. Once the plugin has been validated and accepted by HashiCorp, the plugin can be hosted anywhere so it can easily be downloaded then installed within Nomad.
   108  
   109  Once the integration has been released the vendor is requested to sign the HashiCorp Technology Partner Agreement so that we can have their integration be listed on the HashiCorp website.
   110  
   111  ### 6. Support
   112  
   113  Many vendors view the release step to be the end of the journey, while at HashiCorp we view it to be the beginning of the journey. Getting the integration built is just the first step in enabling users to leverage it against their infrastructure. Once development is completed, on-going effort is required to support the developed integration, maintain the provider, and address any issues in a timely manner.
   114  
   115  The expectation from the vendor/partner is to create a mechanism for them to track and resolve all critical issues as soon as possible within 48 hours and all other issues within 5 business days. This is a requirement given the critical nature of Nomad to the customer's operation. Vendors who choose to not support their integration will not be considered a verified integration and cannot be listed on the website.
   116  
   117  ## Checklist
   118  
   119  Below is an ordered checklist of steps that should be followed during the integration process. This just reiterates the steps already documented in the sections above.
   120  
   121  - Fill out the Nomad integration [webform](https://docs.google.com/forms/d/e/1FAIpQLSflmhg8lkY5QyH3CB5TUMi4I1ZFQFx_GP_TVDtsbxMaFEMWpw/viewform)
   122  - Execute the HashiCorp MNDA (Mutual Non-Disclosure Agreement) if needed
   123  - Develop and test Nomad integration along with the acceptance tests and documentation
   124  - Send email to [Nomad-integration-dev@hashicorp.com](mailto:Nomad-integration-dev@hashicorp.com) to schedule an initial review
   125  - Address review feedback and finalize the development process
   126  - Provide HashiCorp with credentials for underlying infrastructure for test purposes
   127  - Demo the integration and/or send the test logs to HashiCorp at: [Nomad-integration-dev@hashicorp.com](mailto:Nomad-integration-dev@hashicorp.com)
   128  - Execute HashiCorp Partner Agreement Documents, review logo guidelines, partner listing and more
   129  - Plan to continue supporting the integration with additional functionality and responding to customer issues.
   130  
   131  ## Contact Us
   132  
   133  For any questions or feedback, please contact us at: [Nomad-integration-dev@hashicorp.com](mailto:Nomad-integration-dev@hashicorp.com).