kubernetes-ingress
kubernetes-ingress copied to clipboard
unable to install in an air-gapped environment
Describe the bug Installing or templating with helm, using current helm cart nginxinc/charts/nginx-ingress is not possible in an air-gapped environment due the reference, in values.schema.json, to external resources like https://raw.githubusercontent.com/nginxinc/kubernetes-json-schema/master/v1.29.0/_definitions.json event if the configuration is correct.
To Reproduce Deploy the application in an air-gapped environment and launch
helm --version=1.2.0 template --create-namespace -f=/tmp/nginx-1.yaml ingress-tier-1 oci://ghcr.io/nginxinc/charts/nginx-ingress
and error is
Error: values don't meet the specifications of the schema(s) in the following chart(s):
nginx-ingress:
Get "https://raw.githubusercontent.com/nginxinc/kubernetes-json-schema/master/v1.29.0/_definitions.json": dial tcp 185.199.108.133:443: i/o timeout
Expected behavior Install the controller as expected, the configuration is correct because on a connected environment, with same values, the application is installed without issues.
Your environment
- Version of the Ingress Controller Helm Chart - 1.2
- Version of Kubernetes 1.29
Hi @angeloxx thanks for reporting!
Be sure to check out the docs and the Contributing Guidelines while you wait for a human to take a look at this :slightly_smiling_face:
Cheers!
Value file is:
controller:
ingressClass:
name: nginx-tier-1
tolerations:
- key: "node-role.kubernetes.io/network-node"
operator: "Exists"
effect: "NoSchedule"
pod:
annotations:
selector: tier-1
service:
create: false
The project has included this schema file in the Operator to accommodate OpenShift customers in this scenario. I believe that the schema was first separated due to concerns about its size and thus the resulting size of the chart. If the schema was incorporated, I would love to see some effort to reduce the size of the schema itself and if that is possible.
@angeloxx as a temporary measure, is it possible for you to remove the values.schema.json file (only possible if you're building from source).
@brianehlert the only way I see for now is to either:
- do same as operator i.e. move the schema to this repo (@pdabelf5 mentioned there'll be x9 increase in size of chart pkg) or
- remove the schema validation until helm introduces -skip-validation flag (finally there seems to be some traction on https://github.com/helm/helm/issues/10398 with https://github.com/helm/helm/pull/12743)
@angeloxx as a temporary measure, is it possible for you to remove the values.schema.json file (only possible if you're building from source).
Yes, already applied the W/A downloading the chart and removing the file before the deploy but isn't a viable long-term solution. We still have the same issues with other charts via a wrong values.schema.json and for that reason we still waiting for the --skip-schema-validation flag in Helm (and its adoption in helmfile).
@angeloxx yes the --skip-schema-validation is pretty much a requirement at this point, i guess as part of this issue we'll try to see if there's a short term solution or not, will keep you posted 👍🏼
@angeloxx The idea is to have the schema embedded in the helm chart. We will look into in the due course.
We have a PR merged to fix this issue https://github.com/nginxinc/kubernetes-ingress/pull/5493
We need to validate the fix.
https://github.com/nginxinc/kubernetes-ingress/pull/5528 reverting above PR because of issue with helm relative path
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 10 days.
This issue was closed because it has been stalled for 10 days with no activity.