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
OpenTofu/Terraform (recommended)
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:
- Setting up a new account
- Setting up GCP and GKE
- Importing existing configurations into OpenTofu/Terraform