@@ -81,6 +81,60 @@ defmodule Cluster.Strategy.KubernetesTest do
8181 end
8282 end
8383
84+ test "works with cached resources" do
85+ use_cassette "kubernetes" , custom: true do
86+ capture_log ( fn ->
87+ start_supervised! ( { Kubernetes ,
88+ [
89+ % Cluster.Strategy.State {
90+ topology: :name ,
91+ config: [
92+ kubernetes_node_basename: "test_basename" ,
93+ kubernetes_selector: "app=test_selector" ,
94+ kubernetes_use_cached_resources: true ,
95+ # If you want to run the test freshly, you'll need to create a DNS Entry
96+ kubernetes_master: "cluster.localhost." ,
97+ kubernetes_service_account_path:
98+ Path . join ( [ __DIR__ , "fixtures" , "kubernetes" , "service_account" ] )
99+ ] ,
100+ connect: { Nodes , :connect , [ self ( ) ] } ,
101+ disconnect: { Nodes , :disconnect , [ self ( ) ] } ,
102+ list_nodes: { Nodes , :list_nodes , [ [ ] ] }
103+ }
104+ ] } )
105+
106+ assert_receive { :connect , _ } , 5_000
107+ end )
108+ end
109+ end
110+
111+ test "works with no cached resources" do
112+ use_cassette "kubernetes" , custom: true do
113+ capture_log ( fn ->
114+ start_supervised! ( { Kubernetes ,
115+ [
116+ % Cluster.Strategy.State {
117+ topology: :name ,
118+ config: [
119+ kubernetes_node_basename: "test_basename" ,
120+ kubernetes_selector: "app=test_selector" ,
121+ kubernetes_use_cached_resources: false ,
122+ # If you want to run the test freshly, you'll need to create a DNS Entry
123+ kubernetes_master: "cluster.localhost." ,
124+ kubernetes_service_account_path:
125+ Path . join ( [ __DIR__ , "fixtures" , "kubernetes" , "service_account" ] )
126+ ] ,
127+ connect: { Nodes , :connect , [ self ( ) ] } ,
128+ disconnect: { Nodes , :disconnect , [ self ( ) ] } ,
129+ list_nodes: { Nodes , :list_nodes , [ [ ] ] }
130+ }
131+ ] } )
132+
133+ assert_receive { :connect , _ } , 5_000
134+ end )
135+ end
136+ end
137+
84138 test "works with dns and cluster_name" do
85139 use_cassette "kubernetes" , custom: true do
86140 capture_log ( fn ->
@@ -201,6 +255,34 @@ defmodule Cluster.Strategy.KubernetesTest do
201255 end
202256 end
203257
258+ test "works with pods and cached resources" do
259+ use_cassette "kubernetes_pods" , custom: true do
260+ capture_log ( fn ->
261+ start_supervised! ( { Kubernetes ,
262+ [
263+ % Cluster.Strategy.State {
264+ topology: :name ,
265+ config: [
266+ kubernetes_node_basename: "test_basename" ,
267+ kubernetes_selector: "app=test_selector" ,
268+ # If you want to run the test freshly, you'll need to create a DNS Entry
269+ kubernetes_master: "cluster.localhost." ,
270+ kubernetes_ip_lookup_mode: :pods ,
271+ kubernetes_use_cached_resources: true ,
272+ kubernetes_service_account_path:
273+ Path . join ( [ __DIR__ , "fixtures" , "kubernetes" , "service_account" ] )
274+ ] ,
275+ connect: { Nodes , :connect , [ self ( ) ] } ,
276+ disconnect: { Nodes , :disconnect , [ self ( ) ] } ,
277+ list_nodes: { Nodes , :list_nodes , [ [ ] ] }
278+ }
279+ ] } )
280+
281+ assert_receive { :connect , :"test_basename@10.48.33.136" } , 5_000
282+ end )
283+ end
284+ end
285+
204286 test "works with pods and dns" do
205287 use_cassette "kubernetes_pods" , custom: true do
206288 capture_log ( fn ->
0 commit comments