Skip to content

Import Existing Deployments

Already have Kubernetes Deployments running that weren't created by helm-me? Import them to manage with helm-me ops.

Import by Label

helm-me app import my-legacy-app \
  --namespace production \
  --label-selector app=my-legacy-app

This registers the existing deployment in the helm-me registry so you can:

helm-me ops pods my-legacy-app
helm-me ops logs backend my-legacy-app
helm-me ops status my-legacy-app

Import by Name

helm-me app import payment-service \
  --namespace payments \
  --label-selector app.kubernetes.io/name=payment-service

Imported vs Managed Apps

Feature Managed (deployed by helm-me) Imported
ops pods
ops logs
ops shell
ops status
deploy
destroy

Imported apps are read-only in the registry. You can observe and interact with them, but helm-me deploy will not modify their resources.

End-to-End Workflow

Here is how you might adopt an existing deployment:

  1. Import the app to make it available to ops commands:
    helm-me app import my-legacy-api --namespace legacy
    helm-me app use my-legacy-api
    
  2. Observe it to make sure you have the right one:
    helm-me ops logs backend
    helm-me ops port-forward backend 8080
    
  3. Generate a spec if you want to start managing it with helm-me:
    helm-me app generate-spec my-legacy-api -o deploy.yaml
    
  4. Deploy it (to take ownership):
    helm-me deploy deploy.yaml --yes
    

Limitations of Import

When you run app import: - helm-me does not create or modify any resources on your cluster. - It only saves a record in ~/.helm-me/deployments/ with the label selector. - Complex setups (e.g. apps spanning multiple namespaces) are not supported by a single import.

When to Use What

  • app import: If you just want to use helm-me ops commands on an app you don't control (e.g. deployed by an external Helm release or ArgoCD).
  • app generate-spec: If you want to stop using the old deployment method and take full control of the app using helm-me.