1717# limitations under the License.
1818#
1919
20+ function set_ecr_image_tag() {
21+ # converts local "/" separated image name to an appropriate ECR tag used in AWS_ECR_REPO
22+ # Example: fabric-samples/asset-transfer-basic/chaincode-java:latest -> asset-transfer-basic_java_latest
23+
24+ local cc_local_image=$1
25+ ECR_IMAGE_TAG=$( python -c ' import sys; p=sys.argv[1]; p=p.split("/")[-3:]; cc=p[1]; lang=p[-1].split("-")[-1]; tag="latest"; print(f"{cc}_{lang}_{tag}")' ${cc_local_image} )
26+ }
27+
28+ function ecr_load_image() {
29+ local cc_local_image=$1
30+
31+ ecr_login ${AWS_PROFILE} ${AWS_ACCOUNT}
32+
33+ local aws_ecr=" ${ECR_RESOURCE} /${AWS_ECR_REPO} "
34+
35+ set_ecr_image_tag ${cc_local_image}
36+
37+ CHAINCODE_IMAGE=" ${aws_ecr} :${ECR_IMAGE_TAG} "
38+
39+ push_fn " Tag chaincode image for ECR"
40+ docker tag ${cc_local_image} ${CHAINCODE_IMAGE}
41+ pop_fn
42+
43+ push_fn " Load chaincode image into ECR"
44+ docker push " ${CHAINCODE_IMAGE} "
45+ pop_fn
46+ }
47+
2048# Convenience routine to "do everything" required to bring up a sample CC.
2149function deploy_chaincode() {
2250 local cc_name=$1
@@ -33,8 +61,11 @@ function deploy_chaincode() {
3361
3462 build_chaincode_image ${cc_folder} ${CHAINCODE_IMAGE}
3563
64+ # push to container registry
3665 if [ " ${CLUSTER_RUNTIME} " == " kind" ]; then
3766 kind_load_image ${CHAINCODE_IMAGE}
67+ elif [ " ${CLUSTER_RUNTIME} " == " k3s" ] && [ " ${CHAINCODE_REGISTRY} " == " ecr" ]; then
68+ ecr_load_image ${CHAINCODE_IMAGE}
3869 fi
3970
4071 launch_chaincode ${cc_name} ${CHAINCODE_ID} ${CHAINCODE_IMAGE}
0 commit comments