Claude Skills Guide

Claude Code for Upbound Marketplace Workflow Guide

The Upbound Marketplace has become the go-to platform for distributing Crossplane configurations, compositions, and managed control planes. Whether you’re publishing a private provider or sharing composition templates with your team, the workflow involves multiple steps that can benefit from automation and intelligent assistance. This guide shows you how to use Claude Code to accelerate every phase of your Upbound Marketplace workflow.

Understanding the Upbound Marketplace Ecosystem

Before diving into the workflow, it’s essential to understand what you’re actually publishing to the Upbound Marketplace. The ecosystem revolves around three core concepts:

Claude Code can assist you in creating, testing, and publishing each of these artifacts efficiently.

Setting Up Your Development Environment

The first step involves configuring your local environment for Upbound development. Claude Code can help you set this up correctly:

# Install the Upbound CLI
curl -sL https://raw.githubusercontent.com/upbound/up/main/install.sh | sh

# Verify installation
up version

# Login to your Upbound account
up login --token YOUR_UPCLOUD_TOKEN

When setting up your project directory, use Claude Code to scaffold the proper structure:

# Create a new provider structure
mkdir -p my-provider/apis my-provider/crds my-provider/controllers
mkdir -p my-provider/config/crd my-provider/examples

# Initialize with proper go.mod
cd my-provider
go mod init github.com/yourorg/provider-name

Creating Compositions with Claude Code Assistance

Compositions are the heart of your Upbound Marketplace offerings. Claude Code can help you write compositions that follow best practices and use the latest Crossplane features.

Here’s how Claude Code helps you create a basic Composition:

apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
  name: database.aws.platform.example.com
  labels:
    provider: aws
    service: rds
spec:
  writeConnectionSecretsToNamespace: crossplane-system
  compositeTypeRef:
    apiVersion: platform.example.com/v1alpha1
    kind: Database
  patchSets:
    - name: common
      patches:
        - type: FromCompositeFieldPath
          fromFieldPath: metadata.labels
          toFieldPath: metadata.labels
        - type: FromCompositeFieldPath
          fromFieldPath: spec.parameters.size
          toFieldPath: spec.forProvider.dbInstanceClass
  resources:
    - name: rds-instance
      base:
        apiVersion: rds.aws.upbound.io/v1beta1
        kind: DBInstance
        spec:
          forProvider:
            dbInstanceClass: db.t3.micro
            engine: postgres
            engineVersion: "15.3"
            allocatedStorage: 20
      patches:
        - type: PatchSet
          patchSetName: common
        - type: FromCompositeFieldPath
          fromFieldPath: spec.parameters.dbName
          toFieldPath: spec.forProvider.dbName
        - type: FromCompositeFieldPath
          fromFieldPath: spec.parameters.masterUsername
          toFieldPath: spec.forProvider.masterUsername
        - type: FromCompositeFieldPath
          fromFieldPath: spec.parameters.masterPassword
          toFieldPath: spec.forProvider.masterPassword.secretRef
          transforms:
            - type: string
              string:
                fmt: "%s"

Ask Claude Code to explain each section of your Composition, suggest optimizations, or add additional patches for common scenarios like tags, networking, or backup configurations.

Building and Testing Providers Locally

Before publishing to the Marketplace, you need to build and test your provider locally. Claude Code can guide you through the build process:

# Build your provider
make build

# Run unit tests
make test

# Build documentation
make docs

# Generate CRDs and controllers
make generate

Claude Code can also help you debug common issues. For instance, if your provider fails to reconcile, ask Claude Code to analyze the controller logs and suggest fixes:

# Get controller logs
kubectl logs -n upbound-system -l app=provider-aws-rds -f

Publishing to the Upbound Marketplace

Once your provider or configuration is ready, the publishing process involves several steps that Claude Code can streamline:

Step 1: Tag Your Release

# Create a version tag
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0

Step 2: Build the Package

# Build the provider package
up pkg build provider.yaml \
  --package-file=provider-aws-v0.1.0.xpkg \
  --push=false

Step 3: Publish to Marketplace

# Publish to your organization
up pkg publish provider-aws-v0.1.0.xpkg \
  --org=your-org-name \
  --repo=providers/aws

Claude Code can automate much of this by generating release scripts tailored to your project’s structure.

Managing Versions and Updates

A critical part of Marketplace governance is managing versions. Claude Code helps you implement proper version strategies:

Create a CHANGELOG.md that Claude Code helps maintain:

## v0.2.0
### Added
- Support for RDS Proxy
- New patch transform: JSON path extraction

### Fixed
- Connection secret naming collision
- Timeout handling for long-running operations

### Breaking
- Changed `spec.forProvider.multiAZ` default to true

Best Practices for Marketplace Success

Here are actionable tips to make your Upbound Marketplace offerings successful:

  1. Start with examples: Include working examples in your examples/ directory. Claude Code can generate these from real-world scenarios.

  2. Document comprehensively: Use Claude Code to generate API documentation from your CRD definitions.

  3. Test in isolation: Create dedicated test control planes in Upbound before publishing publicly.

  4. Monitor usage: Set up observability to understand how your configurations are being used.

  5. Iterate based on feedback: Use the issues and discussions in your GitHub repository to guide development priorities.

Conclusion

Claude Code transforms your Upbound Marketplace workflow from a manual, error-prone process into an automated, assisted experience. From scaffolding new providers to debugging reconciliation issues to publishing releases, having an AI coding assistant familiar with Crossplane and the Upbound ecosystem accelerates every step.

Start by integrating Claude Code into your daily development cycle, and you’ll find that the Marketplace publishing process becomes significantly more manageable and reliable.

Built by theluckystrike — More at zovo.one