Several improvments for 0.4.0 release (#40)

diff --git a/CHANGES.md b/CHANGES.md
index bad9474..a894b60 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -19,6 +19,7 @@
 - Bump up GO to 1.17.
 - Bump up k8s api to 0.20.11.
 - Polish documents.
+- Bump up SkyWalking OAP to 8.8.1.
 
 0.3.0
 ------------------
diff --git a/Makefile b/Makefile
index 919885a..38fb18f 100644
--- a/Makefile
+++ b/Makefile
@@ -193,10 +193,10 @@
 	-hack/build-header.sh pkg/operator/repo/assets.gen.go
 
 release-operator: generate
-	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o build/bin/manager-linux-amd64 cmd/manager/manager.go
+	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -ldflags="-s -w" -o build/bin/manager-linux-amd64 cmd/manager/manager.go
 
 release-adapter: generate
-	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o build/bin/adapter-linux-amd64 cmd/adapter/adapter.go
+	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -ldflags="-s -w" -o build/bin/adapter-linux-amd64 cmd/adapter/adapter.go
 
 RELEASE_SCRIPTS := ./build/package/release.sh
 
diff --git a/README.md b/README.md
index df1f475..afd7309 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,15 @@
 
 ## Java Agent Injector
 
+The java agent injector share the same binary with the operator. Follow the installation procedure of the operator
+to onboard the injector.
+
+The injector can:
+
 * Inject the java agent into the application pod.
-* Use the default agent configuration.
-* Use annotations to overlay sidecar configuration and agent configuration.
-* Get the final injected agent's configuration.
+* Leverage a global configuration to simplify the agent and injector setup.
+* Use the annotation to customize specific workloads.
+* Sync injecting status to `JavaAgent` CR for monitoring purpose.
 
 For more details, please read [Java agent injector](docs/java-agent-injector.md)
 
diff --git a/apis/operator/v1alpha1/oapserver_webhook.go b/apis/operator/v1alpha1/oapserver_webhook.go
index c0e09a8..e88bf6d 100644
--- a/apis/operator/v1alpha1/oapserver_webhook.go
+++ b/apis/operator/v1alpha1/oapserver_webhook.go
@@ -48,19 +48,7 @@
 
 	image := r.Spec.Image
 	if image == "" {
-		v := r.Spec.Version
-		vTmpl := "apache/skywalking-oap-server:%s-%s"
-		vES := "es6"
-		for _, e := range r.Spec.Config {
-			if e.Name != "SW_STORAGE" {
-				continue
-			}
-			if e.Value == "elasticsearch7" {
-				vES = "es7"
-			}
-		}
-		image = fmt.Sprintf(vTmpl, v, vES)
-		r.Spec.Image = image
+		r.Spec.Image = fmt.Sprintf("apache/skywalking-oap-server:%s", r.Spec.Version)
 	}
 	for _, envVar := range r.Spec.Config {
 		if envVar.Name == "SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS" &&
diff --git a/build/images/Dockerfile.release-bin b/build/images/Dockerfile.release-bin
new file mode 100644
index 0000000..2e507ef
--- /dev/null
+++ b/build/images/Dockerfile.release-bin
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM gcr.io/distroless/static:nonroot
+COPY --chown=nonroot:nonroot bin/manager-linux-amd64 /manager
+COPY --chown=nonroot:nonroot bin/adapter-linux-amd64 /adapter
+USER nonroot:nonroot
+
+ENTRYPOINT ["/manager"]
diff --git a/build/package/release.sh b/build/package/release.sh
index 3f4e838..29f376f 100755
--- a/build/package/release.sh
+++ b/build/package/release.sh
@@ -22,6 +22,7 @@
 ROOTDIR=${BUILDDIR}/..
 
 RELEASE_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
+RELEASE_VERSION=${RELEASE_TAG#"v"}
 
 binary(){
     bindir=${BUILDDIR}/release/binary
@@ -30,8 +31,12 @@
     # Copy relevant files
     cp -Rfv ${BUILDDIR}/bin ${bindir}
     cp -Rfv ${ROOTDIR}/CHANGES.md ${bindir}
-    cp -Rfv ${ROOTDIR}/README.md ${bindir}
+    cp -Rfv ${ROOTDIR}/docs/binary-readme.md ${bindir}/README.md
     cp -Rfv ${ROOTDIR}/dist/* ${bindir}
+    # Docker
+    cp -Rfv ${ROOTDIR}/build/images/Dockerfile.release-bin ${bindir}/Dockerfile
+    echo -e "build:" > ${bindir}/Makefile
+    echo -e "\tdocker build . -t apache/skywalking-swck:${RELEASE_TAG}" >> ${bindir}/Makefile
     # Generates CRDs and deployment manifests
     pushd ${ROOTDIR}/config/operator/manager
     kustomize edit set image controller=apache/skywalking-swck:${RELEASE_TAG}
@@ -42,13 +47,13 @@
     popd
     kustomize build config/adapter > ${bindir}/config/adapter-bundle.yaml
     # Package
-    tar -czf ${BUILDDIR}/release/skywalking-swck-${RELEASE_TAG}-bin.tgz -C ${bindir} .
+    tar -czf ${BUILDDIR}/release/skywalking-swck-${RELEASE_VERSION}-bin.tgz -C ${bindir} .
     rm -rf ${bindir}
 }
 
 source(){
     # Package
-    rm -rf ${BUILDDIR}/release/skywalking-swck-${RELEASE_TAG}-src.tgz
+    rm -rf ${BUILDDIR}/release/skywalking-swck-${RELEASE_VERSION}-src.tgz
     pushd ${ROOTDIR}
     tar \
         --exclude=".DS_Store" \
@@ -61,7 +66,7 @@
         --exclude="build/release"  \
         --exclude="*.test"  \
         --exclude="*.out"  \
-        -czf ./build/release/skywalking-swck-${RELEASE_TAG}-src.tgz \
+        -czf ./build/release/skywalking-swck-${RELEASE_VERSION}-src.tgz \
         .
     popd
 }
@@ -69,8 +74,8 @@
 sign(){
     type=$1
     pushd ${BUILDDIR}/release/
-    gpg --batch --yes --armor --detach-sig skywalking-swck-${RELEASE_TAG}-${type}.tgz
-	shasum -a 512 skywalking-swck-${RELEASE_TAG}-${type}.tgz > skywalking-swck-${RELEASE_TAG}-${type}.tgz.sha512
+    gpg --batch --yes --armor --detach-sig skywalking-swck-${RELEASE_VERSION}-${type}.tgz
+	shasum -a 512 skywalking-swck-${RELEASE_VERSION}-${type}.tgz > skywalking-swck-${RELEASE_VERSION}-${type}.tgz.sha512
 	popd
 }
 
@@ -116,4 +121,4 @@
 parseCmdLine "$@"
 ret=$?
 [ $ret -ne 0 ] && exit $ret
-echo "Done release [$RELEASE_TAG] (exit $ret)"
+echo "Done release [RELEASE_VERSION] (exit $ret)"
diff --git a/config/operator/samples/default.yaml b/config/operator/samples/default.yaml
index 64d2168..f8435f5 100644
--- a/config/operator/samples/default.yaml
+++ b/config/operator/samples/default.yaml
@@ -20,9 +20,9 @@
 metadata:
   name: default
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
-  image: apache/skywalking-oap-server:8.3.0-es6
+  image: apache/skywalking-oap-server:8.8.1
   service:
     template:
       type: ClusterIP
@@ -33,9 +33,9 @@
 metadata:
   name: default
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
-  image: apache/skywalking-ui:8.3.0
+  image: apache/skywalking-ui:8.8.1
   OAPServerAddress: default-oap:12800
   service:
     template:
diff --git a/config/operator/samples/fetcher.yaml b/config/operator/samples/fetcher.yaml
index 40e5905..8ba8b77 100644
--- a/config/operator/samples/fetcher.yaml
+++ b/config/operator/samples/fetcher.yaml
@@ -30,9 +30,9 @@
 metadata:
   name: default
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
-  image: apache/skywalking-oap-server:8.3.0-es6
+  image: apache/skywalking-oap-server:8.8.1
   config:
     - name: SW_OTEL_RECEIVER
       value: default
@@ -46,9 +46,9 @@
 metadata:
   name: default
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
-  image: apache/skywalking-ui:8.3.0
+  image: apache/skywalking-ui:8.8.1
   OAPServerAddress: default-oap:12800
   service:
     template:
diff --git a/config/operator/samples/minimal.yaml b/config/operator/samples/minimal.yaml
index f2cbb6e..8f41ea7 100644
--- a/config/operator/samples/minimal.yaml
+++ b/config/operator/samples/minimal.yaml
@@ -20,7 +20,7 @@
 metadata:
   name: minimal
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
   
 ---
@@ -29,6 +29,6 @@
 metadata:
   name: minimal
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
  
\ No newline at end of file
diff --git a/docs/binary-readme.md b/docs/binary-readme.md
new file mode 100644
index 0000000..2d3eca6
--- /dev/null
+++ b/docs/binary-readme.md
@@ -0,0 +1,55 @@
+Apache SkyWalking Cloud on Kubernetes
+============
+
+![](https://github.com/apache/skywalking-swck/workflows/Build/badge.svg?branch=master)
+
+<img src="http://skywalking.apache.org/assets/logo.svg" alt="Sky Walking logo" height="90px" align="right" />
+
+A bridge project between [Apache SkyWalking](https://github.com/apache/skywalking) and Kubernetes.
+
+SWCK is a platform for the SkyWalking user, provisions, upgrades, maintains SkyWalking relevant components, and makes them work natively on Kubernetes.
+
+# Features
+
+1. Java Agent Injector: Inject the java agent into the application pod natively.
+1. Operator: Provision and maintain SkyWalking backend components.
+1. Custom Metrics Adapter: Provides custom metrics come from SkyWalking OAP cluster for autoscaling by Kubernetes HPA
+
+# Build images
+
+Issue below instrument to get the docker image:
+
+```
+make
+```
+
+or 
+
+```
+make build
+```
+
+To onboard operator or adapter, you should push the image to a registry where the kubernetes cluster can pull it.
+
+## Onboard Java Agent Injector and Operator
+
+The java agent injector and operator share a same binary. To onboard them, you should follow:
+
+* To install the java agent injector and operator in an existing cluster, make sure you have [`cert-manager` installed](https://cert-manager.io/docs/installation/)
+* Apply the manifests for the Controller and CRDs in `config`:
+
+ ```
+ kubectl apply -f config/operator-bundle.yaml
+ ```
+
+## Onboard Custom Metrics Adapter
+
+* Deploy OAP server by referring to Operator Quick Start.
+* Apply the manifests for an adapter in `config`:
+
+ ```
+ kubectl apply -f config/adapter-bundle.yaml
+ ```
+
+# License
+[Apache 2.0 License.](/LICENSE)
diff --git a/docs/examples/storage.md b/docs/examples/storage.md
index 3dd0084..922cfc3 100644
--- a/docs/examples/storage.md
+++ b/docs/examples/storage.md
@@ -84,9 +84,9 @@
 metadata:
   name: default
 spec:
-  version: 8.3.0
+  version: 8.8.1
   instances: 1
-  image: apache/skywalking-oap-server:8.3.0-es7
+  image: apache/skywalking-oap-server:8.8.1
   service:
     template:
       type: ClusterIP
diff --git a/docs/release.md b/docs/release.md
index 5cbd7aa..07981e8 100644
--- a/docs/release.md
+++ b/docs/release.md
@@ -19,7 +19,7 @@
 ```shell
 export VERSION=<the version to release>
 git clone git@github.com:apache/skywalking-swck && cd skywalking-swck
-git tag -a "$VERSION" -m "Release Apache SkyWalking Cloud on Kubernetes $VERSION"
+git tag -a "v$VERSION" -m "Release Apache SkyWalking Cloud on Kubernetes $VERSION"
 git push --tags
 make clean && make release
 ```