Handle secrets in branches
There were two problems with secrets related to branches. First, a secret defined in one branch could not be used in another. This is because the isSameProject method was a bit overzealous and also ensured the secrets were on the same branch. Relaxing that allows secrets to be used by jobs defined in multiple branches of the same project. Second, because secrets are required to be globally unique, the expected workflow of branching a project would immediately produce a configuration error since the secret would already be defined. To handle this case, allow multiple definitions of a secret, but only if they are in multiple branches of the same project, and only if they have the same data. This should facilitate this workflow, as well as the ability to age-out secrets on old branches. We do not support different values for the same secret name on different branches. Story: 2001443 Task: 6154 Story: 2001442 Task: 6153 Change-Id: Ia9d5b77d1ce46e6461b370e951301ede4045bbb9
This commit is contained in:
38
tests/fixtures/config/secrets/git/common-config/zuul.yaml
vendored
Normal file
38
tests/fixtures/config/secrets/git/common-config/zuul.yaml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
post-review: true
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
success:
|
||||
gerrit:
|
||||
Verified: 1
|
||||
failure:
|
||||
gerrit:
|
||||
Verified: -1
|
||||
|
||||
- pipeline:
|
||||
name: gate
|
||||
manager: dependent
|
||||
success-message: Build succeeded (gate).
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: comment-added
|
||||
approval:
|
||||
- Approved: 1
|
||||
success:
|
||||
gerrit:
|
||||
Verified: 2
|
||||
submit: true
|
||||
failure:
|
||||
gerrit:
|
||||
Verified: -2
|
||||
start:
|
||||
gerrit:
|
||||
Verified: 0
|
||||
precedence: high
|
||||
|
||||
- job:
|
||||
name: base
|
||||
parent: null
|
||||
1
tests/fixtures/config/secrets/git/org_project1/README
vendored
Normal file
1
tests/fixtures/config/secrets/git/org_project1/README
vendored
Normal file
@@ -0,0 +1 @@
|
||||
test
|
||||
2
tests/fixtures/config/secrets/git/org_project1/playbooks/secret.yaml
vendored
Normal file
2
tests/fixtures/config/secrets/git/org_project1/playbooks/secret.yaml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
- hosts: all
|
||||
tasks: []
|
||||
26
tests/fixtures/config/secrets/git/org_project1/zuul.yaml
vendored
Normal file
26
tests/fixtures/config/secrets/git/org_project1/zuul.yaml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
- secret:
|
||||
name: project1_secret
|
||||
data:
|
||||
username: test-username
|
||||
password: !encrypted/pkcs1-oaep |
|
||||
BFhtdnm8uXx7kn79RFL/zJywmzLkT1GY78P3bOtp4WghUFWobkifSu7ZpaV4NeO0s71YUsi1wGZZ
|
||||
L0LveZjUN0t6OU1VZKSG8R5Ly7urjaSo1pPVIq5Rtt/H7W14Lecd+cUeKb4joeusC9drN3AA8a4o
|
||||
ykcVpt1wVqUnTbMGC9ARMCQP6eopcs1l7tzMseprW4RDNhIuz3CRgd0QBMPl6VDoFgBPB8vxtJw+
|
||||
3m0rqBYZCLZgCXekqlny8s2s92nJMuUABbJOEcDRarzibDsSXsfJt1y+5n7yOURsC7lovMg4GF/v
|
||||
Cl/0YMKjBO5bpv9EM5fToeKYyPGSKQoHOnCYceb3cAVcv5UawcCic8XjhEhp4K7WPdYf2HVAC/qt
|
||||
xhbpjTxG4U5Q/SoppOJ60WqEkQvbXs6n5Dvy7xmph6GWmU/bAv3eUK3pdD3xa2Ue1lHWz3U+rsYr
|
||||
aI+AKYsMYx3RBlfAmCeC1ve2BXPrqnOo7G8tnUvfdYPbK4Aakk0ds/AVqFHEZN+S6hRBmBjLaRFW
|
||||
Z3QSO1NjbBxWnaHKZYT7nkrJm8AMCgZU0ZArFLpaufKCeiK5ECSsDxic4FIsY1OkWT42qEUfL0Wd
|
||||
+150AKGNZpPJnnP3QYY4W/MWcKH/zdO400+zWN52WevbSqZy90tqKDJrBkMl1ydqbuw1E4ZHvIs=
|
||||
|
||||
- job:
|
||||
parent: base
|
||||
name: project1-secret
|
||||
run: playbooks/secret.yaml
|
||||
secrets:
|
||||
- project1_secret
|
||||
|
||||
- project:
|
||||
check:
|
||||
jobs:
|
||||
- project1-secret
|
||||
1
tests/fixtures/config/secrets/git/org_project2/README
vendored
Normal file
1
tests/fixtures/config/secrets/git/org_project2/README
vendored
Normal file
@@ -0,0 +1 @@
|
||||
test
|
||||
2
tests/fixtures/config/secrets/git/org_project2/playbooks/secret.yaml
vendored
Normal file
2
tests/fixtures/config/secrets/git/org_project2/playbooks/secret.yaml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
- hosts: all
|
||||
tasks: []
|
||||
29
tests/fixtures/config/secrets/git/org_project2/zuul-secret.yaml
vendored
Normal file
29
tests/fixtures/config/secrets/git/org_project2/zuul-secret.yaml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
- secret:
|
||||
name: project2_secret
|
||||
data:
|
||||
username: test-username
|
||||
password: !encrypted/pkcs1-oaep |
|
||||
BFhtdnm8uXx7kn79RFL/zJywmzLkT1GY78P3bOtp4WghUFWobkifSu7ZpaV4NeO0s71YUsi1wGZZ
|
||||
L0LveZjUN0t6OU1VZKSG8R5Ly7urjaSo1pPVIq5Rtt/H7W14Lecd+cUeKb4joeusC9drN3AA8a4o
|
||||
ykcVpt1wVqUnTbMGC9ARMCQP6eopcs1l7tzMseprW4RDNhIuz3CRgd0QBMPl6VDoFgBPB8vxtJw+
|
||||
3m0rqBYZCLZgCXekqlny8s2s92nJMuUABbJOEcDRarzibDsSXsfJt1y+5n7yOURsC7lovMg4GF/v
|
||||
Cl/0YMKjBO5bpv9EM5fToeKYyPGSKQoHOnCYceb3cAVcv5UawcCic8XjhEhp4K7WPdYf2HVAC/qt
|
||||
xhbpjTxG4U5Q/SoppOJ60WqEkQvbXs6n5Dvy7xmph6GWmU/bAv3eUK3pdD3xa2Ue1lHWz3U+rsYr
|
||||
aI+AKYsMYx3RBlfAmCeC1ve2BXPrqnOo7G8tnUvfdYPbK4Aakk0ds/AVqFHEZN+S6hRBmBjLaRFW
|
||||
Z3QSO1NjbBxWnaHKZYT7nkrJm8AMCgZU0ZArFLpaufKCeiK5ECSsDxic4FIsY1OkWT42qEUfL0Wd
|
||||
+150AKGNZpPJnnP3QYY4W/MWcKH/zdO400+zWN52WevbSqZy90tqKDJrBkMl1ydqbuw1E4ZHvIs=
|
||||
|
||||
- job:
|
||||
parent: base
|
||||
name: project2-secret
|
||||
run: playbooks/secret.yaml
|
||||
secrets:
|
||||
- project2_secret
|
||||
|
||||
- project:
|
||||
check:
|
||||
jobs:
|
||||
- project2-secret
|
||||
gate:
|
||||
jobs:
|
||||
- noop
|
||||
12
tests/fixtures/config/secrets/git/org_project2/zuul.yaml
vendored
Normal file
12
tests/fixtures/config/secrets/git/org_project2/zuul.yaml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
- job:
|
||||
parent: base
|
||||
name: project2-secret
|
||||
run: playbooks/secret.yaml
|
||||
|
||||
- project:
|
||||
check:
|
||||
jobs:
|
||||
- project2-secret
|
||||
gate:
|
||||
jobs:
|
||||
- noop
|
||||
9
tests/fixtures/config/secrets/main.yaml
vendored
Normal file
9
tests/fixtures/config/secrets/main.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
- tenant:
|
||||
name: tenant-one
|
||||
source:
|
||||
gerrit:
|
||||
config-projects:
|
||||
- common-config
|
||||
untrusted-projects:
|
||||
- org/project1
|
||||
- org/project2
|
||||
Reference in New Issue
Block a user