Skip to main content
Version: 0.3

Deploy a Catalog

Deploy catalog items to provision infrastructure or applications across your clusters and environments.

Summary

Once you've created a catalog, deploy instances with custom configurations through the Konstruct UI.

Prerequisites

  • Catalog prerequisites completed
  • At least one catalog created in your GitOps repository
  • Target cluster or environment configured

Deploy YAML Catalog

YAML catalogs deploy applications to specific environments.

Steps

  1. Navigate to Catalogs in the left sidebar

  2. Click Deploy next to your YAML catalog

  3. Configure deployment:

    • Environment: Select target environment (e.g., "dev", "staging", "production")
    • Cluster: Choose specific clusters or "All clusters in environment"
  4. Configure parameters:

    • Fill in all required fields (marked with *)
    • Provide optional parameters as needed
    • For secret fields, values are stored in your configured secret backend
  5. Review deployment summary

  6. Click Deploy Catalog

Deployment Path

<org>-gitops/
└── registry/
└── environments/
└── <environment>/
└── <cluster-name>/
├── <catalog-name>.yaml # ArgoCD Application
└── <catalog-name>/ # Additional resources

Monitor Deployment

Check deployment status:

  1. ArgoCD UI: Navigate to ArgoCD to view application sync status

  2. Konstruct UI: View deployment status in Catalogs → Deployments

  3. Kubectl: Check application resources

    kubectl get applications -n argocd
    kubectl get pods -n <namespace>

Deploy IAC Catalog

IAC catalogs provision infrastructure resources on specific clusters.

Steps

  1. Navigate to Catalogs in the left sidebar

  2. Click Deploy next to your IAC catalog

  3. Configure deployment:

    • Cluster: Select target cluster for infrastructure provisioning
  4. Configure Terraform variables:

    • Provide values in camelCase (UI automatically converts to snake_case)
    • Fill in all required variables
    • Review default values
  5. Review Terraform plan summary

  6. Click Deploy Catalog

Deployment Path

<org>-gitops/
└── registry/
└── clusters/
└── <cluster-name>/
└── components/
└── iac/
├── <catalog-name>.yaml # ProviderConfig + Workspace CRDs
└── iac.yaml # ArgoCD Application

Monitor Provisioning

Check infrastructure provisioning:

  1. Check Workspace status:

    kubectl get workspace -n crossplane-system
    kubectl describe workspace <catalog-name> -n crossplane-system
  2. View Terraform logs:

    kubectl logs -n crossplane-system -l crossplane.io/claim-name=<catalog-name>
  3. Check resource status in cloud provider console

Deploy Hybrid Catalog

Hybrid catalogs deploy both infrastructure and applications.

Steps

  1. Navigate to Catalogs in the left sidebar

  2. Click Deploy next to your Hybrid catalog

  3. Configure deployment:

    • Environment: Select target environment(s) for applications
    • Cluster: Select target cluster(s)
  4. Configure parameters:

    • Provide both infrastructure variables (camelCase → snake_case)
    • Provide application parameters (camelCase)
    • Fill in secrets
  5. Review dual deployment summary

  6. Click Deploy Catalog

Deployment Sequence

Hybrid catalogs deploy in phases:

  1. Phase 1 - Infrastructure: IAC components deploy to platform GitOps
  2. Wait: Operator waits for infrastructure Available state
  3. Phase 2 - Applications: YAML components deploy to application GitOps

Monitor Hybrid Deployment

Monitor both phases:

  1. Phase 1 - Infrastructure:

    kubectl get workspace <catalog-name> -n crossplane-system
  2. Phase 2 - Applications:

    kubectl get applications -n argocd | grep <catalog-name>

Deployment States

YAML Catalog States

StateDescriptionAction
PendingApplication manifest committed to GitOpsWait for ArgoCD sync
SyncingArgoCD syncing resources to clusterMonitor ArgoCD
HealthyAll resources deployed successfullyDeployment complete
DegradedSome resources failedCheck ArgoCD logs

IAC Catalog States

StateDescriptionAction
PendingWorkspace CRD createdWait for Terraform init
PlanningTerraform plan executingReview plan output
ApplyingTerraform apply in progressMonitor logs
AvailableInfrastructure provisionedDeployment complete
FailedTerraform execution failedCheck logs and fix

Troubleshooting

YAML Catalog Issues

Application Not Syncing:

  • Check ArgoCD UI for sync errors
  • Verify target namespace exists
  • Confirm ArgoCD project permissions

Parameters Not Applied:

  • Check values.yaml syntax
  • Verify parameter naming (camelCase)
  • Confirm all required annotations present

IAC Catalog Issues

Workspace Stuck in Pending:

  • Check Crossplane provider status: kubectl get provider
  • Verify ProviderConfig credentials
  • Review S3 backend access permissions

Terraform Apply Failures:

  • View Workspace logs for detailed errors
  • Check cloud provider permissions
  • Verify variable values match expected types
  • Confirm resource quotas not exceeded

Token Detokenization Errors:

  • Verify all <TOKENS> in provider file have corresponding values
  • Check token naming matches exactly (case-sensitive)

Update Deployed Catalog

To update a deployed catalog:

  1. Navigate to CatalogsDeployments

  2. Click Edit next to the deployment

  3. Modify parameters as needed

  4. Click Update Deployment

  5. Monitor sync/apply process

Changes trigger:

  • YAML: ArgoCD resync with new values
  • IAC: New Terraform plan and apply
  • Hybrid: Both phases re-execute if needed

Delete Catalog Deployment

To remove a deployed catalog:

  1. Navigate to CatalogsDeployments

  2. Click Delete next to the deployment

  3. Confirm deletion

  4. Operator performs cleanup:

    • Removes files from GitOps repositories
    • ArgoCD prunes application resources
    • Crossplane runs Terraform destroy (for IAC)

Warning: IAC catalog deletion runs terraform destroy. Ensure you have backups of important data.

Best Practices

  • Test in dev first: Deploy to development environment before production
  • Review changes: Check GitOps repository commits after deployment
  • Monitor actively: Watch deployments until they reach healthy/available state
  • Use descriptive names: Name deployments clearly for easy identification
  • Document parameters: Keep track of parameter values for each deployment
  • Regular cleanup: Remove unused catalog deployments to reduce clutter

What's Next?