diff --git a/samples/deployment/k8s/core.yaml b/samples/deployment/k8s/core.yaml index 1578985d5..a0190bb8b 100644 --- a/samples/deployment/k8s/core.yaml +++ b/samples/deployment/k8s/core.yaml @@ -562,9 +562,12 @@ chaincode: # - GOPROXY externalBuilders: # FPC Addition 0: external builder for fpc-c chaincode - - path: /builders/external - name: fpc-c - propagateEnvironment: + # - path: /builders/external + # name: fpc-c + - name: ccaas_builder + path: /opt/hyperledger/ccaas_builder/ccaas/bin + propagateEnvironment: + - CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG - CORE_PEER_ID - FPC_HOSTING_MODE - FABRIC_LOGGING_SPEC diff --git a/samples/deployment/k8s/generate.sh b/samples/deployment/k8s/generate.sh index 96ffe6f72..5be7c1d07 100755 --- a/samples/deployment/k8s/generate.sh +++ b/samples/deployment/k8s/generate.sh @@ -3,6 +3,19 @@ # Copyright IBM Corp. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 +C_RESET='\033[0m' +C_RED='\033[0;31m' +C_GREEN='\033[0;32m' +C_BLUE='\033[0;34m' +C_YELLOW='\033[1;33m' +# successln echos in green color +function successln() { + println "${C_GREEN}${1}${C_RESET}" +} +# println echos string +function println() { + echo -e "$1" +} set -euo pipefail if [[ -z "${FPC_PATH}" ]]; then @@ -19,9 +32,10 @@ cryptoConfigDir="${outDir}/crypto-config" channelArtifactsDir="${outDir}/channel-artifacts" packageDir="${outDir}/packages" + CHAINCODE_SERVER_PORT=9999 -FABRIC_BIN_DIR="${FABRIC_BIN_DIR:-${FABRIC_PATH}/build/bin}" +FABRIC_BIN_DIR="${FPC_PATH}/fabric/_internal/bin" if [[ -z "${FABRIC_BIN_DIR}" ]]; then echo "Error: FABRIC_BIN_DIR not set" echo "Error: FABRIC_BIN_DIR must point to the location of cryptogen and configtxgen" @@ -54,7 +68,44 @@ do done echo "Package ercc and fpccc" -CC_TYPE="external" +function packageChaincode() { + + address="{{.peername}}_${CC_NAME}_ccaas:${CHAINCODE_SERVER_PORT}" + prefix=$(basename "$0") + tempdir=$(mktemp -d -t "$prefix.XXXXXXXX") || error_exit "Error creating temporary directory" + label=${CC_NAME}_${CC_VERSION} + mkdir -p "$tempdir/src" + +cat > "$tempdir/src/connection.json" < "$tempdir/pkg/metadata.json" +{ + "type": "ccaas", + "label": "$label" +} +METADATA-EOF + + tar -C "$tempdir/src" -czf "$tempdir/pkg/code.tar.gz" . + tar -C "$tempdir/pkg" -czf "$CC_NAME.tar.gz" metadata.json code.tar.gz + rm -Rf "$tempdir" + +# PACKAGE_ID=$(peer lifecycle chaincode calculatepackageid ${CC_NAME}.tar.gz) +# commenting due to the network not yet being setup to calculate package_id + + mv $CC_NAME.tar.gz packageDir + successln "Chaincode is packaged ${address} and in ${packageDir}/$CC_NAME.tar.gz" + +} + +CC_TYPE="ccaas" ERCC_ID="ercc" ERCC_VER="1.0" FPCCC_ID="fpccc" @@ -66,19 +117,25 @@ if [[ -z "${TEST_CC_PATH}" ]]; then fi FPC_MRENCLAVE="$(cat "${FPCCC_PATH}"/_build/lib/mrenclave)" - +mkdir packageDir for peer in $(shopt -s globstar; find ${cryptoConfigDir}/**/peers/ -mindepth 1 -maxdepth 1 -execdir echo {} ';' | sed 's/^\.\///g'); do # ercc - endpoint="${ERCC_ID}-${peer}:${CHAINCODE_SERVER_PORT}" - packageName="${ERCC_ID}-${peer}.tgz" - packageChaincode "${packageDir}" "${packageName}" "${ERCC_ID}" "${ERCC_VER}" "${CC_TYPE}" "${endpoint}" "${peer}" + CC_NAME=ERCC_ID + CC_VERSION=ERCC_VER +# endpoint="${ERCC_ID}-${peer}:${CHAINCODE_SERVER_PORT}" +# packageName="${ERCC_ID}-${peer}.tgz" +# packageChaincode "${packageDir}" "${packageName}" "${ERCC_ID}" "${ERCC_VER}" "${CC_TYPE}" "${endpoint}" "${peer}" + packageChaincode "${peer}" # fpc cc - endpoint="${FPCCC_ID}-${peer}:${CHAINCODE_SERVER_PORT}" - packageName="${FPCCC_ID}-${peer}.tgz" - packageChaincode "${packageDir}" "${packageName}" "${FPCCC_ID}" "${FPC_MRENCLAVE}" "${CC_TYPE}" "${endpoint}" "${peer}" + CC_NAME=FPCCC_ID +# endpoint="${FPCCC_ID}-${peer}:${CHAINCODE_SERVER_PORT}" +# packageName="${FPCCC_ID}-${peer}.tgz" +# packageChaincode "${packageDir}" "${packageName}" "${FPCCC_ID}" "${FPC_MRENCLAVE}" "${CC_TYPE}" "${endpoint}" "${peer}" + packageChaincode "${peer}" done + echo "Store mrenclave for fpccc" echo "FPC_MRENCLAVE=${FPC_MRENCLAVE}" >> ${packageDir}/chaincode-config.properties diff --git a/samples/deployment/k8s/org1/org1-fpcclient-deployment.yaml b/samples/deployment/k8s/org1/org1-fpcclient-deployment.yaml index fe526039f..8f499a5a8 100644 --- a/samples/deployment/k8s/org1/org1-fpcclient-deployment.yaml +++ b/samples/deployment/k8s/org1/org1-fpcclient-deployment.yaml @@ -67,6 +67,9 @@ spec: - mountPath: /opt/gopath/src/github.com/hyperledger/fabric-private-chaincode/ name: fpc-claim workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer +# nodeSelector: +# kubernetes.io/arch: amd64 +# test to see if minikube can start a docker amd64 image even though it is running arm64 restartPolicy: Always volumes: - name: fpcclient-claim3 diff --git a/samples/deployment/k8s/org1/org1-peer0-deployment.yaml b/samples/deployment/k8s/org1/org1-peer0-deployment.yaml index 7e14f4c50..91c2462af 100644 --- a/samples/deployment/k8s/org1/org1-peer0-deployment.yaml +++ b/samples/deployment/k8s/org1/org1-peer0-deployment.yaml @@ -57,6 +57,8 @@ spec: value: 0.0.0.0:9443 - name: CORE_METRICS_PROVIDER value: prometheus + - name: CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG + value: "{\"peername\":\"peer0org1\"}" image: hyperledger/fabric-peer:2.5.9 name: peer0 ports: