Closed gektor0856 closed 1 year ago
this can be fixed by implementing https://github.com/solo-io/gloo/issues/7495 and then referencing the configMap (instead of the full proto descriptor string) in the Gateway
An initial fix, by way of implementing https://github.com/solo-io/gloo/issues/7495, is available in:
To use this in helm, old helm values in the shape of:
gloo:
gatewayProxies:
gatewayProxy:
gatewaySettings:
customHttpGateway:
options:
grpcJsonTranscoder:
protoDescriptorBin: <proto-desc-content...>
should be changed to:
gloo:
gatewayProxies:
gatewayProxy:
gatewaySettings:
customHttpGateway:
options:
grpcJsonTranscoder:
protoDescriptorConfigMap:
configMapRef:
name: my-config-map
namespace: gloo-system # optional, defaults to install namespace
key: my-key # optional if there is only one key in the configmap
global:
configMaps:
- name: my-config-map
namespace: gloo-system
data:
my-key: <proto-desc-content...>
Will leave this issue open so we can explore a more generic fix that will any avoid future issues with the size of the gateway yaml.
A more generic fix, which does not require the use of protoDescriptorConfigMap
(i.e. you can keep using protoDescriptorBin
) is available in:
Gloo OSS 1.14.0-beta7, 1.13.4, 1.12.42, and 1.11.50 Gloo EE 1.14.0-beta4, 1.13.5, 1.12.46, and 1.11.51
edit: per below comment, there may still be issues with protoDescriptorBin, so we suggest using the protoDescriptorConfigMap as outlined above
@jenshu Great! Thanks! But i faced with new problem after upgrading gloo edge oss 1.11.19 to 1.11.50: rollout job failed with error in logs:
kubectl logs gloo-resource-rollout-fmflx
deployment "gateway" successfully rolled out
Warning: resource gateways/gateway-proxy is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
The Gateway "gateway-proxy" is invalid: metadata.annotations: Too long: must have at most 262144 bytes
is it may be solved? what about server-side resources apply?
Gloo Edge Version
1.11.x
Kubernetes Version
1.22.x
Describe the bug
I'm trying to upgrade gloo edge 1.11.19 to latest (1.11.32) and getting error in rolloutJob:
standard_init_linux.go:228: exec user process caused: argument list too long
I'm using helm to upgrade gloo and gatewayProxies.gatewayProxy.gatewaySettings.customHttpsGateway option to set proto descriptor binary and it seems to me that this conflicts with rollout job
Rollout pod describe: kubectl describe po gloo-resource-rollout-wjq6g
Output
``` Name: gloo-resource-rollout-wjq6g Namespace: bai-infra Priority: 0 Node: minikube/192.168.49.2 Start Time: Wed, 31 Aug 2022 12:10:52 +0400 Labels: controller-uid=586960aa-bbc1-4393-91b3-3e8fda6e7862 gloo=resource-rollout job-name=gloo-resource-rollout Annotations:Steps to reproduce the bug
gloo.gatewayProxies.gatewayProxy.gatewaySettings.customHttpGateway.options.grpcJsonTranscoder.protoDescriptorBin
with large proto descriptorExpected Behavior
rolloutJob should complete upgrade gateway
Additional Context
No response