mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-22 17:45:10 +00:00
Add an option to stage docker images locally to KIND (#528)
Signed-off-by: Josh Kneubuhl <jkneubuh@us.ibm.com>
This commit is contained in:
parent
8c1c36ae09
commit
8183da6666
21 changed files with 54 additions and 47 deletions
|
|
@ -135,7 +135,7 @@ from a public container registry, copying the external builders into the target
|
||||||
```yaml
|
```yaml
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: fabric-ccs-builder
|
- name: fabric-ccs-builder
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ccs-builder
|
||||||
command: [sh, -c]
|
command: [sh, -c]
|
||||||
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CFG_PATH
|
- name: FABRIC_CFG_PATH
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org0-ecert-ca"
|
value: "org0-ecert-ca"
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: org0-orderer1-env
|
name: org0-orderer1-env
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: org0-orderer2-env
|
name: org0-orderer2-env
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-orderer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: org0-orderer3-env
|
name: org0-orderer3-env
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org0-tls-ca"
|
value: "org0-tls-ca"
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CFG_PATH
|
- name: FABRIC_CFG_PATH
|
||||||
value: /var/hyperledger/fabric/config
|
value: /var/hyperledger/fabric/config
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org1-ecert-ca"
|
value: "org1-ecert-ca"
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: org1-peer1-config
|
name: org1-peer1-config
|
||||||
|
|
@ -66,8 +66,8 @@ spec:
|
||||||
# load the external chaincode builder into the peer image prior to peer launch.
|
# load the external chaincode builder into the peer image prior to peer launch.
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: fabric-ccs-builder
|
- name: fabric-ccs-builder
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
|
image: ghcr.io/hyperledgendary/fabric-ccs-builder
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
command: [sh, -c]
|
command: [sh, -c]
|
||||||
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: org1-peer2-config
|
name: org1-peer2-config
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org1-tls-ca"
|
value: "org1-tls-ca"
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-tools:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CFG_PATH
|
- name: FABRIC_CFG_PATH
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org2-ecert-ca"
|
value: "org2-ecert-ca"
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|
@ -66,7 +66,7 @@ spec:
|
||||||
# load the external chaincode builder into the peer image prior to peer launch.
|
# load the external chaincode builder into the peer image prior to peer launch.
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: fabric-ccs-builder
|
- name: fabric-ccs-builder
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ccs-builder
|
image: ghcr.io/hyperledgendary/fabric-ccs-builder
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
command: [sh, -c]
|
command: [sh, -c]
|
||||||
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
args: ["cp /go/bin/* /var/hyperledger/fabric/chaincode/ccs-builder/bin/"]
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-peer:{{FABRIC_VERSION}}
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: main
|
- name: main
|
||||||
image: {{LOCAL_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
image: {{FABRIC_CONTAINER_REGISTRY}}/fabric-ca:{{FABRIC_CA_VERSION}}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FABRIC_CA_SERVER_CA_NAME
|
- name: FABRIC_CA_SERVER_CA_NAME
|
||||||
value: "org2-tls-ca"
|
value: "org2-tls-ca"
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ set -o errexit
|
||||||
|
|
||||||
FABRIC_VERSION=${TEST_NETWORK_FABRIC_VERSION:-2.3.2}
|
FABRIC_VERSION=${TEST_NETWORK_FABRIC_VERSION:-2.3.2}
|
||||||
FABRIC_CA_VERSION=${TEST_NETWORK_FABRIC_CA_VERSION:-1.5.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}
|
FABRIC_CONTAINER_REGISTRY=${TEST_NETWORK_FABRIC_CONTAINER_REGISTRY:-hyperledger}
|
||||||
NETWORK_NAME=${TEST_NETWORK_NAME:-test-network}
|
NETWORK_NAME=${TEST_NETWORK_NAME:-test-network}
|
||||||
CLUSTER_NAME=${TEST_NETWORK_KIND_CLUSTER_NAME:-kind}
|
CLUSTER_NAME=${TEST_NETWORK_KIND_CLUSTER_NAME:-kind}
|
||||||
|
|
@ -32,6 +31,7 @@ LOG_FILE=${TEST_NETWORK_LOG_FILE:-network.log}
|
||||||
DEBUG_FILE=${TEST_NETWORK_DEBUG_FILE:-network-debug.log}
|
DEBUG_FILE=${TEST_NETWORK_DEBUG_FILE:-network-debug.log}
|
||||||
LOCAL_REGISTRY_NAME=${TEST_NETWORK_LOCAL_REGISTRY_NAME:-kind-registry}
|
LOCAL_REGISTRY_NAME=${TEST_NETWORK_LOCAL_REGISTRY_NAME:-kind-registry}
|
||||||
LOCAL_REGISTRY_PORT=${TEST_NETWORK_LOCAL_REGISTRY_PORT:-5000}
|
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_HTTP_PORT=${TEST_NETWORK_INGRESS_HTTP_PORT:-80}
|
||||||
NGINX_HTTPS_PORT=${TEST_NETWORK_INGRESS_HTTPS_PORT:-443}
|
NGINX_HTTPS_PORT=${TEST_NETWORK_INGRESS_HTTPS_PORT:-443}
|
||||||
CHAINCODE_NAME=${TEST_NETWORK_CHAINCODE_NAME:-asset-transfer-basic}
|
CHAINCODE_NAME=${TEST_NETWORK_CHAINCODE_NAME:-asset-transfer-basic}
|
||||||
|
|
@ -106,6 +106,11 @@ if [ "${MODE}" == "kind" ]; then
|
||||||
kind_init
|
kind_init
|
||||||
log "🏁 - Cluster is ready."
|
log "🏁 - Cluster is ready."
|
||||||
|
|
||||||
|
elif [ "${MODE}" == "load-images" ]; then
|
||||||
|
log "Loading images to KIND:"
|
||||||
|
load_docker_images
|
||||||
|
log "🏁 - Images loaded."
|
||||||
|
|
||||||
elif [ "${MODE}" == "unkind" ]; then
|
elif [ "${MODE}" == "unkind" ]; then
|
||||||
log "Deleting cluster \"${CLUSTER_NAME}\":"
|
log "Deleting cluster \"${CLUSTER_NAME}\":"
|
||||||
kind_unkind
|
kind_unkind
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
function launch_CA() {
|
function launch_CA() {
|
||||||
local yaml=$1
|
local yaml=$1
|
||||||
cat ${yaml} \
|
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' \
|
| sed 's,{{FABRIC_CA_VERSION}},'${FABRIC_CA_VERSION}',g' \
|
||||||
| kubectl -n $NS apply -f -
|
| kubectl -n $NS apply -f -
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,23 +18,17 @@ function pull_docker_images() {
|
||||||
pop_fn
|
pop_fn
|
||||||
}
|
}
|
||||||
|
|
||||||
function push_images_to_local() {
|
function load_docker_images() {
|
||||||
push_fn "Push docker images to local image repository"
|
push_fn "Loading docker images to KIND control plane"
|
||||||
|
|
||||||
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
|
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
|
||||||
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-ca:$FABRIC_CA_VERSION
|
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
|
||||||
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
|
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
|
||||||
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-orderer:$FABRIC_VERSION
|
kind load docker-image ${FABRIC_CONTAINER_REGISTRY}/fabric-tools:$FABRIC_VERSION
|
||||||
docker tag ${FABRIC_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION ${LOCAL_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
|
kind load docker-image ghcr.io/hyperledgendary/fabric-ccs-builder:latest
|
||||||
docker push ${LOCAL_CONTAINER_REGISTRY}/fabric-peer:$FABRIC_VERSION
|
kind load docker-image ghcr.io/hyperledgendary/fabric-ccaas-asset-transfer-basic:latest
|
||||||
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
|
pop_fn
|
||||||
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 apply_nginx_ingress() {
|
function apply_nginx_ingress() {
|
||||||
|
|
@ -143,8 +137,10 @@ function kind_init() {
|
||||||
apply_nginx_ingress
|
apply_nginx_ingress
|
||||||
launch_docker_registry
|
launch_docker_registry
|
||||||
|
|
||||||
pull_docker_images
|
if [ "${STAGE_DOCKER_IMAGES}" == true ]; then
|
||||||
push_images_to_local
|
pull_docker_images
|
||||||
|
load_docker_images
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function kind_unkind() {
|
function kind_unkind() {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
function launch() {
|
function launch() {
|
||||||
local yaml=$1
|
local yaml=$1
|
||||||
cat ${yaml} \
|
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' \
|
| sed 's,{{FABRIC_VERSION}},'${FABRIC_VERSION}',g' \
|
||||||
| kubectl -n $NS apply -f -
|
| kubectl -n $NS apply -f -
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue