Skip to content

Commit

Permalink
Add an option to stage docker images locally to KIND (#528)
Browse files Browse the repository at this point in the history
Signed-off-by: Josh Kneubuhl <jkneubuh@us.ibm.com>
  • Loading branch information
jkneubuh committed Nov 10, 2021
1 parent 8c1c36a commit 8183da6
Show file tree
Hide file tree
Showing 21 changed files with 55 additions and 48 deletions.
2 changes: 1 addition & 1 deletion test-network-k8s/docs/TEST_NETWORK.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ from a public container registry, copying the external builders into the target
```yaml
initContainers:
- name: fabric-ccs-builder
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ccs-builder
command: [sh, -c]
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
volumeMounts:
Expand Down
2 changes: 1 addition & 1 deletion test-network-k8s/kube/org0/org0-admin-cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CFG_PATH
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org0/org0-ecert-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org0-ecert-ca"
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org0/org0-orderer1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: org0-orderer1-env
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org0/org0-orderer2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: org0-orderer2-env
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org0/org0-orderer3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: org0-orderer3-env
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org0/org0-tls-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org0-tls-ca"
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org1/org1-admin-cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CFG_PATH
value: /var/hyperledger/fabric/config
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org1/org1-ecert-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org1-ecert-ca"
Expand Down
8 changes: 4 additions & 4 deletions test-network-k8s/kube/org1/org1-peer1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: org1-peer1-config
Expand All @@ -66,8 +66,8 @@ spec:
# load the external chaincode builder into the peer image prior to peer launch.
initContainers:
- name: fabric-ccs-builder
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
imagePullPolicy: Always
image: ghcr.io/hyperledgendary/fabric-ccs-builder
imagePullPolicy: IfNotPresent
command: [sh, -c]
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
volumeMounts:
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org1/org1-peer2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: Always
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
name: org1-peer2-config
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org1/org1-tls-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org1-tls-ca"
Expand Down
2 changes: 1 addition & 1 deletion test-network-k8s/kube/org2/org2-admin-cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CFG_PATH
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org2/org2-ecert-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org2-ecert-ca"
Expand Down
4 changes: 2 additions & 2 deletions test-network-k8s/kube/org2/org2-peer1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
Expand All @@ -66,7 +66,7 @@ spec:
# load the external chaincode builder into the peer image prior to peer launch.
initContainers:
- name: fabric-ccs-builder
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
image: ghcr.io/hyperledgendary/fabric-ccs-builder
imagePullPolicy: IfNotPresent
command: [sh, -c]
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
Expand Down
2 changes: 1 addition & 1 deletion test-network-k8s/kube/org2/org2-peer2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
imagePullPolicy: IfNotPresent
envFrom:
- configMapRef:
Expand Down
3 changes: 2 additions & 1 deletion test-network-k8s/kube/org2/org2-tls-ca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ spec:
spec:
containers:
- name: main
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
imagePullPolicy: IfNotPresent
env:
- name: FABRIC_CA_SERVER_CA_NAME
value: "org2-tls-ca"
Expand Down
7 changes: 6 additions & 1 deletion test-network-k8s/network
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ set -o errexit

FABRIC_VERSION=${TEST_NETWORK_FABRIC_VERSION:-2.3.2}
FABRIC_CA_VERSION=${TEST_NETWORK_FABRIC_CA_VERSION:-1.5.2}
LOCAL_CONTAINER_REGISTRY=localhost:5000
FABRIC_CONTAINER_REGISTRY=${TEST_NETWORK_FABRIC_CONTAINER_REGISTRY:-hyperledger}
NETWORK_NAME=${TEST_NETWORK_NAME:-test-network}
CLUSTER_NAME=${TEST_NETWORK_KIND_CLUSTER_NAME:-kind}
Expand All @@ -32,6 +31,7 @@ LOG_FILE=${TEST_NETWORK_LOG_FILE:-network.log}
DEBUG_FILE=${TEST_NETWORK_DEBUG_FILE:-network-debug.log}
LOCAL_REGISTRY_NAME=${TEST_NETWORK_LOCAL_REGISTRY_NAME:-kind-registry}
LOCAL_REGISTRY_PORT=${TEST_NETWORK_LOCAL_REGISTRY_PORT:-5000}
STAGE_DOCKER_IMAGES=${TEST_NETWORK_STAGE_DOCKER_IMAGES:-false}
NGINX_HTTP_PORT=${TEST_NETWORK_INGRESS_HTTP_PORT:-80}
NGINX_HTTPS_PORT=${TEST_NETWORK_INGRESS_HTTPS_PORT:-443}
CHAINCODE_NAME=${TEST_NETWORK_CHAINCODE_NAME:-asset-transfer-basic}
Expand Down Expand Up @@ -106,6 +106,11 @@ if [ "${MODE}" == "kind" ]; then
kind_init
log "🏁 - Cluster is ready."

elif [ "${MODE}" == "load-images" ]; then
log "Loading images to KIND:"
load_docker_images
log "🏁 - Images loaded."

elif [ "${MODE}" == "unkind" ]; then
log "Deleting cluster \"${CLUSTER_NAME}\":"
kind_unkind
Expand Down
2 changes: 1 addition & 1 deletion test-network-k8s/scripts/fabric_CAs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
function launch_CA() {
local yaml=$1
cat ${yaml} \
| sed 's,{{LOCAL_CONTAINER_REGISTRY}},'${LOCAL_CONTAINER_REGISTRY}',g' \
| sed 's,{{FABRIC_CONTAINER_REGISTRY}},'${FABRIC_CONTAINER_REGISTRY}',g' \
| sed 's,{{FABRIC_CA_VERSION}},'${FABRIC_CA_VERSION}',g' \
| kubectl -n $NS apply -f -
}
Expand Down
34 changes: 15 additions & 19 deletions test-network-k8s/scripts/kind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,17 @@ function pull_docker_images() {
pop_fn
}

function push_images_to_local() {
push_fn "Push docker images to local image repository"

docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-tools:$FABRIC_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-tools:$FABRIC_VERSION
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-tools:$FABRIC_VERSION
docker tag ghcr.io/hyperledgendary/fabric-ccs-builder:latest ${LOCAL_CONTAINER_REGISTRY}/fabric-ccs-builder:latest
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-ccs-builder:latest
docker tag ghcr.io/hyperledgendary/fabric-ccaas-asset-transfer-basic:latest ${LOCAL_CONTAINER_REGISTRY}/fabric-ccaas-asset-transfer-basic:latest
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-ccaas-asset-transfer-basic:latest

pop_fn
function load_docker_images() {
push_fn "Loading docker images to KIND control plane"

kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-tools:$FABRIC_VERSION
kind load docker-image ghcr.io/hyperledgendary/fabric-ccs-builder:latest
kind load docker-image ghcr.io/hyperledgendary/fabric-ccaas-asset-transfer-basic:latest

pop_fn
}

function apply_nginx_ingress() {
Expand Down Expand Up @@ -143,8 +137,10 @@ function kind_init() {
apply_nginx_ingress
launch_docker_registry

pull_docker_images
push_images_to_local
if [ "${STAGE_DOCKER_IMAGES}" == true ]; then
pull_docker_images
load_docker_images
fi
}

function kind_unkind() {
Expand Down
2 changes: 1 addition & 1 deletion test-network-k8s/scripts/test_network.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
function launch() {
local yaml=$1
cat ${yaml} \
| sed 's,{{LOCAL_CONTAINER_REGISTRY}},'${LOCAL_CONTAINER_REGISTRY}',g' \
| sed 's,{{FABRIC_CONTAINER_REGISTRY}},'${FABRIC_CONTAINER_REGISTRY}',g' \
| sed 's,{{FABRIC_VERSION}},'${FABRIC_VERSION}',g' \
| kubectl -n $NS apply -f -
}
Expand Down

0 comments on commit 8183da6

Please sign in to comment.