A tool to take a deployed set of kubernetes resources and turn them into a helm release. Only works with helm3 > 3.2.0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Martyn 3a1ad5325a More fixen 11 months ago
build More fixen 11 months ago
cmd Copy pasta typo 11 months ago
internal/exporters Works, mostly. 11 months ago
.gitignore Initial commit 11 months ago
LICENSE Initial commit 11 months ago
Makefile Fixup CI with releases 11 months ago
README.md Updating readme 11 months ago
go.mod Works, mostly. 11 months ago
go.sum Works, mostly. 11 months ago

README.md

helm-import

A tool to take a deployed set of kubernetes resources and turn them into a helm release.

Only works with helm3 > 3.2.0

Only compiles with Go < 1.15

And it's a pain to cross-compile, and my ci is currently broken

You can add jq commands to tweak the generation.

You run it from the chart folder (the one with Chart.yaml) in it

It's fairly opinionated but that can be turned off.

There's some kinda hacky stuff in the code related to json->yaml->helm stuff.

so... erm here's a docker command that worked for me :

docker run -v $(pwd):/context -v $HOME/.kube:/root/.kube --rm -it -w /context/ imartyn/helm-import /helm-import -namespace some-namespace -deployment some-deployment

and here's the help screen :

Usage of helm-import:
  -configmap value
        configmap to import into the helm chart (can be specified multiple times)
  -configmapJqCommands value
        extra jq commands to apply to configmaps
  -deployment value
        deployment to import into the helm chart (can be specified multiple times)
  -deploymentJqCommands value
        extra jq commands to apply to deployments
  -globalJqCommands value
        extra jq commands to apply to all k8s objects
  -ingress value
        ingress to import into the helm chart (can be specified multiple times)
  -ingressJqCommands value
        extra jq commands to apply to ingresses
  -kubeconfig string
        (optional) absolute path to the kubeconfig file (default "/home/martyn/.kube/config")
  -lessopinions
        just import the objects into files, don't get opinionated
  -namespace string
        namespace to work in (default "default")
  -nobuiltinmods
        don't do the built-in modifications, only ones passed in by user
  -secret value
        secret to import into the helm chart (can be specified multiple times)
  -secretJqCommands value
        extra jq commands to apply to secrets
  -service value
        service to import into the helm chart (can be specified multiple times)
  -serviceJqCommands value
        extra jq commands to apply to services

TODO: