Skip to content
This repository has been archived by the owner on Feb 10, 2022. It is now read-only.

Allow operators to control feature gates #201

Merged
merged 3 commits into from
Apr 30, 2018
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions jobs/kube-apiserver/spec
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ properties:
enable_audit_logs:
description: Enables audit logs
default: true
feature_gates:
description: A map of key=value pairs that describe alpha or experimental features.
http_proxy:
description: http_proxy env var for the kubernetes-api binary (i.e. for cloud provider interactions)
https_proxy:
Expand Down
3 changes: 3 additions & 0 deletions jobs/kube-apiserver/templates/config/bpm.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ processes:
- --enable-swagger-ui
- --etcd-servers=<%= etcd_endpoints %>
- --etcd-cafile=/var/vcap/jobs/kube-apiserver/config/etcd-ca.crt
<% if_p('feature_gates') do |feature_gates| %>
- --feature-gates=<%= feature_gates.flat_map {|k,v| "#{k}=#{v}"}.join(",") %>
<% end %>
- --etcd-certfile=/var/vcap/jobs/kube-apiserver/config/etcd-client.crt
- --etcd-keyfile=/var/vcap/jobs/kube-apiserver/config/etcd-client.key
- --kubelet-https
Expand Down
19 changes: 18 additions & 1 deletion spec/kube_apiserver_bpm_yml_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@
expect(bpm_yml['processes'][0]['env']['HTTPS_PROXY']).to eq('proxy.example.com:8100')
end

fit 'sets no_proxy when no proxy property is set' do
it 'sets no_proxy when no proxy property is set' do
rendered_kube_apiserver_bpm_yml = compiled_template(
'kube-apiserver',
'config/bpm.yml',
Expand All @@ -166,4 +166,21 @@
expect(bpm_yml['processes'][0]['env']['no_proxy']).to eq('noproxy.example.com,noproxy.example.net')
expect(bpm_yml['processes'][0]['env']['NO_PROXY']).to eq('noproxy.example.com,noproxy.example.net')
end

it 'sets feature gates if the property is defined' do
rendered_kube_apiserver_bpm_yml = compiled_template(
'kube-apiserver',
'config/bpm.yml',
{
'feature_gates' => {
'CustomFeature1' => true,
'CustomFeature2' => false
}
},
link_spec
)

bpm_yml = YAML.safe_load(rendered_kube_apiserver_bpm_yml)
expect(bpm_yml['processes'][0]['args']).to include('--feature-gates=CustomFeature1=true,CustomFeature2=false')
end
end