crossplane-provider-launchdarkly

module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2026 License: Apache-2.0

README

Provider LaunchDarkly

provider-launchdarkly is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the LaunchDarkly API.

Getting Started

Install the provider by using the following command after changing the image tag to the latest release:

up ctp provider install xpkg.upbound.io/launchdarkly/provider-launchdarkly:v0.5.0

Alternatively, you can use declarative installation:

cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-launchdarkly
spec:
  package: xpkg.upbound.io/launchdarkly/provider-launchdarkly:v0.5.0
EOF

Notice that in this example Provider resource is referencing ControllerConfig with debug enabled.

You can see the API reference here.

Architecture

This provider uses Upjet's no-fork mode, which means it directly imports and calls the LaunchDarkly Terraform provider's Go SDK rather than spawning Terraform CLI as a subprocess.

Note on Go Module Dependency:

Currently, the LaunchDarkly Terraform provider (github.com/launchdarkly/terraform-provider-launchdarkly) does not follow Go module versioning conventions for v2+ releases (missing /v2 suffix in the module path). As a result, we must use a pseudo-version (commit hash) instead of a semantic version tag.

When updating the Terraform provider dependency, you'll need to:

  1. Find the commit hash for the desired release tag
  2. Generate the pseudo-version using: go mod download github.com/launchdarkly/terraform-provider-launchdarkly@<commit-hash>
  3. Update go.mod with the resulting pseudo-version

Developing

Initial setup
make submodules

Run code-generation pipeline:

make generate

Run against a Kubernetes cluster:

make run

Build, push, and install:

make all

Build binary:

make build
Installing Provider/CRDs into your local k8s cluster
  1. Ensure Crossplane is installed on your local cluster (instructions here)

  2. Run the following:

    kubectl config use-context <name-of-your-local-k8s-context>
    kubectl apply -f ./package/crds
    
Local End-to-End Testing

Run the examples/* folder against your LaunchDarkly account:

  1. Set up credentials:

    • cp cluster/test/credentials.json.example cluster/test/credentials.json
    • Edit credentials.json with your LaunchDarkly admin API token
    • This step can also be validated separately by running make local-e2e-setup
  2. Run make local-e2e, which will:

    • Deploy the provider to a local Kind cluster
    • Create a secret and ProviderConfig from your admin credentials
    • Apply all example resources (projects, flags, teams, etc.)
    • Wait for all resources to reach Ready state
  3. Perform any required manual validation or testing

  4. To clean up run make local-e2e-cleanup

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Directories

Path Synopsis
Package apis contains Kubernetes API for the provider.
Package apis contains Kubernetes API for the provider.
account/v1alpha1
+kubebuilder:object:generate=true +groupName=account.launchdarkly.com +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=account.launchdarkly.com +versionName=v1alpha1
flag/v1alpha1
+kubebuilder:object:generate=true +groupName=flag.launchdarkly.com +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=flag.launchdarkly.com +versionName=v1alpha1
project/v1alpha1
+kubebuilder:object:generate=true +groupName=project.launchdarkly.com +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=project.launchdarkly.com +versionName=v1alpha1
v1alpha1
Package v1alpha1 contains the core resources of the launchdarkly upjet provider.
Package v1alpha1 contains the core resources of the launchdarkly upjet provider.
v1beta1
Package v1beta1 contains the core resources of the launchdarkly upjet provider.
Package v1beta1 contains the core resources of the launchdarkly upjet provider.
cmd
generator command
Package main is the main package for the launchdarkly upjet provider.
Package main is the main package for the launchdarkly upjet provider.
provider command
Package main is the main package for the launchdarkly upjet provider.
Package main is the main package for the launchdarkly upjet provider.
Package config contains the external name configurations for the launchdarkly upjet provider.
Package config contains the external name configurations for the launchdarkly upjet provider.
accesstoken
Package accesstoken contains the configuration for the AccessToken resource.
Package accesstoken contains the configuration for the AccessToken resource.
auditlogsubscription
Package auditlogsubscription contains the configuration for the AuditLogSubscription resource.
Package auditlogsubscription contains the configuration for the AuditLogSubscription resource.
customrole
Package customrole contains the configuration for the CustomRole resource.
Package customrole contains the configuration for the CustomRole resource.
destination
Package destination contains the configuration for the Destination resource.
Package destination contains the configuration for the Destination resource.
environment
Package environment contains the configuration for the Environment resource.
Package environment contains the configuration for the Environment resource.
featureflag
Package featureflag contains the configuration for the FeatureFlag resource.
Package featureflag contains the configuration for the FeatureFlag resource.
featureflagenvironment
Package featureflagenvironment contains the configuration for the FeatureFlagEnvironment resource.
Package featureflagenvironment contains the configuration for the FeatureFlagEnvironment resource.
metric
Package metric contains the configuration for the Metric resource.
Package metric contains the configuration for the Metric resource.
project
Package project contains the configuration for the Project resource.
Package project contains the configuration for the Project resource.
relayproxyconfig
Package relayproxyconfig contains the configuration for the RelayProxyConfiguration resource.
Package relayproxyconfig contains the configuration for the RelayProxyConfiguration resource.
segment
Package segment contains the configuration for the Segment resource.
Package segment contains the configuration for the Segment resource.
team
Package team contains the configuration for the Team resource.
Package team contains the configuration for the Team resource.
teammember
Package teammember contains the configuration for the TeamMember resource.
Package teammember contains the configuration for the TeamMember resource.
teamrolemapping
Package teamrolemapping contains the configuration for the TeamRoleMapping resource.
Package teamrolemapping contains the configuration for the TeamRoleMapping resource.
webhook
Package webhook contains the configuration for the Webhook resource.
Package webhook contains the configuration for the Webhook resource.
internal
clients
Package clients contains the clients for the launchdarkly upjet provider.
Package clients contains the clients for the launchdarkly upjet provider.
controller
Package controller contains the controllers for the launchdarkly upjet provider.
Package controller contains the controllers for the launchdarkly upjet provider.
controller/providerconfig
Package providerconfig contains the controller for the ProviderConfig resource.
Package providerconfig contains the controller for the ProviderConfig resource.
features
Package features contains the feature flags for the launchdarkly upjet provider.
Package features contains the feature flags for the launchdarkly upjet provider.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL