66 lines
2.5 KiB
Lua
66 lines
2.5 KiB
Lua
function split(input, delimiter)
|
|
local arr = {}
|
|
string.gsub(input, '[^' .. delimiter ..']+', function(w) table.insert(arr, w) end)
|
|
return arr
|
|
end
|
|
|
|
annotations = obj.annotations
|
|
annotations["nginx.ingress.kubernetes.io/canary"] = "true"
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-cookie"] = nil
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header"] = nil
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header-pattern"] = nil
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header-value"] = nil
|
|
-- MSE extended annotations
|
|
annotations["mse.ingress.kubernetes.io/canary-by-query"] = nil
|
|
annotations["mse.ingress.kubernetes.io/canary-by-query-pattern"] = nil
|
|
annotations["mse.ingress.kubernetes.io/canary-by-query-value"] = nil
|
|
annotations["nginx.ingress.kubernetes.io/canary-weight"] = nil
|
|
if ( obj.weight ~= "-1" )
|
|
then
|
|
annotations["nginx.ingress.kubernetes.io/canary-weight"] = obj.weight
|
|
end
|
|
if ( annotations["mse.ingress.kubernetes.io/service-subset"] )
|
|
then
|
|
annotations["mse.ingress.kubernetes.io/service-subset"] = "gray"
|
|
end
|
|
|
|
if ( obj.requestHeaderModifier )
|
|
then
|
|
local str = ''
|
|
for _,header in ipairs(obj.requestHeaderModifier.set) do
|
|
str = str..string.format("%s %s", header.name, header.value)
|
|
end
|
|
annotations["mse.ingress.kubernetes.io/request-header-control-update"] = str
|
|
end
|
|
if ( not obj.matches )
|
|
then
|
|
return annotations
|
|
end
|
|
for _,match in ipairs(obj.matches) do
|
|
if match.headers and next(match.headers) ~= nil then
|
|
header = match.headers[1]
|
|
if ( header.name == "canary-by-cookie" )
|
|
then
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-cookie"] = header.value
|
|
else
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header"] = header.name
|
|
if ( header.type == "RegularExpression" )
|
|
then
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header-pattern"] = header.value
|
|
else
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-header-value"] = header.value
|
|
end
|
|
end
|
|
end
|
|
if match.queryParams and next(match.queryParams) ~= nil then
|
|
queryParam = match.queryParams[1]
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-query"] = queryParam.name
|
|
if ( queryParam.type == "RegularExpression" )
|
|
then
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-query-pattern"] = queryParam.value
|
|
else
|
|
annotations["nginx.ingress.kubernetes.io/canary-by-query-value"] = queryParam.value
|
|
end
|
|
end
|
|
end
|
|
return annotations |