Skip to content

Development Tips#

This guide provides tips for development workflows in our platform environment.

Helm Chart Configuration#

Adjust Helm Chart Timeout#

When working with Helm charts in development, you may need to adjust the timeout to ensure proper cleanup of resources when deployments fail. The default timeout might be too short for development environments, especially when dealing with larger charts or slower clusters.

# Example: Adjusting timeout in HelmRelease
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: my-app
  namespace: development
spec:
  # ... other configuration ...
  timeout: 600s  # Increase timeout to 10 minutes
  # ... other configuration ...

Why this matters: - You can't clean up resources until the helm deployment fails - Longer timeouts allow for slower development environments - Prevents premature timeouts during resource-intensive operations

Reference: FluxCD HelmRelease Timeout Configuration

Disable Waiting for Resources to Be Ready#

During development, you may want to disable the waiting for resources to be ready to speed up the deployment process. This is particularly useful when you're making frequent changes and don't need to wait for all resources to become ready.

# Example: Disabling readiness checks in HelmRelease
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: my-app
  namespace: development
spec:
  # ... other configuration ...
  install:
    remediation:
      retries: 3
    # Disable waiting for resources to be ready
    wait: false
  # ... other configuration ...

Why this matters: - Faster deployment cycles during development - Reduced waiting time for iterative development - Useful when you're only testing deployment syntax, not functionality

Reference: FluxCD HelmRelease Install Configuration

Resource Optimization#

Reduce Replicas and Disable High Availability Features#

In development environments, you can significantly reduce resource consumption by:

  1. Reducing the number of replicas to the minimum needed for testing
  2. Disabling high availability features that aren't necessary for development
  3. Using smaller resource limits for development workloads
# Example: Development-optimized deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: development
spec:
  replicas: 1  # Reduce from production replica count
  # ... other configuration ...
  template:
    # ... pod template configuration ...
    spec:
      # Disable high availability features
      terminationGracePeriodSeconds: 30
      # ... other configuration ...

Why this matters: - Reduced resource consumption in development clusters - Faster startup times for development deployments - Lower costs for development environments - Better performance for other developers sharing the cluster