Skip to content

Commit

Permalink
Use encode query
Browse files Browse the repository at this point in the history
  • Loading branch information
Argonus committed Dec 11, 2024
1 parent 38d7b5d commit d214e14
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions lib/strategy/kubernetes.ex
Original file line number Diff line number Diff line change
Expand Up @@ -388,18 +388,19 @@ defmodule Cluster.Strategy.Kubernetes do

cond do
app_name != nil and selector != nil ->
selector = URI.encode(selector)

resource_version_param =
if is_nil(resource_version), do: "", else: "&resourceVersion=#{resource_version}"
query_params =
[]
|> apply_param(:labelSelector, selector)
|> apply_param(:resourceVersion, resource_version)
|> URI.encode_query(:rfc3986)

path =
case ip_lookup_mode do
:endpoints ->
"api/v1/namespaces/#{namespace}/endpoints?labelSelector=#{selector}#{resource_version_param}"
"api/v1/namespaces/#{namespace}/endpoints?#{query_params}"

:pods ->
"api/v1/namespaces/#{namespace}/pods?labelSelector=#{selector}#{resource_version_param}"
"api/v1/namespaces/#{namespace}/pods?#{query_params}"
end

headers = [{~c"authorization", ~c"Bearer #{token}"}]
Expand Down Expand Up @@ -454,6 +455,12 @@ defmodule Cluster.Strategy.Kubernetes do
end
end

defp apply_param(params, key, value) when value != nil do
[{key, value} | params]
end

defp apply_param(params, _key, _value), do: params

defp parse_response(:endpoints, resp) do
case resp do
%{"items" => items} when is_list(items) ->
Expand Down

0 comments on commit d214e14

Please sign in to comment.