From 2fe9489168d503df11c7c3fe904211037f3f8993 Mon Sep 17 00:00:00 2001 From: jnjerin Date: Wed, 1 Nov 2023 10:00:20 +0300 Subject: [PATCH] new file for testing k8s CI Signed-off-by: jnjerin --- .github/workflows/test-kubectl-plugin.yml | 366 ++++++++++++++++++++++ 1 file changed, 366 insertions(+) create mode 100644 .github/workflows/test-kubectl-plugin.yml diff --git a/.github/workflows/test-kubectl-plugin.yml b/.github/workflows/test-kubectl-plugin.yml new file mode 100644 index 00000000..7fce5ed0 --- /dev/null +++ b/.github/workflows/test-kubectl-plugin.yml @@ -0,0 +1,366 @@ +on: + push: + pull_request: + + +name: Test Kubectl plugin +jobs: + kubectl-hlf: + strategy: + matrix: + go-version: [ 1.18.x ] + os: [ ubuntu-latest ] + runs-on: ${{ matrix.os }} + env: + IMAGE: hlf-operator + TAG: test + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + - name: Checkout code + uses: actions/checkout@v2 + - name: Create k8s Kind Cluster + uses: helm/kind-action@v1.4.0 + with: + cluster_name: kind + node_image: kindest/node:v1.25.8 + config: .github/kind-config.yaml + + - name: Install kubectl plugin + run: | + cd kubectl-hlf + go build -o kubectl-hlf ./main.go + sudo mv kubectl-hlf /usr/local/bin/kubectl-hlf + - name: Build Docker Image + run: | + export GOOS=linux + export GOARCH=amd64 + export CGO_ENABLED=0 + go build -o hlf-operator ./main.go + docker build -t "${IMAGE}:${TAG}" . + kind load docker-image "${IMAGE}:${TAG}" + - name: Deploy operator + run: | + helm repo add kfs https://kfsoftware.github.io/hlf-helm-charts --force-update + helm install hlf-operator --version=1.9.0-beta4 kfs/hlf-operator --set image.repository="${IMAGE}" --set image.tag="${TAG}" --set image.pullPolicy="IfNotPresent" + + - name: Install operator CRDs + run: | + go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 + make generate manifests install + - name: Install Istio + run: | + curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.16.1 TARGET_ARCH=x86_64 sh - + export PATH="$PATH:$PWD/istio-1.16.1/bin" + kubectl create namespace istio-system + + istioctl operator init + + + kubectl apply -f - < ./orderer-cert.pem + + kubectl hlf channelcrd main create \ + --channel-name=demo \ + --name=demo \ + --orderer-orgs=OrdererMSP \ + --peer-orgs=Org1MSP \ + --admin-orderer-orgs=OrdererMSP \ + --admin-peer-orgs=Org1MSP \ + --secret-name=wallet \ + --secret-ns=default \ + --consenters=ord-node1.default:7050 \ + --consenter-certificates=./orderer-cert.pem \ + --identities="OrdererMSP;admin-tls-ordservice.yaml" \ + --identities="Org1MSP;peer-org1.yaml" + + kubectl wait --timeout=180s --for=condition=Created fabricmainchannels.hlf.kungfusoftware.es --all + + + - name: Join peers to channel + run: | + kubectl get fabricorderernodes ord-node1 -o jsonpath='{.status.tlsCert}' > ./orderer-cert.pem + kubectl hlf channelcrd follower create \ + --channel-name=demo \ + --mspid=Org1MSP \ + --name="demo-org1msp" \ + --orderer-certificates="./orderer-cert.pem" \ + --orderer-urls="grpcs://ord-node1.default:7050" \ + --anchor-peers="org1-peer0:7051" \ + --peers="org1-peer0.default" \ + --secret-name=wallet \ + --secret-ns=default \ + --secret-key="peer-org1.yaml" + + kubectl wait --timeout=180s --for=condition=Created fabricfollowerchannels.hlf.kungfusoftware.es --all + - name: Get channel + run: | + sleep 3 + + kubectl hlf channel inspect --channel=demo --config=org1.yaml \ + --user=admin -p=org1-peer0.default > demo.json + + cat demo.json + - name: Install/Approve/Commit chaincode + run: | + # remove the code.tar.gz asset-transfer-basic-external.tgz if they exist + export CHAINCODE_NAME=asset + export CHAINCODE_LABEL=asset + cat << METADATA-EOF > "metadata.json" + { + "type": "ccaas", + "label": "${CHAINCODE_LABEL}" + } + METADATA-EOF + + cat > "connection.json" <