2020-11-12 15:11:25 +00:00
|
|
|
# helm-import
|
|
|
|
|
2020-11-15 23:04:41 +00:00
|
|
|
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
|