-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failed to create canary patset, Canary deployment will result in patset error when containing "-" symbol the namespace #650
Comments
@progS1m since '-' is used as a separator in the controller naming convention it is giving above mentioned error. |
@ankits123 noticed the canary is not always creating a patset. In which constellation are they being crated and in which not? Using multiple values like described here is not working, respectively doesn't result into a patset. ingress.citrix.com/canary-by-header-value: '["value1","value2","value3","value4"]' results in:
|
Figured out, the patset was introducing in newer CIC builds, where in older builds no patset has been created. |
@ankits123 /usr/src/triton/kubernetes/canary/ingress_canary.py is the file that has the buggy function Please fix it by adding an unsupported character substitution something like this: I think it's an easy fix. When can we expect a fix? Unfortunately It is important for us to get this addressed very soon. |
@ankits123: could you please share timeline for this fix? We are unable to use canary features because of this bug - blocked for two months already! |
hi @pfyod we would like to discussion some points over mail . |
@ankits123: I would prefer to keep it here. Tried the latest CIC controller and it's still not fixed. This method:
should be changed to:
This will not break existing deployments, unless there are namespace collisions after escaping, e.g. |
hi @pfyod |
@pfyod |
Describe the bug
Using canary annotations not working when the namespace name is containing a "-" symbol.
Annotations:
ingress.citrix.com/canary: true
ingress.citrix.com/canary-by-header: X-Canary
ingress.citrix.com/canary-by-header-value: preview
ingress.citrix.com/canary-weight: 0
Namspace:
namespace: my-namespace
Unfortunately we cannot easily change all our namespaces name. Since we have to many of them! And most of them containing "-" symbols!
To Reproduce
Deploy the sample like described here, but in a namespace containing a "-" symbol in its name. https://docs.netscaler.com/en-us/netscaler-k8s-ingress-controller/canary/canary.html#simplified-canary-deployment-using-ingress-annotations
Version of the NetScaler Ingress Controller
1.39.6
Version of MPX/VPX/CPX
NS 13.1 51.15
Expected behavior
Either the Netscaler should accept "-" symbols in patset or the CIC should convert dashes to underlines. The second option would be probably the faster workaround!
Logs
kubectl logs
2024-03-26 08:37:15,674 - ERROR - [nitrointerface.py:create_canary_patset:7887] (MainThread) Failed to create canary patset k710p_my-namespace_myingressname_Canary_Header_Values_0. Reason (3856, 'Invalid policy entity name: names must begin with an ASCII alphabetic character or underscore and must contain only ASCII alphanumerics or underscores; words reserved for policy use may not be used', 'ERROR')
Probably relates to: #547
The text was updated successfully, but these errors were encountered: