Comments (4)
From what we gather it seems to happen when only there is a helm chart using Kubernetes CRDs which are not installed. It keeps looping without any error being returned
from helm.
can you please repeat with --debug
flag, and see if anything useful is returned. And for brevity, provide commands how to replicate
from helm.
from helm.
@gjenkins8 To explain a bit more, we have a client app called helmet to wrap helm calls over http. This allows use to do helm installation on Kubernetes cluster through our app using that client.
Right now, the problem occurs if we have an empty kubernetes cluster (like a docker one locally) without anything. When we try to install either
- traefik/traefik
or - prometheus-community/kube-Prometheus-stack
it is hanging in the Run command.
We did a debugging session in visual studio and it is looping almost infinitely when the custom CRDs are not installed.
There is the code sample. It is hanging in the Run command.
type installRequest struct {
baseRequest
DryRun bool `json:"dryRun,omitempty"`
Chart string `json:"chart"`
Version string `json:"version"`
RepoURL string `json:"repositoryUrl"`
ReleaseName string `json:"releaseName"`
Values map[string]interface{} `json:"values,omitempty"`
}
// InstallChart attempts to execute a Helm release on the target
// Kubernetes server with the values supplied in the request body
func InstallChart(r *http.Request) response.APIResponse {
req := new(installRequest)
if validateReq := validateRequest(r, req); validateReq != nil {
return validateReq
}
namespace := mux.Vars(r)["namespace"]
actionConfig, apiErr := req.InitActionConfig(namespace)
if apiErr != nil {
return apiErr
}
installClient := action.NewInstall(actionConfig)
installClient.DryRun = req.DryRun
installClient.ReleaseName = req.ReleaseName
installClient.Namespace = namespace
// creates new environmentSettings objects, if no environment
// variables are found it pre-populates with defaults
settings := cli.New()
installClient.ChartPathOptions.RepoURL = req.RepoURL
installClient.ChartPathOptions.Version = req.Version
cp, err := installClient.ChartPathOptions.LocateChart(req.Chart, settings)
if err != nil {
return response.FailureResponseWithContext(404, response.ErrNotFound, map[string]string{"chart": req.Chart}, err)
}
loadedChart, err := loader.Load(cp)
if err != nil {
return response.FailureResponse(500, response.ErrUnexpected, err)
}
rel, err := installClient.Run(loadedChart, req.Values)
if err != nil {
// In the event of an error during the install step we return the error message in the context map as is, this is a because
// these are always printed in the CLI tool and give the user important feedback about why the failure occured
return response.FailureResponseWithContext(500, response.ErrUnexpected, map[string]string{"message": err.Error()}, err)
}
return response.SuccessResponse(200, rel)
}
There are the http call values received. We are using for either chart the default value file that is provided.
I tried to have the debug flag enabled but it didn't added anything.
from helm.
Related Issues (20)
- Helm version for v3.15.0 reports v3.15.0-rc.2 HOT 12
- Overriding Helm chart dependency version in parent chart HOT 2
- error converting YAML to JSON: did not find exected key HOT 1
- error converting YAML to JSON: yaml: line 22: did not find expected key HOT 7
- Update backward compatibility promise in CONTRIBUTING.md to reflect HIP 0004 HOT 3
- Helm Apt install/package is broken and can't be installed HOT 5
- OCI registry authentication: Some registries will require different auth for different URIs HOT 5
- How to instruct Helm not to add "managed-by" label to the STS HOT 2
- Make retryingRoundTripper type public HOT 1
- Unexpected HELM validation manifests behaviour HOT 1
- [Feature] Custom versioning support HOT 1
- Helm Chart Dependency Versions in chart.lock Not Matching Specified Versions
- Helm doesn't report the right status of the job
- Is mapkubeapis plugin recommended for production by helm for manipulating release manifest ?
- Version 3.15.0 for linux-amd64 is not published. HOT 2
- binary from helm-v3.15.0-linux-amd64.tar.gz reports wrong version HOT 1
- json value gets merged when using custom values yaml file instead of overriding
- Use of Helm build-in objects in Helm templates inside JSON files
- Make funcMap public for unit testing syntax of templates
- The randAscii function returns an error after multiple --dry-run tests HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from helm.