Skip to content

Commit f648a58

Browse files
author
alvaropicazo
committed
feat(fabric): update manage-user-certificate playbook to refresh user certificates
Signed-off-by: alvaropicazo <alvaro.picazo.haase@accenture.com>
1 parent f9c4e2a commit f648a58

File tree

6 files changed

+47
-15
lines changed

6 files changed

+47
-15
lines changed

platforms/hyperledger-fabric/charts/fabric-catools/templates/deployment.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,8 @@ spec:
357357
value: {{ $.Values.metadata.org_name }}
358358
- name: REFRESH_CERTS
359359
value: "{{ $.Values.checks.refresh_cert_value }}"
360+
- name: REFRESH_USER_CERTS
361+
value: "{{ $.Values.checks.refresh_user_cert_value }}"
360362
- name: ADD_PEER
361363
value: "{{ $.Values.checks.add_peer_value }}"
362364
- name: ORDERERS_NAMES
@@ -453,7 +455,7 @@ spec:
453455
list=$(echo "$USERS_IDENTITIES" | tr "-" "\n")
454456
for USER in $list
455457
do
456-
if ([ "$USERS" ] && [ -e ${MOUNT_PATH}/absent_msp_${USER}.txt ]) || [ "$REFRESH_CERTS" = "true" ]
458+
if ([ "$USERS" ] && [ -e ${MOUNT_PATH}/absent_msp_${USER}.txt ]) || [ "$REFRESH_CERTS" = "true" || [ "$REFRESH_USER_CERTS" = "true" ]
457459
then
458460
cd /root/ca-tools/${ORG_NAME_EXT}
459461
./generate-user-crypto.sh peer ${USERS}

platforms/hyperledger-fabric/charts/fabric-catools/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,5 +140,6 @@ users:
140140
checks:
141141
#Provides the need to refresh user certificates
142142
refresh_cert_value: false
143+
refresh_user_cert_value: false
143144
#Add a peer to an existing network
144145
add_peer_value: False

platforms/hyperledger-fabric/configuration/manage-user-certificate.yaml

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,30 @@
5454
loop: "{{ network['organizations'] }}"
5555

5656
############################################################################################
57-
# This task generates the crypto material by executing the generate-user-crypto.sh script file
58-
# present in the Organization's CA Tools CLI
57+
# This task generates the crypto material by running the ca_tools/peer playbook
5958
- name: Generate crypto material for user
6059
include_role:
61-
name: "create/users"
60+
name: "create/ca_tools/peer"
6261
vars:
6362
component_name: "{{ item.name | lower}}-net"
63+
component: "{{ item.name | lower}}"
6464
component_type: "{{ item.type | lower}}"
65-
org_name: "{{ item.name }}"
66-
services: "{{ item.services }}"
67-
subject: "{{ item.subject }}"
68-
cert_subject: "{{ item.subject | regex_replace('/', ';') | regex_replace(',', '/') | regex_replace(';', ',') }}" # replace , to / and / to , for certpath
65+
component_services: "{{ item.services }}"
66+
orderer_org: "{{ item.orderer_org | lower }}"
67+
sc_name: "{{ component }}-bevel-storageclass"
6968
kubernetes: "{{ item.k8s }}"
7069
vault: "{{ item.vault }}"
71-
users: "{{ item.users }}"
72-
proxy: "{{ network.env.proxy }}"
73-
ca_url: "{{ item.ca_data.url }}"
70+
ca: "{{ item.services.ca }}"
71+
docker_url: "{{ network.docker.url }}"
72+
gitops: "{{ item.gitops }}"
73+
values_dir: "{{ playbook_dir }}/../../../{{ item.gitops.release_dir }}/{{ item.name | lower }}"
7474
loop: "{{ network['organizations'] }}"
75-
when: item.type == 'peer' and item.users is defined
75+
when: item.type == 'peer'
76+
77+
vars: #These variables can be overriden from the command line
78+
privilege_escalate: false #Default to NOT escalate to root privledges
79+
install_os: "linux" #Default to linux OS
80+
install_arch: "amd64" #Default to amd64 architecture
81+
refresh_user_cert: 'true' #Default for this playbook is true
82+
bin_install_dir: "~/bin" #Default to ~/bin install directory for binaries
83+
add_new_org: "false"

platforms/hyperledger-fabric/configuration/roles/create/ca_tools/peer/tasks/delete_old_certs.yaml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,28 @@
1919
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/peers/{{peer.name}}.{{ component_name }}/tls
2020
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/peers/{{peer.name}}.{{ component_name }}/msp
2121
{% endfor %}
22+
{% for user in users %}
23+
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/users/{{user.identity}}/tls
24+
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/users/{{user.identity}}/msp
25+
{% endfor %}
2226
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/credentials/{{ component_name }}/couchdb/{{ org_name }}
2327
vars:
2428
peers: "{{ item.services.peers }}"
2529
environment:
2630
VAULT_ADDR: "{{ item.vault.url }}"
2731
VAULT_TOKEN: "{{ item.vault.root_token }}"
28-
when: component_type == 'peer'
32+
when: component_type == 'peer' and refresh_cert is defined and refresh_cert == 'true'
33+
34+
# Delete crypto materials from vault only for users
35+
- name: Delete Crypto for peers
36+
shell: |
37+
{% for user in users %}
38+
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/users/{{user.identity}}/tls
39+
vault kv delete {{ item.vault.secret_path | default('secretsv2') }}/{{ item.name | lower }}/peerOrganizations/{{ component_name }}/users/{{user.identity}}/msp
40+
{% endfor %}
41+
vars:
42+
peers: "{{ item.services.peers }}"
43+
environment:
44+
VAULT_ADDR: "{{ item.vault.url }}"
45+
VAULT_TOKEN: "{{ item.vault.root_token }}"
46+
when: component_type == 'peer' and refresh_user_cert is defined and refresh_user_cert == 'true'

platforms/hyperledger-fabric/configuration/roles/create/ca_tools/peer/tasks/main.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@
3131
component_ns: "{{ component_name }}"
3232
kubernetes: "{{ item.k8s }}"
3333
hr_name: "{{ component_name }}-ca-tools"
34-
when: (add_peer is defined and add_peer == 'true') or (refresh_cert is defined and refresh_cert == 'true')
34+
when: (add_peer is defined and add_peer == 'true') or (refresh_cert is defined and refresh_cert == 'true') or (refresh_user_cert is defined and refresh_user_cert == 'true')
3535

3636
# Delete old certificates
3737
- name: "Delete old certificates"
3838
include_tasks: delete_old_certs.yaml
3939
vars:
4040
org_name: "{{ item.name | lower }}"
41-
when: refresh_cert is defined and refresh_cert == 'true'
41+
users: "{{ item.users }}"
42+
when: (refresh_cert is defined and refresh_cert == 'true') or (refresh_user_cert is defined and refresh_user_cert == 'true')
4243

4344
# Get Orderer certificates
4445
- name: "Get Orderer certificates"
@@ -105,6 +106,7 @@
105106
component_location: "{{ item.location }}"
106107
ca_url: "{{ item.ca_data.url }}"
107108
refresh_cert_value: "{{ refresh_cert | default(false) | quote }}"
109+
refresh_user_cert_value: "{{ refresh_user_cert | default(false) | quote }}"
108110
proxy: "{{ network.env.proxy }}"
109111
git_protocol: "{{ item.gitops.git_protocol }}"
110112
git_url: "{{ gitops.git_url }}"

platforms/hyperledger-fabric/configuration/roles/helm_component/templates/ca-tools.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,5 +114,6 @@ spec:
114114
{% endif %}
115115
checks:
116116
refresh_cert_value: {{ refresh_cert_value }}
117+
refresh_user_cert_value: {{ refresh_user_cert_value }}
117118
add_peer_value: {{ add_peer_value }}
118119
{% endif %}

0 commit comments

Comments
 (0)