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.
 
 
 
Go to file
Renovate Bot 20ca2e95b0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
Add renovate.json
2 years ago
build More fixen 2 years ago
cmd Copy pasta typo 2 years ago
internal/exporters Works, mostly. 2 years ago
.gitignore Initial commit 2 years ago
LICENSE Initial commit 2 years ago
Makefile Fixup CI with releases 2 years ago
README.md Updating readme 2 years ago
go.mod Works, mostly. 2 years ago
go.sum Works, mostly. 2 years ago
renovate.json Add renovate.json 2 years 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:

  • label the resources
  • make ci work again
  • cross-compile, now I know it was a go-1.15 issue first time