Skip to content

Commit

Permalink
Merge pull request #21391 from bdunne/ui_httpd_configmap
Browse files Browse the repository at this point in the history
Add volume mounts for httpd configuration
  • Loading branch information
Fryguy authored Aug 23, 2021
2 parents 1ad1f72 + e1d2df1 commit d5f9552
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 7 deletions.
7 changes: 7 additions & 0 deletions app/models/miq_ui_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,11 @@ def container_image_name
def container_image
ENV["UI_WORKER_IMAGE"] || default_image
end

def configure_service_worker_deployment(definition)
super

definition[:spec][:template][:spec][:containers].first[:volumeMounts] << {:name => "ui-httpd-configs", :mountPath => "/etc/httpd/conf.d"}
definition[:spec][:template][:spec][:volumes] << {:name=>"ui-httpd-configs", :configMap=>{:name=>"ui-httpd-configs", :defaultMode=>420}}
end
end
20 changes: 13 additions & 7 deletions app/models/miq_worker/service_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,9 @@ def create_container_objects

orchestrator.create_deployment(worker_deployment_name) do |definition|
configure_worker_deployment(definition)
configure_service_worker_deployment(definition)

definition[:spec][:template][:metadata][:labels].merge!(service_label)

container = definition[:spec][:template][:spec][:containers].first
container[:ports] = [{:containerPort => SERVICE_PORT}]
container[:env] << {:name => "PORT", :value => container_port.to_s}
container[:env] << {:name => "BINDING_ADDRESS", :value => "0.0.0.0"}
add_readiness_probe(container)
add_readiness_probe(definition[:spec][:template][:spec][:containers].first)
end

scale_deployment
Expand All @@ -39,6 +34,17 @@ def add_readiness_probe(container_definition)
}
end

def configure_service_worker_deployment(definition)
definition[:spec][:template][:metadata][:labels].merge!(service_label)

container = definition[:spec][:template][:spec][:containers].first
container[:ports] = [{:containerPort => SERVICE_PORT}]
container[:env] << {:name => "PORT", :value => container_port.to_s}
container[:env] << {:name => "BINDING_ADDRESS", :value => "0.0.0.0"}
container[:volumeMounts] ||= []
definition[:spec][:template][:spec][:volumes] ||= []
end

def service_label
{:service => worker_deployment_name.delete_prefix(deployment_prefix)}
end
Expand Down
18 changes: 18 additions & 0 deletions spec/models/miq_worker/container_common_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,24 @@ def deployment_name_for(name)

expect(test_deployment.dig(:spec, :template, :spec).keys).not_to include(:nodeSelector)
end

it "MiqUiWorker adds the ui_httpd_configs volume mount" do
container_orchestrator = ContainerOrchestrator.new
kubeclient = double("Kubeclient::Client")

expect(ContainerOrchestrator).to receive(:new).and_return(container_orchestrator)
expect(container_orchestrator).to receive(:my_namespace).and_return("my-namespace")
expect(container_orchestrator).to receive(:raw_connect).and_return(kubeclient)

expect(kubeclient).to receive(:create_deployment) do |deployment|
expect(deployment.fetch_path(:spec, :template, :spec, :containers, 0, :volumeMounts)).to match_array([{:name => "ui-httpd-configs", :mountPath => "/etc/httpd/conf.d"}])
expect(deployment.fetch_path(:spec, :template, :spec, :volumes)).to match_array([{:name=>"ui-httpd-configs", :configMap=>{:name=>"ui-httpd-configs", :defaultMode=>420}}])
end

ui_worker = MiqUiWorker.new
expect(ui_worker).to receive(:scale_deployment)
ui_worker.create_container_objects
end
end

describe "#zone_selector" do
Expand Down

0 comments on commit d5f9552

Please sign in to comment.