Skip to main content

Overview

Learn about providers

What are providers? why should I care?

Providers allow you to connect nullplatform with GitHub, Azure, AKS, and more 3rd-party services (or providers). It works by asking you a series of information about the provider being connected and taking care of configuring every aspect of the platform, so you can integrate and leverage those services.

Providers greatly simplify the way you configure nullplatform to use 3rd-party services because it:

  • clearly states what information is needed to configure a provider,
  • acts as a single entry-point for configurations that actually span across many nullplatform's subsystems

Note that providers are used to set up and configure nullplatform, it's important to note that we don't manage your subscription to your provider nor infrastructure or resources other than the ones needed to integrate them to nullplatform. For example, we can create a GitHub repository as part of application creation, but we do not manage your GitHub plans or Co-pilot subscription.

Integrations

The collection of 3rd-party services we support as providers are called "Integrations". We provide JSON specifications for services such as:

  • Cloud platforms: AWS, Google Cloud Platform, Microsoft Azure
  • Version control systems: GitHub, GitLab
  • Container orchestration: AKS, EKS, GKE

Click on this link to check the complete list of supported integrations.

Inheritance and overrides

Providers can be configured for the whole organization, for some account, namespaces, applications, or even scopes.

This means that when you configure a provider at a certain level, any node at or below that level will have the same provider configuration. This is, if you configure GitHub or a Kubernetes cluster at the organization level, all applications will be using that provider or configuration.

But what happens when I want to change the behavior for certain accounts, namespaces, etc.?

This is where inheritance takes a role. In this case you would create a new configuration, but at a lower level, overriding some configuration that you have set on the parent levels. For example, if we have configured the cluster " Cluster A" at the organization level, then you could configure "Cluster B" for a specific namespace or application by creating the provider configuration and specifying the level where that configuration take place.

Inheritance works the same way for providers as it work for NRN, so you can read about NRN to learn more on the topic,

Configurations that depend on another one

Configurations may require another configuration to be already set for the provider to function correctly. For example, to configure Elastic K8S Service (EKS) you're required to previously configure AWS.

While we will tell you whenever you're in this situation, you can always check the comprehensive list of configuration dependencies in the provider integrations section.

Secrets and credentials

Whenever a secret or sensitive parameter is saved as part of a configuration, only users using authorized API keys can access and retrieve secrets, which will come in handy when you provision your configurations with OpenTofu/Terraform.

Configure a provider

Nullplatform offers a custom OpenTofu/Terraform provider, allowing you to manage your nullplatform resources, including provider configurations and much more.

1. Add the provider to your Terraform configuration:

terraform {
required_providers {
nullplatform = {
source = "nullplatform/nullplatform"
}
}
}

provider "nullplatform" {
api_key = "your-api-key"
}

2. Create your first provider configuration:

resource "nullplatform_provider_config" "azure-configuration" {
account = "example-account"
type = "azure-configuration"

dimensions = {}

attributes = jsonencode({
"networking": {
"domain_name": "example.com",
"public_dns_zone_name": "public.example.com",
"public_dns_zone_resource_group_name": "my-public-dns-resource-group",
},
"authentication": {
"client_id": "12345678-1234-1234-1234-123456789012",
"tenant_id": "87654321-4321-4321-4321-210987654321",
"client_secret": "ThisIsAMockSecretDoNotUseInProduction!",
"subscription_id": "11111111-2222-3333-4444-555555555555"
}
})
}

API

The typical usage of the provider configuration feature is through our API. All endpoints can be found in the API section of our documentation.

Tutorials

If you are interested in setting up your provider configs using OpenTofu/Terraform, please refer to any of our tutorials:

Reference