mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 07:25:10 +00:00
Signed-off-by: AadithyanRaju <aadithyan75@gmail.com> Signed-off-by: Aadithyan Raju <93834376+AadithyanRaju@users.noreply.github.com>
124 lines
No EOL
3.9 KiB
Bash
Executable file
124 lines
No EOL
3.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright IBM Corp All Rights Reserved
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
function app_one_line_pem {
|
|
echo "`awk 'NF {sub(/\\n/, ""); printf "%s\\\\\\\n",$0;}' $1`"
|
|
}
|
|
|
|
function app_json_ccp {
|
|
local ORG=$1
|
|
local PP=$(one_line_pem $2)
|
|
local CP=$(one_line_pem $3)
|
|
sed -e "s/\${ORG}/$ORG/" \
|
|
-e "s#\${PEERPEM}#$PP#" \
|
|
-e "s#\${CAPEM}#$CP#" \
|
|
scripts/ccp-template.json
|
|
}
|
|
|
|
function app_id {
|
|
local MSP=$1
|
|
local CERT=$(one_line_pem $2)
|
|
local PK=$(one_line_pem $3)
|
|
|
|
sed -e "s#\${CERTIFICATE}#$CERT#" \
|
|
-e "s#\${PRIVATE_KEY}#$PK#" \
|
|
-e "s#\${MSPID}#$MSP#" \
|
|
scripts/appuser.id.template
|
|
}
|
|
|
|
function construct_application_configmap() {
|
|
push_fn "Constructing application connection profiles"
|
|
|
|
ENROLLMENT_DIR=${TEMP_DIR}/enrollments
|
|
CHANNEL_MSP_DIR=${TEMP_DIR}/channel-msp
|
|
|
|
mkdir -p build/application/wallet
|
|
mkdir -p build/application/gateways
|
|
|
|
local peer_pem=$CHANNEL_MSP_DIR/peerOrganizations/org1/msp/tlscacerts/tlsca-signcert.pem
|
|
local ca_pem=$CHANNEL_MSP_DIR/peerOrganizations/org1/msp/cacerts/ca-signcert.pem
|
|
|
|
echo "$(json_ccp 1 $peer_pem $ca_pem)" > build/application/gateways/org1_ccp.json
|
|
|
|
peer_pem=$CHANNEL_MSP_DIR/peerOrganizations/org2/msp/tlscacerts/tlsca-signcert.pem
|
|
ca_pem=$CHANNEL_MSP_DIR/peerOrganizations/org2/msp/cacerts/ca-signcert.pem
|
|
|
|
echo "$(json_ccp 2 $peer_pem $ca_pem)" > build/application/gateways/org2_ccp.json
|
|
|
|
pop_fn
|
|
|
|
push_fn "Getting Application Identities"
|
|
|
|
local cert=$ENROLLMENT_DIR/org1/users/org1admin/msp/signcerts/cert.pem
|
|
local pk=$ENROLLMENT_DIR/org1/users/org1admin/msp/keystore/key.pem
|
|
|
|
echo "$(app_id Org1MSP $cert $pk)" > build/application/wallet/appuser_org1.id
|
|
|
|
local cert=$ENROLLMENT_DIR/org2/users/org2admin/msp/signcerts/cert.pem
|
|
local pk=$ENROLLMENT_DIR/org2/users/org2admin/msp/keystore/key.pem
|
|
|
|
echo "$(app_id Org2MSP $cert $pk)" > build/application/wallet/appuser_org2.id
|
|
|
|
pop_fn
|
|
|
|
push_fn "Creating ConfigMap \"app-fabric-tls-v1-map\" with TLS certificates for the application"
|
|
kubectl -n $NS delete configmap app-fabric-tls-v1-map || true
|
|
kubectl -n $NS create configmap app-fabric-tls-v1-map --from-file=$CHANNEL_MSP_DIR/peerOrganizations/org1/msp/tlscacerts
|
|
pop_fn
|
|
|
|
push_fn "Creating ConfigMap \"app-fabric-ids-v1-map\" with identities for the application"
|
|
kubectl -n $NS delete configmap app-fabric-ids-v1-map || true
|
|
kubectl -n $NS create configmap app-fabric-ids-v1-map --from-file=./build/application/wallet
|
|
pop_fn
|
|
|
|
push_fn "Creating ConfigMap \"app-fabric-ccp-v1-map\" with ConnectionProfile for the application"
|
|
kubectl -n $NS delete configmap app-fabric-ccp-v1-map || true
|
|
kubectl -n $NS create configmap app-fabric-ccp-v1-map --from-file=./build/application/gateways
|
|
pop_fn
|
|
|
|
push_fn "Creating ConfigMap \"app-fabric-org1-v1-map\" with Organization 1 information for the application"
|
|
|
|
cat <<EOF > build/app-fabric-org1-v1-map.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: app-fabric-org1-v1-map
|
|
data:
|
|
fabric_channel: ${CHANNEL_NAME}
|
|
fabric_contract: ${CHAINCODE_NAME}
|
|
fabric_wallet_dir: /fabric/application/wallet
|
|
fabric_gateway_hostport: org1-peer-gateway-svc:7051
|
|
fabric_gateway_sslHostOverride: org1-peer-gateway-svc
|
|
fabric_user: appuser_org1
|
|
fabric_gateway_tlsCertPath: /fabric/tlscacerts/tlsca-signcert.pem
|
|
EOF
|
|
|
|
kubectl -n $NS apply -f build/app-fabric-org1-v1-map.yaml
|
|
|
|
# todo: could add the second org here
|
|
|
|
pop_fn
|
|
}
|
|
|
|
|
|
function application_connection() {
|
|
|
|
construct_application_configmap
|
|
|
|
log
|
|
log "For k8s applications:"
|
|
log "Config Maps created for the application"
|
|
log "To deploy your application updated the image name and issue these commands"
|
|
log ""
|
|
log "kubectl -n $NS apply -f kube/application-deployment.yaml"
|
|
log "kubectl -n $NS rollout status deploy/application-deployment"
|
|
log
|
|
log "For non-k8s applications:"
|
|
log "ConnectionPrfiles are in ${PWD}/build/application/gateways"
|
|
log "Identities are in ${PWD}/build/application/wallets"
|
|
log
|
|
} |