mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-18 07:55:10 +00:00
First attempted "up"
This commit is contained in:
parent
53ae435304
commit
63cdbbb7f8
2 changed files with 298 additions and 142 deletions
|
|
@ -35,20 +35,17 @@ export VERBOSE=false
|
|||
# Print the usage message
|
||||
function printHelp() {
|
||||
echo "Usage: "
|
||||
echo " byfn.sh <mode> [-c <channel name>] [-t <timeout>] [-d <delay>] [-f <docker-compose-file>] [-s <dbtype>] [-l <language>] [-i <imagetag>] [-v]"
|
||||
echo " <mode> - one of 'up', 'down', 'restart', 'generate' or 'upgrade'"
|
||||
echo " - 'up' - bring up the network with docker-compose up"
|
||||
echo " - 'down' - clear the network with docker-compose down"
|
||||
echo " byfn.sh <mode> [-c <channel name>] [-t <timeout>] [-d <delay>] [-s <dbtype>] [-l <language>] [-v]"
|
||||
echo " <mode> - one of 'up', 'down', 'restart' or 'generate'"
|
||||
echo " - 'up' - bring up the network with kubectl apply"
|
||||
echo " - 'down' - clear the network with kubectl delete"
|
||||
echo " - 'restart' - restart the network"
|
||||
echo " - 'generate' - generate required certificates and genesis block"
|
||||
echo " - 'upgrade' - upgrade the network from version 1.2.x to 1.3.x"
|
||||
echo " -c <channel name> - channel name to use (defaults to \"mychannel\")"
|
||||
echo " -t <timeout> - CLI timeout duration in seconds (defaults to 10)"
|
||||
echo " -d <delay> - delay duration in seconds (defaults to 3)"
|
||||
echo " -f <docker-compose-file> - specify which docker-compose file use (defaults to docker-compose-cli.yaml)"
|
||||
echo " -s <dbtype> - the database backend to use: goleveldb (default) or couchdb"
|
||||
echo " -l <language> - the chaincode language: golang (default) or node"
|
||||
echo " -i <imagetag> - the tag to be used to launch the network (defaults to \"latest\")"
|
||||
echo " -v - verbose mode"
|
||||
echo " byfn.sh -h (print this message)"
|
||||
echo
|
||||
|
|
@ -60,7 +57,6 @@ function printHelp() {
|
|||
echo " byfn.sh up -c mychannel -s couchdb -i 1.2.x"
|
||||
echo " byfn.sh up -l node"
|
||||
echo " byfn.sh down -c mychannel"
|
||||
echo " byfn.sh upgrade -c mychannel"
|
||||
echo
|
||||
echo "Taking all defaults:"
|
||||
echo " byfn.sh generate"
|
||||
|
|
@ -86,29 +82,6 @@ function askProceed() {
|
|||
esac
|
||||
}
|
||||
|
||||
# Obtain CONTAINER_IDS and remove them
|
||||
# TODO Might want to make this optional - could clear other containers
|
||||
function clearContainers() {
|
||||
CONTAINER_IDS=$(docker ps -a | awk '($2 ~ /dev-peer.*.mycc.*/) {print $1}')
|
||||
if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" == " " ]; then
|
||||
echo "---- No containers available for deletion ----"
|
||||
else
|
||||
docker rm -f $CONTAINER_IDS
|
||||
fi
|
||||
}
|
||||
|
||||
# Delete any images that were generated as a part of this setup
|
||||
# specifically the following images are often left behind:
|
||||
# TODO list generated image naming patterns
|
||||
function removeUnwantedImages() {
|
||||
DOCKER_IMAGE_IDS=$(docker images | awk '($1 ~ /dev-peer.*.mycc.*/) {print $3}')
|
||||
if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" == " " ]; then
|
||||
echo "---- No images available for deletion ----"
|
||||
else
|
||||
docker rmi -f $DOCKER_IMAGE_IDS
|
||||
fi
|
||||
}
|
||||
|
||||
# Versions of fabric known not to work with this release of first-network
|
||||
BLACKLISTED_VERSIONS="^1\.0\. ^1\.1\.0-preview ^1\.1\.0-alpha"
|
||||
|
||||
|
|
@ -119,7 +92,7 @@ function checkPrereqs() {
|
|||
# Note, we check configtxlator externally because it does not require a config file, and peer in the
|
||||
# docker image because of FAB-8551 that makes configtxlator return 'development version' in docker
|
||||
LOCAL_VERSION=$(configtxlator version | sed -ne 's/ Version: //p')
|
||||
DOCKER_IMAGE_VERSION=$(docker run --rm hyperledger/fabric-tools:$IMAGETAG peer version | sed -ne 's/ Version: //p' | head -1)
|
||||
DOCKER_IMAGE_VERSION=$(docker run --rm hyperledger/fabric-tools:1.3.0 peer version | sed -ne 's/ Version: //p' | head -1)
|
||||
|
||||
echo "LOCAL_VERSION=$LOCAL_VERSION"
|
||||
echo "DOCKER_IMAGE_VERSION=$DOCKER_IMAGE_VERSION"
|
||||
|
|
@ -155,107 +128,22 @@ function networkUp() {
|
|||
replacePrivateKey
|
||||
generateChannelArtifacts
|
||||
fi
|
||||
if [ "${IF_COUCHDB}" == "couchdb" ]; then
|
||||
IMAGE_TAG=$IMAGETAG docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1
|
||||
else
|
||||
IMAGE_TAG=$IMAGETAG docker-compose -f $COMPOSE_FILE up -d 2>&1
|
||||
fi
|
||||
|
||||
kubectl apply -f deployments/deployment-cli.yaml
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR !!!! Unable to start network"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# now run the end to end script
|
||||
docker exec cli scripts/script.sh $CHANNEL_NAME $CLI_DELAY $LANGUAGE $CLI_TIMEOUT $VERBOSE
|
||||
echo "kubectl exec cli scripts/script.sh $CHANNEL_NAME $CLI_DELAY $LANGUAGE $CLI_TIMEOUT $VERBOSE"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR !!!! Test failed"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Upgrade the network components which are at version 1.2.x to 1.3.x
|
||||
# Stop the orderer and peers, backup the ledger for orderer and peers, cleanup chaincode containers and images
|
||||
# and relaunch the orderer and peers with latest tag
|
||||
function upgradeNetwork() {
|
||||
if [[ "$IMAGETAG" == *"1.3"* ]] || [[ $IMAGETAG == "latest" ]]; then
|
||||
docker inspect -f '{{.Config.Volumes}}' orderer.example.com | grep -q '/var/hyperledger/production/orderer'
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR !!!! This network does not appear to be using volumes for its ledgers, did you start from fabric-samples >= v1.2.x?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LEDGERS_BACKUP=./ledgers-backup
|
||||
|
||||
# create ledger-backup directory
|
||||
mkdir -p $LEDGERS_BACKUP
|
||||
|
||||
export IMAGE_TAG=$IMAGETAG
|
||||
if [ "${IF_COUCHDB}" == "couchdb" ]; then
|
||||
COMPOSE_FILES="-f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH"
|
||||
else
|
||||
COMPOSE_FILES="-f $COMPOSE_FILE"
|
||||
fi
|
||||
|
||||
# removing the cli container
|
||||
docker-compose $COMPOSE_FILES stop cli
|
||||
docker-compose $COMPOSE_FILES up -d --no-deps cli
|
||||
|
||||
echo "Upgrading orderer"
|
||||
docker-compose $COMPOSE_FILES stop orderer.example.com
|
||||
docker cp -a orderer.example.com:/var/hyperledger/production/orderer $LEDGERS_BACKUP/orderer.example.com
|
||||
docker-compose $COMPOSE_FILES up -d --no-deps orderer.example.com
|
||||
|
||||
for PEER in peer0.org1.example.com peer1.org1.example.com peer0.org2.example.com peer1.org2.example.com; do
|
||||
echo "Upgrading peer $PEER"
|
||||
|
||||
# Stop the peer and backup its ledger
|
||||
docker-compose $COMPOSE_FILES stop $PEER
|
||||
docker cp -a $PEER:/var/hyperledger/production $LEDGERS_BACKUP/$PEER/
|
||||
|
||||
# Remove any old containers and images for this peer
|
||||
CC_CONTAINERS=$(docker ps | grep dev-$PEER | awk '{print $1}')
|
||||
if [ -n "$CC_CONTAINERS" ]; then
|
||||
docker rm -f $CC_CONTAINERS
|
||||
fi
|
||||
CC_IMAGES=$(docker images | grep dev-$PEER | awk '{print $1}')
|
||||
if [ -n "$CC_IMAGES" ]; then
|
||||
docker rmi -f $CC_IMAGES
|
||||
fi
|
||||
|
||||
# Start the peer again
|
||||
docker-compose $COMPOSE_FILES up -d --no-deps $PEER
|
||||
done
|
||||
|
||||
docker exec cli scripts/upgrade_to_v13.sh $CHANNEL_NAME $CLI_DELAY $LANGUAGE $CLI_TIMEOUT $VERBOSE
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR !!!! Test failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "ERROR !!!! Pass the v1.3.x image tag"
|
||||
fi
|
||||
}
|
||||
|
||||
# Tear down running network
|
||||
function networkDown() {
|
||||
# stop org3 containers also in addition to org1 and org2, in case we were running sample to add org3
|
||||
docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH -f $COMPOSE_FILE_ORG3 down --volumes --remove-orphans
|
||||
|
||||
# Don't remove the generated artifacts -- note, the ledgers are always removed
|
||||
if [ "$MODE" != "restart" ]; then
|
||||
# Bring down the network, deleting the volumes
|
||||
#Delete any ledger backups
|
||||
docker run -v $PWD:/tmp/first-network --rm hyperledger/fabric-tools:$IMAGETAG rm -Rf /tmp/first-network/ledgers-backup
|
||||
#Cleanup the chaincode containers
|
||||
clearContainers
|
||||
#Cleanup images
|
||||
removeUnwantedImages
|
||||
# remove orderer block and other channel configuration transactions and certs
|
||||
rm -rf channel-artifacts/*.block channel-artifacts/*.tx crypto-config ./org3-artifacts/crypto-config/ channel-artifacts/org3.json
|
||||
# remove the docker-compose yaml file that was customized to the example
|
||||
rm -f docker-compose-e2e.yaml
|
||||
fi
|
||||
}
|
||||
|
||||
# Using docker-compose-e2e-template.yaml, replace constants with private key file names
|
||||
# generated by the cryptogen tool and output a docker-compose.yaml specific to this
|
||||
# configuration
|
||||
|
|
@ -442,17 +330,8 @@ CLI_TIMEOUT=10
|
|||
CLI_DELAY=3
|
||||
# channel name defaults to "mychannel"
|
||||
CHANNEL_NAME="mychannel"
|
||||
# use this as the default docker-compose yaml definition
|
||||
COMPOSE_FILE=docker-compose-cli.yaml
|
||||
#
|
||||
COMPOSE_FILE_COUCH=docker-compose-couch.yaml
|
||||
# org3 docker compose file
|
||||
COMPOSE_FILE_ORG3=docker-compose-org3.yaml
|
||||
#
|
||||
# use golang as the default language for chaincode
|
||||
LANGUAGE=golang
|
||||
# default image tag
|
||||
IMAGETAG="latest"
|
||||
# Parse commandline args
|
||||
if [ "$1" = "-m" ]; then # supports old usage, muscle memory is powerful!
|
||||
shift
|
||||
|
|
@ -490,18 +369,12 @@ while getopts "h?c:t:d:f:s:l:i:v" opt; do
|
|||
d)
|
||||
CLI_DELAY=$OPTARG
|
||||
;;
|
||||
f)
|
||||
COMPOSE_FILE=$OPTARG
|
||||
;;
|
||||
s)
|
||||
IF_COUCHDB=$OPTARG
|
||||
;;
|
||||
l)
|
||||
LANGUAGE=$OPTARG
|
||||
;;
|
||||
i)
|
||||
IMAGETAG=$(go env GOARCH)"-"$OPTARG
|
||||
;;
|
||||
v)
|
||||
VERBOSE=true
|
||||
;;
|
||||
|
|
@ -520,20 +393,17 @@ fi
|
|||
# ask for confirmation to proceed
|
||||
askProceed
|
||||
|
||||
#Create the network using docker compose
|
||||
if [ "${MODE}" == "up" ]; then
|
||||
networkUp
|
||||
elif [ "${MODE}" == "down" ]; then ## Clear the network
|
||||
networkDown
|
||||
kubectl delete -f deployments/deployment-cli.yaml
|
||||
elif [ "${MODE}" == "generate" ]; then ## Generate Artifacts
|
||||
generateCerts
|
||||
replacePrivateKey
|
||||
generateChannelArtifacts
|
||||
elif [ "${MODE}" == "restart" ]; then ## Restart the network
|
||||
networkDown
|
||||
kubectl delete -f deployments/deployment-cli.yaml
|
||||
networkUp
|
||||
elif [ "${MODE}" == "upgrade" ]; then ## Upgrade the network from version 1.2.x to 1.3.x
|
||||
upgradeNetwork
|
||||
else
|
||||
printHelp
|
||||
exit 1
|
||||
|
|
|
|||
286
first-network/deployments/deployment-cli.yaml
Normal file
286
first-network/deployments/deployment-cli.yaml
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hyperledger-cli
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hyperledger-cli
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hyperledger-cli
|
||||
spec:
|
||||
containers:
|
||||
- name: cli
|
||||
image: hyperledger/fabric-tools:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer
|
||||
command: [/bin/bash]
|
||||
env:
|
||||
- { name: GOPATH, value: "/opt/gopath" }
|
||||
- { name: CORE_VM_ENDPOINT, value: "unix:///host/var/run/docker.sock" }
|
||||
- { name: CORE_LOGGING_LEVEL, value: "INFO" }
|
||||
- { name: CORE_PEER_ID, value: "cli" }
|
||||
- { name: CORE_PEER_ADDRESS, value: "peer0.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_LOCALMSPID, value: "Org1MSP" }
|
||||
- { name: CORE_PEER_TLS_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_TLS_CERT_FILE, value: "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt" }
|
||||
- { name: CORE_PEER_TLS_KEY_FILE, value: "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key" }
|
||||
- { name: CORE_PEER_TLS_ROOTCERT_FILE, value: "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" }
|
||||
- { name: CORE_PEER_MSPCONFIGPATH, value: "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" }
|
||||
volumeMounts:
|
||||
- { name: host-var-run, mountPath: /host/var/run/ }
|
||||
- { name: chaincode, mountPath: /opt/gopath/src/github.com/chaincode }
|
||||
- { name: crypto-config, mountPath: /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ }
|
||||
- { name: scripts, mountPath: /opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ }
|
||||
- { name: channel-artifacts, mountPath: /opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
- name: orderer.example.com
|
||||
image: hyperledger/fabric-orderer:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric
|
||||
command:
|
||||
- orderer
|
||||
ports:
|
||||
- containerPort: 7050
|
||||
env:
|
||||
- { name: ORDERER_GENERAL_LOGLEVEL, value: "INFO" }
|
||||
- { name: ORDERER_GENERAL_LISTENADDRESS, value: "0.0.0.0" }
|
||||
- { name: ORDERER_GENERAL_GENESISMETHOD, value: "file" }
|
||||
- { name: ORDERER_GENERAL_GENESISFILE, value: "/var/hyperledger/orderer/orderer.genesis.block" }
|
||||
- { name: ORDERER_GENERAL_LOCALMSPID, value: "OrdererMSP" }
|
||||
- { name: ORDERER_GENERAL_LOCALMSPDIR, value: "/var/hyperledger/orderer/msp" }
|
||||
- { name: ORDERER_GENERAL_TLS_ENABLED, value: "true" }
|
||||
- { name: ORDERER_GENERAL_TLS_PRIVATEKEY, value: "/var/hyperledger/orderer/tls/server.key" }
|
||||
- { name: ORDERER_GENERAL_TLS_CERTIFICATE, value: "/var/hyperledger/orderer/tls/server.crt" }
|
||||
- { name: ORDERER_GENERAL_TLS_ROOTCAS, value: "[/var/hyperledger/orderer/tls/ca.crt]" }
|
||||
volumeMounts:
|
||||
- { name: channel-artifacts-genesis-block, mountPath: /var/hyperledger/orderer/orderer.genesis.block }
|
||||
- { name: orderer-msp, mountPath: /etc/hyperledger/fabric/msp }
|
||||
- { name: orderer-tls, mountPath: /etc/hyperledger/fabric/tls }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
- name: peer0.org1.example.com
|
||||
image: hyperledger/fabric-peer:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer
|
||||
command: ["peer", "node", "start"]
|
||||
ports:
|
||||
- containerPort: 7051
|
||||
- containerPort: 7053
|
||||
env:
|
||||
- { name: CORE_VM_ENDPOINT, value: "unix:///host/var/run/docker.sock" }
|
||||
- { name: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, value: "net_byfn" }
|
||||
- { name: CORE_LOGGING_LEVEL, value: "INFO" }
|
||||
- { name: CORE_PEER_TLS_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_USELEADERELECTION, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_ORGLEADER, value: "false" }
|
||||
- { name: CORE_PEER_PROFILE_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_TLS_CERT_FILE, value: "/etc/hyperledger/fabric/tls/server.crt" }
|
||||
- { name: CORE_PEER_TLS_KEY_FILE, value: "/etc/hyperledger/fabric/tls/server.key" }
|
||||
- { name: CORE_PEER_TLS_ROOTCERT_FILE, value: "/etc/hyperledger/fabric/tls/ca.crt" }
|
||||
- { name: CORE_PEER_ID, value: "peer0.org1.example.com" }
|
||||
- { name: CORE_PEER_ADDRESS, value: "peer0.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_BOOTSTRAP, value: "peer1.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_EXTERNALENDPOINT, value: "peer0.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_LOCALMSPID, value: "Org1MSP" }
|
||||
volumeMounts:
|
||||
- { name: host-var-run, mountPath: /host/var/run/ }
|
||||
- { name: peer0-org1-msp, mountPath: /etc/hyperledger/fabric/msp }
|
||||
- { name: peer0-org1-tls, mountPath: /etc/hyperledger/fabric/tls }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
- name: peer1.org1.example.com
|
||||
image: hyperledger/fabric-peer:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer
|
||||
command: ["peer", "node", "start"]
|
||||
ports:
|
||||
- containerPort: 7051
|
||||
- containerPort: 7053
|
||||
env:
|
||||
- { name: CORE_VM_ENDPOINT, value: "unix:///host/var/run/docker.sock" }
|
||||
- { name: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, value: "net_byfn" }
|
||||
- { name: CORE_LOGGING_LEVEL, value: "INFO" }
|
||||
- { name: CORE_PEER_TLS_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_USELEADERELECTION, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_ORGLEADER, value: "false" }
|
||||
- { name: CORE_PEER_PROFILE_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_TLS_CERT_FILE, value: "/etc/hyperledger/fabric/tls/server.crt" }
|
||||
- { name: CORE_PEER_TLS_KEY_FILE, value: "/etc/hyperledger/fabric/tls/server.key" }
|
||||
- { name: CORE_PEER_TLS_ROOTCERT_FILE, value: "/etc/hyperledger/fabric/tls/ca.crt" }
|
||||
- { name: CORE_PEER_ID, value: "peer1.org1.example.com" }
|
||||
- { name: CORE_PEER_ADDRESS, value: "peer1.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_BOOTSTRAP, value: "peer1.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_EXTERNALENDPOINT, value: "peer1.org1.example.com:7051" }
|
||||
- { name: CORE_PEER_LOCALMSPID, value: "Org1MSP" }
|
||||
volumeMounts:
|
||||
- { name: host-var-run, mountPath: /host/var/run/ }
|
||||
- { name: peer1-org1-msp, mountPath: /etc/hyperledger/fabric/msp }
|
||||
- { name: peer1-org1-tls, mountPath: /etc/hyperledger/fabric/tls }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
- name: peer0.org2.example.com
|
||||
image: hyperledger/fabric-peer:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer
|
||||
command: ["peer", "node", "start"]
|
||||
ports:
|
||||
- containerPort: 7051
|
||||
- containerPort: 7053
|
||||
env:
|
||||
- { name: CORE_VM_ENDPOINT, value: "unix:///host/var/run/docker.sock" }
|
||||
- { name: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, value: "net_byfn" }
|
||||
- { name: CORE_LOGGING_LEVEL, value: "INFO" }
|
||||
- { name: CORE_PEER_TLS_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_USELEADERELECTION, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_ORGLEADER, value: "false" }
|
||||
- { name: CORE_PEER_PROFILE_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_TLS_CERT_FILE, value: "/etc/hyperledger/fabric/tls/server.crt" }
|
||||
- { name: CORE_PEER_TLS_KEY_FILE, value: "/etc/hyperledger/fabric/tls/server.key" }
|
||||
- { name: CORE_PEER_TLS_ROOTCERT_FILE, value: "/etc/hyperledger/fabric/tls/ca.crt" }
|
||||
- { name: CORE_PEER_ID, value: "peer0.org2.example.com" }
|
||||
- { name: CORE_PEER_ADDRESS, value: "peer0.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_BOOTSTRAP, value: "peer1.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_EXTERNALENDPOINT, value: "peer0.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_LOCALMSPID, value: "Org2MSP" }
|
||||
volumeMounts:
|
||||
- { name: host-var-run, mountPath: /host/var/run/ }
|
||||
- { name: peer0-org2-msp, mountPath: /etc/hyperledger/fabric/msp }
|
||||
- { name: peer0-org2-tls, mountPath: /etc/hyperledger/fabric/tls }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
- name: peer1.org2.example.com
|
||||
image: hyperledger/fabric-peer:1.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
workingDir: /opt/gopath/src/github.com/hyperledger/fabric/peer
|
||||
command: ["peer", "node", "start"]
|
||||
ports:
|
||||
- containerPort: 7051
|
||||
- containerPort: 7053
|
||||
env:
|
||||
- { name: CORE_VM_ENDPOINT, value: "unix:///host/var/run/docker.sock" }
|
||||
- { name: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, value: "net_byfn" }
|
||||
- { name: CORE_LOGGING_LEVEL, value: "INFO" }
|
||||
- { name: CORE_PEER_TLS_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_USELEADERELECTION, value: "true" }
|
||||
- { name: CORE_PEER_GOSSIP_ORGLEADER, value: "false" }
|
||||
- { name: CORE_PEER_PROFILE_ENABLED, value: "true" }
|
||||
- { name: CORE_PEER_TLS_CERT_FILE, value: "/etc/hyperledger/fabric/tls/server.crt" }
|
||||
- { name: CORE_PEER_TLS_KEY_FILE, value: "/etc/hyperledger/fabric/tls/server.key" }
|
||||
- { name: CORE_PEER_TLS_ROOTCERT_FILE, value: "/etc/hyperledger/fabric/tls/ca.crt" }
|
||||
- { name: CORE_PEER_ID, value: "peer1.org2.example.com" }
|
||||
- { name: CORE_PEER_ADDRESS, value: "peer1.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_BOOTSTRAP, value: "peer1.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_GOSSIP_EXTERNALENDPOINT, value: "peer1.org2.example.com:7051" }
|
||||
- { name: CORE_PEER_LOCALMSPID, value: "Org2MSP" }
|
||||
volumeMounts:
|
||||
- { name: host-var-run, mountPath: /host/var/run/ }
|
||||
- { name: peer1-org2-msp, mountPath: /etc/hyperledger/fabric/msp }
|
||||
- { name: peer1-org2-tls, mountPath: /etc/hyperledger/fabric/tls }
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
|
||||
volumes:
|
||||
- name: host-var-run
|
||||
hostPath:
|
||||
path: /var/run/
|
||||
type: Directory
|
||||
- name: channel-artifacts-genesis-block
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/channel-artifacts/genesis.block
|
||||
type: File
|
||||
- name: orderer-msp
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp
|
||||
type: Directory
|
||||
- name: orderer-tls
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls
|
||||
type: Directory
|
||||
- name: peer0-org1-msp
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp
|
||||
type: Directory
|
||||
- name: peer0-org1-tls
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls
|
||||
type: Directory
|
||||
- name: peer1-org1-msp
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp
|
||||
type: Directory
|
||||
- name: peer1-org1-tls
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls
|
||||
type: Directory
|
||||
- name: peer0-org2-msp
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp
|
||||
type: Directory
|
||||
- name: peer0-org2-tls
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls
|
||||
type: Directory
|
||||
- name: peer1-org2-msp
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp
|
||||
type: Directory
|
||||
- name: peer1-org2-tls
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls
|
||||
type: Directory
|
||||
- name: chaincode
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/chaincode
|
||||
type: Directory
|
||||
- name: crypto-config
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/crypto-config
|
||||
type: Directory
|
||||
- name: scripts
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/scripts
|
||||
type: Directory
|
||||
- name: channel-artifacts
|
||||
hostPath:
|
||||
path: /hosthome/clement/Projects/owkin/fabric-samples/first-network/channel-artifacts
|
||||
type: Directory
|
||||
Loading…
Reference in a new issue