How to fix Error: must either provide a name or specify --generate-name
in Helm
Created sample helm chart name as mychart and written the deployment.yaml, service.yaml, ingress.yaml with nginx service. After that running the command like $ helm install mychart
apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - name: main port: 80 protocol: TCP targetPort: 80 selector: app: nginx
apiVersion: extensions/v1beta2 kind: Deployment metadata: name: nginx spec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.13 ports: containerPort: 80
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nginx annotations: http.port: "443" spec: backend: serviceName: nginx servicePort: 80
Expected output: ..... status: DEPLOYED
Synopsis. This command takes a path to a chart and runs a series of tests to verify that the chart is well-formed. If the linter encounters things that will cause the chart to fail installation, it will emit [ERROR] messages.
The templates directory contains templates that generate Kubernetes manifest files when combined with values. NOTE: As Helm evaluates a chart, the files inside the templates directory will be processed in a template rendering engine before being sent to Kubernetes.
The include function allows you to bring in another template, and then pass the results to other template functions. For example, this template snippet includes a template called mytpl , then lowercases the result, then wraps that in double quotes.
According to the helm documentation for v3.x
helm install --help Usage: helm install [NAME] [CHART] [flags]
you want to use:
helm install "your release name" chart
For example:
# helm repo add stable https://kubernetes-charts.storage.googleapis.com/ # helm install wordpress-helm-testing stable/wordpress NAME: wordpress-helm-testing LAST DEPLOYED: 2019-10-07 15:56:21.205156 -0700 PDT m=+1.763748029 NAMESPACE: default STATUS: deployed NOTES: 1. Get the WordPress URL: NOTE: It may take a few minutes for the LoadBalancer IP to be available. Watch the status with: 'kubectl get svc --namespace default -w wordpress-helm-testing' export SERVICE_IP=$(kubectl get svc --namespace default wordpress-helm-testing --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}") echo "WordPress URL: http://$SERVICE_IP/" echo "WordPress Admin URL: http://$SERVICE_IP/admin" 2. Login with the following credentials to see your blog echo Username: user echo Password: $(kubectl get secret --namespace default wordpress-helm-testing -o jsonpath="{.data.wordpress-password}" | base64 --decode) #helm list NAME NAMESPACE REVISION UPDATED STATUS CHART wordpress-helm-testing default 1 2019-10-07 15:56:21.205156 -0700 PDT deployed wordpress-7.3.9
This is a better operational approach since it eliminates randomness in your release names. You might want to use something like a user name or anything that makes it unique and adds meaning to the release other than the GUID the --generate-name option will give you.
just to add --generate-name
at the end of helm
command
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With