diff --git a/plugins/kubernetes/README.md b/plugins/kubernetes/README.md index b2e3ef078..4ea65478f 100644 --- a/plugins/kubernetes/README.md +++ b/plugins/kubernetes/README.md @@ -334,6 +334,12 @@ metadata.annotations.samson/recreate: "true" Set the kubernetes roles to `kubernetes/$deploy_group/server.yml` +You may also reference the permalink of a deploy group via `kubernetes/$deploy_group_permalink/server.yml` + +### Static config per environment + +Set the kubernetes roles to `kubernetes/$environment/server.yml` + ### Ignoring warning events If a warning event fails deploys, but application owners deem them safe to ignore, add this: diff --git a/plugins/kubernetes/app/models/kubernetes/role.rb b/plugins/kubernetes/app/models/kubernetes/role.rb index 85c4cafda..e3ece912a 100644 --- a/plugins/kubernetes/app/models/kubernetes/role.rb +++ b/plugins/kubernetes/app/models/kubernetes/role.rb @@ -164,6 +164,7 @@ def role_config_file(reference, deploy_group:, project: project(), **args) # rub file = config_file if deploy_group && dynamic_folders? file = file. + sub('$deploy_group_permalink', deploy_group.permalink). sub('$deploy_group', deploy_group.env_value). sub('$environment', deploy_group.environment.permalink) end diff --git a/plugins/kubernetes/test/models/kubernetes/role_test.rb b/plugins/kubernetes/test/models/kubernetes/role_test.rb index 22953c336..44661f659 100644 --- a/plugins/kubernetes/test/models/kubernetes/role_test.rb +++ b/plugins/kubernetes/test/models/kubernetes/role_test.rb @@ -492,5 +492,13 @@ def commit role.config_file = "kubernetes/$deploy_group/foo.yaml" assert role.role_config_file("master", deploy_group: deploy_groups(:pod100)) end + + it "can read from dynamic deploy_group_permalink" do + GitRepository.any_instance. + expects(:file_content).with('kubernetes/pod100/foo.yaml', "master", anything). + returns(read_kubernetes_sample_file('kubernetes_job.yml')) + role.config_file = "kubernetes/$deploy_group_permalink/foo.yaml" + assert role.role_config_file("master", deploy_group: deploy_groups(:pod100)) + end end end