Add ASF header and replace default docker repo 2019liurui with rocketmqinc
diff --git a/README.md b/README.md
index c393006..3bc3edb 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
   # size is the the name service instance number of the name service cluster
   size: 2
   # metaServiceImage is the customized docker image repo of the RocketMQ name service
-  metaServiceImage: 2019liurui/rocketmq-namesrv:4.5.0-alpine
+  metaServiceImage: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
 ```
@@ -46,7 +46,7 @@
   # slavePerGroup is the number of each broker cluster
   slavePerGroup: 2
   # brokerImage is the customized docker image repo of the RocketMQ broker
-  brokerImage: 2019liurui/rocketmq-broker:4.5.0-alpine
+  brokerImage: rocketmqinc/rocketmq-broker:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
 ``` 
diff --git a/build/Dockerfile b/build/Dockerfile
index 257b009..28ba05a 100644
--- a/build/Dockerfile
+++ b/build/Dockerfile
@@ -1,3 +1,20 @@
+#
+# 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 registry.access.redhat.com/ubi7-dev-preview/ubi-minimal:7.6
 FROM openjdk:8-alpine
 
diff --git a/build/bin/entrypoint b/build/bin/entrypoint
index 9114a85..1096083 100755
--- a/build/bin/entrypoint
+++ b/build/bin/entrypoint
@@ -1,5 +1,20 @@
 #!/bin/sh -e
 
+# 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.
+
 # This is documented here:
 # https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines
 
diff --git a/build/bin/user_setup b/build/bin/user_setup
index 1e36064..8d3a0e2 100755
--- a/build/bin/user_setup
+++ b/build/bin/user_setup
@@ -1,4 +1,20 @@
 #!/bin/sh
+
+# 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.
+
 set -x
 
 # ensure $HOME exists and is accessible by group 0 (we don't know what the runtime UID will be)
diff --git a/cmd/manager/main.go b/cmd/manager/main.go
index 764e75b..0dfbde9 100644
--- a/cmd/manager/main.go
+++ b/cmd/manager/main.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package main
 
 import (
diff --git a/create-operator.sh b/create-operator.sh
index facd9eb..a55bb9e 100755
--- a/create-operator.sh
+++ b/create-operator.sh
@@ -18,11 +18,11 @@
 set -eux;
 
 # Change the DOCKERHUB_REPO to your docker repo
-DOCKERHUB_REPO="2019liurui/rocketmq-operator:v0.0.1-snapshot"
+DOCKERHUB_REPO="rocketmqinc/rocketmq-operator:v0.0.1-snapshot"
 
 export GO111MODULE=on
 
-# uncomment the following 2 lines if you have updated the [kind]_type.go file
+# uncomment the following 2 lines if you have updated the [kind]_type.go file or don't have zz_generated.deepcopy.go and zz_generated.openapi.go files
 #operator-sdk generate k8s
 #operator-sdk generate openapi
 
diff --git a/deploy/crds/cache_v1alpha1_broker_cr.yaml b/deploy/crds/cache_v1alpha1_broker_cr.yaml
index c8e74a4..a75cf69 100644
--- a/deploy/crds/cache_v1alpha1_broker_cr.yaml
+++ b/deploy/crds/cache_v1alpha1_broker_cr.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: cache.example.com/v1alpha1
 kind: Broker
 metadata:
@@ -12,6 +27,6 @@
   # slavePerGroup is the number of each broker cluster
   slavePerGroup: 2
   # brokerImage is the customized docker image repo of the RocketMQ broker
-  brokerImage: 2019liurui/rocketmq-broker:4.5.0-alpine
+  brokerImage: rocketmqinc/rocketmq-broker:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
\ No newline at end of file
diff --git a/deploy/crds/cache_v1alpha1_broker_crd.yaml b/deploy/crds/cache_v1alpha1_broker_crd.yaml
index 45ca5ab..5d480d6 100644
--- a/deploy/crds/cache_v1alpha1_broker_crd.yaml
+++ b/deploy/crds/cache_v1alpha1_broker_crd.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: apiextensions.k8s.io/v1beta1
 kind: CustomResourceDefinition
 metadata:
diff --git a/deploy/crds/rocketmq_v1alpha1_metaservice_cr.yaml b/deploy/crds/rocketmq_v1alpha1_metaservice_cr.yaml
index 5944db0..237af1e 100644
--- a/deploy/crds/rocketmq_v1alpha1_metaservice_cr.yaml
+++ b/deploy/crds/rocketmq_v1alpha1_metaservice_cr.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: rocketmq.operator.com/v1alpha1
 kind: MetaService
 metadata:
@@ -6,6 +21,6 @@
   # size is the the name service instance number of the name service cluster
   size: 2
   # metaServiceImage is the customized docker image repo of the RocketMQ name service
-  metaServiceImage: 2019liurui/rocketmq-namesrv:4.5.0-alpine
+  metaServiceImage: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
diff --git a/deploy/crds/rocketmq_v1alpha1_metaservice_crd.yaml b/deploy/crds/rocketmq_v1alpha1_metaservice_crd.yaml
index c350dce..b994abf 100644
--- a/deploy/crds/rocketmq_v1alpha1_metaservice_crd.yaml
+++ b/deploy/crds/rocketmq_v1alpha1_metaservice_crd.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: apiextensions.k8s.io/v1beta1
 kind: CustomResourceDefinition
 metadata:
diff --git a/deploy/namesrv.yaml b/deploy/namesrv.yaml
index 61260a0..5271c41 100644
--- a/deploy/namesrv.yaml
+++ b/deploy/namesrv.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -16,7 +31,7 @@
       dnsPolicy: ClusterFirstWithHostNet
       containers:
         - name: namesrv
-          image: 2019liurui/rocketmq-namesrv:4.5.0-alpine
+          image: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
           imagePullPolicy: Always
           ports:
             - containerPort: 9876
diff --git a/deploy/olm-catalog/memcached-operator/0.5.0/memcached-operator.v0.5.0.clusterserviceversion.yaml b/deploy/olm-catalog/memcached-operator/0.5.0/memcached-operator.v0.5.0.clusterserviceversion.yaml
deleted file mode 100644
index aa80f6a..0000000
--- a/deploy/olm-catalog/memcached-operator/0.5.0/memcached-operator.v0.5.0.clusterserviceversion.yaml
+++ /dev/null
@@ -1,123 +0,0 @@
-apiVersion: operators.coreos.com/v1alpha1
-kind: ClusterServiceVersion
-metadata:
-  annotations:
-    alm-examples: '[{"apiVersion":"cache.example.com/v1alpha1","kind":"Broker","metadata":{"name":"example-broker"},"spec":{"size":3}}]'
-    capabilities: Basic Install
-  name: rocketmq-operator.v0.5.0
-  namespace: placeholder
-spec:
-  apiservicedefinitions: {}
-  customresourcedefinitions:
-    owned:
-    - kind: Broker
-      name: brokers.cache.example.com
-      version: v1alpha1
-  description: Placeholder description
-  displayName: RocketMQ Operator
-  install:
-    spec:
-      deployments:
-      - name: rocketmq-operator
-        spec:
-          replicas: 1
-          selector:
-            matchLabels:
-              name: rocketmq-operator
-          strategy: {}
-          template:
-            metadata:
-              labels:
-                name: rocketmq-operator
-            spec:
-              containers:
-              - command:
-                - rocketmq-operator
-                env:
-                - name: WATCH_NAMESPACE
-                  valueFrom:
-                    fieldRef:
-                      fieldPath: metadata.namespace
-                - name: POD_NAME
-                  valueFrom:
-                    fieldRef:
-                      fieldPath: metadata.name
-                - name: OPERATOR_NAME
-                  value: rocketmq-operator
-                image: REPLACE_IMAGE
-                imagePullPolicy: Always
-                name: rocketmq-operator
-                resources: {}
-              serviceAccountName: rocketmq-operator
-      permissions:
-      - rules:
-        - apiGroups:
-          - ""
-          resources:
-          - pods
-          - services
-          - endpoints
-          - persistentvolumeclaims
-          - events
-          - configmaps
-          - secrets
-          verbs:
-          - '*'
-        - apiGroups:
-          - ""
-          resources:
-          - namespaces
-          verbs:
-          - get
-        - apiGroups:
-          - apps
-          resources:
-          - deployments
-          - daemonsets
-          - replicasets
-          - statefulsets
-          verbs:
-          - '*'
-        - apiGroups:
-          - monitoring.coreos.com
-          resources:
-          - servicemonitors
-          verbs:
-          - get
-          - create
-        - apiGroups:
-          - apps
-          resourceNames:
-          - rocketmq-operator
-          resources:
-          - deployments/finalizers
-          verbs:
-          - update
-        - apiGroups:
-          - cache.example.com
-          resources:
-          - '*'
-          verbs:
-          - '*'
-        serviceAccountName: rocketmq-operator
-    strategy: deployment
-  installModes:
-  - supported: true
-    type: OwnNamespace
-  - supported: true
-    type: SingleNamespace
-  - supported: false
-    type: MultiNamespace
-  - supported: true
-    type: AllNamespaces
-  keywords:
-  - broker
-  - app
-  maintainers:
-  - email: corp@example.com
-    name: Some Corp
-  maturity: alpha
-  provider:
-    name: Example
-    url: www.example.com
-  version: 0.5.0
diff --git a/deploy/olm-catalog/memcached-operator/0.6.0/memcached-operator.v0.6.0.clusterserviceversion.yaml b/deploy/olm-catalog/memcached-operator/0.6.0/memcached-operator.v0.6.0.clusterserviceversion.yaml
deleted file mode 100644
index 3b6b30d..0000000
--- a/deploy/olm-catalog/memcached-operator/0.6.0/memcached-operator.v0.6.0.clusterserviceversion.yaml
+++ /dev/null
@@ -1,124 +0,0 @@
-apiVersion: operators.coreos.com/v1alpha1
-kind: ClusterServiceVersion
-metadata:
-  annotations:
-    alm-examples: '[{"apiVersion":"cache.example.com/v1alpha1","kind":"Broker","metadata":{"name":"example-broker"},"spec":{"size":3}}]'
-    capabilities: Basic Install
-  name: rocketmq-operator.v0.6.0
-  namespace: placeholder
-spec:
-  apiservicedefinitions: {}
-  customresourcedefinitions:
-    owned:
-    - kind: Broker
-      name: brokers.cache.example.com
-      version: v1alpha1
-  description: Placeholder description
-  displayName: Broker Operator
-  install:
-    spec:
-      deployments:
-      - name: rocketmq-operator
-        spec:
-          replicas: 1
-          selector:
-            matchLabels:
-              name: rocketmq-operator
-          strategy: {}
-          template:
-            metadata:
-              labels:
-                name: rocketmq-operator
-            spec:
-              containers:
-              - command:
-                - rocketmq-operator
-                env:
-                - name: WATCH_NAMESPACE
-                  valueFrom:
-                    fieldRef:
-                      fieldPath: metadata.namespace
-                - name: POD_NAME
-                  valueFrom:
-                    fieldRef:
-                      fieldPath: metadata.name
-                - name: OPERATOR_NAME
-                  value: rocketmq-operator
-                image: REPLACE_IMAGE
-                imagePullPolicy: Always
-                name: rocketmq-operator
-                resources: {}
-              serviceAccountName: rocketmq-operator
-      permissions:
-      - rules:
-        - apiGroups:
-          - ""
-          resources:
-          - pods
-          - services
-          - endpoints
-          - persistentvolumeclaims
-          - events
-          - configmaps
-          - secrets
-          verbs:
-          - '*'
-        - apiGroups:
-          - ""
-          resources:
-          - namespaces
-          verbs:
-          - get
-        - apiGroups:
-          - apps
-          resources:
-          - deployments
-          - daemonsets
-          - replicasets
-          - statefulsets
-          verbs:
-          - '*'
-        - apiGroups:
-          - monitoring.coreos.com
-          resources:
-          - servicemonitors
-          verbs:
-          - get
-          - create
-        - apiGroups:
-          - apps
-          resourceNames:
-          - rocketmq-operator
-          resources:
-          - deployments/finalizers
-          verbs:
-          - update
-        - apiGroups:
-          - cache.example.com
-          resources:
-          - '*'
-          verbs:
-          - '*'
-        serviceAccountName: rocketmq-operator
-    strategy: deployment
-  installModes:
-  - supported: true
-    type: OwnNamespace
-  - supported: true
-    type: SingleNamespace
-  - supported: false
-    type: MultiNamespace
-  - supported: true
-    type: AllNamespaces
-  keywords:
-  - broker
-  - app
-  maintainers:
-  - email: corp@example.com
-    name: Some Corp
-  maturity: alpha
-  provider:
-    name: Example
-    url: www.example.com
-  replaces: rocketmq-operator.v0.5.0
-  version: 0.6.0
diff --git a/deploy/operator.yaml b/deploy/operator.yaml
index 7f23a5f..0f29c26 100644
--- a/deploy/operator.yaml
+++ b/deploy/operator.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -16,7 +31,7 @@
       containers:
         - name: rocketmq-operator
           # Replace this with the built image name
-          image: 2019liurui/rocketmq-operator:v0.0.1-snapshot
+          image: rocketmqinc/rocketmq-operator:v0.0.1-snapshot
           command:
           - rocketmq-operator
           imagePullPolicy: Always
diff --git a/deploy/role.yaml b/deploy/role.yaml
index 8b5060a..5dc243e 100644
--- a/deploy/role.yaml
+++ b/deploy/role.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: rbac.authorization.k8s.io/v1
 kind: Role
 metadata:
diff --git a/deploy/role_binding.yaml b/deploy/role_binding.yaml
index d1ef8b4..32f693e 100644
--- a/deploy/role_binding.yaml
+++ b/deploy/role_binding.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 kind: RoleBinding
 apiVersion: rbac.authorization.k8s.io/v1
 metadata:
diff --git a/deploy/service_account.yaml b/deploy/service_account.yaml
index 295a79c..2dde8f9 100644
--- a/deploy/service_account.yaml
+++ b/deploy/service_account.yaml
@@ -1,3 +1,18 @@
+# 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.
+
 apiVersion: v1
 kind: ServiceAccount
 metadata:
diff --git a/images/broker/build-broker-image.sh b/images/broker/build-broker-image.sh
index 8e96748..0b6f31d 100755
--- a/images/broker/build-broker-image.sh
+++ b/images/broker/build-broker-image.sh
@@ -33,7 +33,7 @@
 fi
 
 ROCKETMQ_VERSION=$1
-DOCKERHUB_REPO=2019liurui/rocketmq-broker
+DOCKERHUB_REPO=rocketmqinc/rocketmq-broker
 
 checkVersion $ROCKETMQ_VERSION
 
diff --git a/images/namesrv/build-namesrv-image.sh b/images/namesrv/build-namesrv-image.sh
index e4304f0..8934f30 100755
--- a/images/namesrv/build-namesrv-image.sh
+++ b/images/namesrv/build-namesrv-image.sh
@@ -33,7 +33,7 @@
 fi
 
 ROCKETMQ_VERSION=$1
-DOCKERHUB_REPO=2019liurui/rocketmq-namesrv
+DOCKERHUB_REPO=rocketmqinc/rocketmq-namesrv
 
 checkVersion $ROCKETMQ_VERSION
 
diff --git a/images/try-images.sh b/images/try-images.sh
index 115457b..9a7275a 100755
--- a/images/try-images.sh
+++ b/images/try-images.sh
@@ -15,8 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-NAMESRV_DOCKERHUB_REPO=2019liurui/rocketmq-namesrv
-BROKER_DOCKERHUB_REPO=2019liurui/rocketmq-broker
+NAMESRV_DOCKERHUB_REPO=rocketmqinc/rocketmq-namesrv
+BROKER_DOCKERHUB_REPO=rocketmqinc/rocketmq-broker
 ROCKETMQ_VERSION=4.5.0
 
 start_namesrv_broker()
diff --git a/pkg/apis/addtoscheme_cache_v1alpha1.go b/pkg/apis/addtoscheme_cache_v1alpha1.go
index e91ec96..9ee8057 100644
--- a/pkg/apis/addtoscheme_cache_v1alpha1.go
+++ b/pkg/apis/addtoscheme_cache_v1alpha1.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package apis
 
 import (
diff --git a/pkg/apis/addtoscheme_rocketmq_v1alpha1.go b/pkg/apis/addtoscheme_rocketmq_v1alpha1.go
index 96edad6..fed371c 100644
--- a/pkg/apis/addtoscheme_rocketmq_v1alpha1.go
+++ b/pkg/apis/addtoscheme_rocketmq_v1alpha1.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package apis
 
 import (
diff --git a/pkg/apis/apis.go b/pkg/apis/apis.go
index 07dc961..e52f5f6 100644
--- a/pkg/apis/apis.go
+++ b/pkg/apis/apis.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package apis
 
 import (
diff --git a/pkg/apis/cache/v1alpha1/broker_types.go b/pkg/apis/cache/v1alpha1/broker_types.go
index 3e0aaf9..da09c0f 100644
--- a/pkg/apis/cache/v1alpha1/broker_types.go
+++ b/pkg/apis/cache/v1alpha1/broker_types.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package v1alpha1
 
 import (
diff --git a/pkg/apis/cache/v1alpha1/doc.go b/pkg/apis/cache/v1alpha1/doc.go
index 862c507..c068611 100644
--- a/pkg/apis/cache/v1alpha1/doc.go
+++ b/pkg/apis/cache/v1alpha1/doc.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 // Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group
 // +k8s:deepcopy-gen=package,register
 // +groupName=cache.example.com
diff --git a/pkg/apis/cache/v1alpha1/register.go b/pkg/apis/cache/v1alpha1/register.go
index 7da9f73..12f3253 100644
--- a/pkg/apis/cache/v1alpha1/register.go
+++ b/pkg/apis/cache/v1alpha1/register.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 // NOTE: Boilerplate only.  Ignore this file.
 
 // Package v1alpha1 contains API Schema definitions for the cache v1alpha1 API group
diff --git a/pkg/apis/cache/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/cache/v1alpha1/zz_generated.deepcopy.go
deleted file mode 100644
index 942a029..0000000
--- a/pkg/apis/cache/v1alpha1/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,107 +0,0 @@
-// +build !ignore_autogenerated
-
-// Code generated by operator-sdk. DO NOT EDIT.
-
-package v1alpha1
-
-import (
-	runtime "k8s.io/apimachinery/pkg/runtime"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Broker) DeepCopyInto(out *Broker) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
-	out.Spec = in.Spec
-	in.Status.DeepCopyInto(&out.Status)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Broker.
-func (in *Broker) DeepCopy() *Broker {
-	if in == nil {
-		return nil
-	}
-	out := new(Broker)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Broker) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	}
-	return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *BrokerList) DeepCopyInto(out *BrokerList) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
-	if in.Items != nil {
-		in, out := &in.Items, &out.Items
-		*out = make([]Broker, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
-		}
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerList.
-func (in *BrokerList) DeepCopy() *BrokerList {
-	if in == nil {
-		return nil
-	}
-	out := new(BrokerList)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *BrokerList) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	}
-	return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *BrokerSpec) DeepCopyInto(out *BrokerSpec) {
-	*out = *in
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerSpec.
-func (in *BrokerSpec) DeepCopy() *BrokerSpec {
-	if in == nil {
-		return nil
-	}
-	out := new(BrokerSpec)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *BrokerStatus) DeepCopyInto(out *BrokerStatus) {
-	*out = *in
-	if in.Nodes != nil {
-		in, out := &in.Nodes, &out.Nodes
-		*out = make([]string, len(*in))
-		copy(*out, *in)
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerStatus.
-func (in *BrokerStatus) DeepCopy() *BrokerStatus {
-	if in == nil {
-		return nil
-	}
-	out := new(BrokerStatus)
-	in.DeepCopyInto(out)
-	return out
-}
diff --git a/pkg/apis/cache/v1alpha1/zz_generated.openapi.go b/pkg/apis/cache/v1alpha1/zz_generated.openapi.go
deleted file mode 100644
index ca77b80..0000000
--- a/pkg/apis/cache/v1alpha1/zz_generated.openapi.go
+++ /dev/null
@@ -1,143 +0,0 @@
-// +build !ignore_autogenerated
-
-// This file was autogenerated by openapi-gen. Do not edit it manually!
-
-package v1alpha1
-
-import (
-	spec "github.com/go-openapi/spec"
-	common "k8s.io/kube-openapi/pkg/common"
-)
-
-func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
-	return map[string]common.OpenAPIDefinition{
-		"github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.Broker":       schema_pkg_apis_cache_v1alpha1_Broker(ref),
-		"github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerSpec":   schema_pkg_apis_cache_v1alpha1_BrokerSpec(ref),
-		"github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerStatus": schema_pkg_apis_cache_v1alpha1_BrokerStatus(ref),
-	}
-}
-
-func schema_pkg_apis_cache_v1alpha1_Broker(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "Broker is the Schema for the brokers API",
-				Properties: map[string]spec.Schema{
-					"kind": {
-						SchemaProps: spec.SchemaProps{
-							Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"apiVersion": {
-						SchemaProps: spec.SchemaProps{
-							Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"metadata": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
-						},
-					},
-					"spec": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerSpec"),
-						},
-					},
-					"status": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerStatus"),
-						},
-					},
-				},
-			},
-		},
-		Dependencies: []string{
-			"github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerSpec", "github.com/alpha/rocketmq-operator/pkg/apis/cache/v1alpha1.BrokerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
-	}
-}
-
-func schema_pkg_apis_cache_v1alpha1_BrokerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "BrokerSpec defines the desired state of Broker",
-				Properties: map[string]spec.Schema{
-					"size": {
-						SchemaProps: spec.SchemaProps{
-							Type:   []string{"integer"},
-							Format: "int32",
-						},
-					},
-					"nameServers": {
-						SchemaProps: spec.SchemaProps{
-							Description: "NameServers defines the name service list e.g. 192.168.1.1:9876;192.168.1.2:9876",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"replicationMode": {
-						SchemaProps: spec.SchemaProps{
-							Description: "ReplicationMode is SYNC or ASYNC",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"slavePerGroup": {
-						SchemaProps: spec.SchemaProps{
-							Description: "SlavePerGroup is the number of slave brokers in each broker group",
-							Type:        []string{"integer"},
-							Format:      "int32",
-						},
-					},
-					"brokerImage": {
-						SchemaProps: spec.SchemaProps{
-							Description: "BaseImage is the broker container image to use for the Pods.",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"imagePullPolicy": {
-						SchemaProps: spec.SchemaProps{
-							Description: "ImagePullPolicy defines how the image is pulled.",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-				},
-				Required: []string{"size", "slavePerGroup", "brokerImage", "imagePullPolicy"},
-			},
-		},
-		Dependencies: []string{},
-	}
-}
-
-func schema_pkg_apis_cache_v1alpha1_BrokerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "BrokerStatus defines the observed state of Broker",
-				Properties: map[string]spec.Schema{
-					"nodes": {
-						SchemaProps: spec.SchemaProps{
-							Type: []string{"array"},
-							Items: &spec.SchemaOrArray{
-								Schema: &spec.Schema{
-									SchemaProps: spec.SchemaProps{
-										Type:   []string{"string"},
-										Format: "",
-									},
-								},
-							},
-						},
-					},
-				},
-				Required: []string{"nodes"},
-			},
-		},
-		Dependencies: []string{},
-	}
-}
diff --git a/pkg/apis/rocketmq/group.go b/pkg/apis/rocketmq/group.go
index 68f398c..499f40f 100644
--- a/pkg/apis/rocketmq/group.go
+++ b/pkg/apis/rocketmq/group.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 // Package rocketmq contains rocketmq API versions.
 //
 // This file ensures Go source parsers acknowledge the rocketmq package
diff --git a/pkg/apis/rocketmq/v1alpha1/doc.go b/pkg/apis/rocketmq/v1alpha1/doc.go
index 68a8463..45ae331 100644
--- a/pkg/apis/rocketmq/v1alpha1/doc.go
+++ b/pkg/apis/rocketmq/v1alpha1/doc.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 // Package v1alpha1 contains API Schema definitions for the rocketmq v1alpha1 API group
 // +k8s:deepcopy-gen=package,register
 // +groupName=rocketmq.operator.com
diff --git a/pkg/apis/rocketmq/v1alpha1/metaservice_types.go b/pkg/apis/rocketmq/v1alpha1/metaservice_types.go
index 1f6d019..f4e7690 100644
--- a/pkg/apis/rocketmq/v1alpha1/metaservice_types.go
+++ b/pkg/apis/rocketmq/v1alpha1/metaservice_types.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package v1alpha1
 
 import (
diff --git a/pkg/apis/rocketmq/v1alpha1/register.go b/pkg/apis/rocketmq/v1alpha1/register.go
index 5ed38ef..d663d51 100644
--- a/pkg/apis/rocketmq/v1alpha1/register.go
+++ b/pkg/apis/rocketmq/v1alpha1/register.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 // NOTE: Boilerplate only.  Ignore this file.
 
 // Package v1alpha1 contains API Schema definitions for the rocketmq v1alpha1 API group
diff --git a/pkg/apis/rocketmq/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rocketmq/v1alpha1/zz_generated.deepcopy.go
deleted file mode 100644
index ed888bd..0000000
--- a/pkg/apis/rocketmq/v1alpha1/zz_generated.deepcopy.go
+++ /dev/null
@@ -1,107 +0,0 @@
-// +build !ignore_autogenerated
-
-// Code generated by operator-sdk. DO NOT EDIT.
-
-package v1alpha1
-
-import (
-	runtime "k8s.io/apimachinery/pkg/runtime"
-)
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetaService) DeepCopyInto(out *MetaService) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
-	out.Spec = in.Spec
-	in.Status.DeepCopyInto(&out.Status)
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaService.
-func (in *MetaService) DeepCopy() *MetaService {
-	if in == nil {
-		return nil
-	}
-	out := new(MetaService)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *MetaService) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	}
-	return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetaServiceList) DeepCopyInto(out *MetaServiceList) {
-	*out = *in
-	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
-	if in.Items != nil {
-		in, out := &in.Items, &out.Items
-		*out = make([]MetaService, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
-		}
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaServiceList.
-func (in *MetaServiceList) DeepCopy() *MetaServiceList {
-	if in == nil {
-		return nil
-	}
-	out := new(MetaServiceList)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *MetaServiceList) DeepCopyObject() runtime.Object {
-	if c := in.DeepCopy(); c != nil {
-		return c
-	}
-	return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetaServiceSpec) DeepCopyInto(out *MetaServiceSpec) {
-	*out = *in
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaServiceSpec.
-func (in *MetaServiceSpec) DeepCopy() *MetaServiceSpec {
-	if in == nil {
-		return nil
-	}
-	out := new(MetaServiceSpec)
-	in.DeepCopyInto(out)
-	return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *MetaServiceStatus) DeepCopyInto(out *MetaServiceStatus) {
-	*out = *in
-	if in.MetaServers != nil {
-		in, out := &in.MetaServers, &out.MetaServers
-		*out = make([]string, len(*in))
-		copy(*out, *in)
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaServiceStatus.
-func (in *MetaServiceStatus) DeepCopy() *MetaServiceStatus {
-	if in == nil {
-		return nil
-	}
-	out := new(MetaServiceStatus)
-	in.DeepCopyInto(out)
-	return out
-}
diff --git a/pkg/apis/rocketmq/v1alpha1/zz_generated.openapi.go b/pkg/apis/rocketmq/v1alpha1/zz_generated.openapi.go
deleted file mode 100644
index f3e29ae..0000000
--- a/pkg/apis/rocketmq/v1alpha1/zz_generated.openapi.go
+++ /dev/null
@@ -1,124 +0,0 @@
-// +build !ignore_autogenerated
-
-// This file was autogenerated by openapi-gen. Do not edit it manually!
-
-package v1alpha1
-
-import (
-	spec "github.com/go-openapi/spec"
-	common "k8s.io/kube-openapi/pkg/common"
-)
-
-func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
-	return map[string]common.OpenAPIDefinition{
-		"github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaService":       schema_pkg_apis_rocketmq_v1alpha1_MetaService(ref),
-		"github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceSpec":   schema_pkg_apis_rocketmq_v1alpha1_MetaServiceSpec(ref),
-		"github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceStatus": schema_pkg_apis_rocketmq_v1alpha1_MetaServiceStatus(ref),
-	}
-}
-
-func schema_pkg_apis_rocketmq_v1alpha1_MetaService(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "MetaService is the Schema for the metaservices API",
-				Properties: map[string]spec.Schema{
-					"kind": {
-						SchemaProps: spec.SchemaProps{
-							Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"apiVersion": {
-						SchemaProps: spec.SchemaProps{
-							Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"metadata": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
-						},
-					},
-					"spec": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceSpec"),
-						},
-					},
-					"status": {
-						SchemaProps: spec.SchemaProps{
-							Ref: ref("github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceStatus"),
-						},
-					},
-				},
-			},
-		},
-		Dependencies: []string{
-			"github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceSpec", "github.com/alpha/rocketmq-operator/pkg/apis/rocketmq/v1alpha1.MetaServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
-	}
-}
-
-func schema_pkg_apis_rocketmq_v1alpha1_MetaServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "MetaServiceSpec defines the desired state of MetaService",
-				Properties: map[string]spec.Schema{
-					"size": {
-						SchemaProps: spec.SchemaProps{
-							Description: "Size is the number of the name service Pod",
-							Type:        []string{"integer"},
-							Format:      "int32",
-						},
-					},
-					"metaServiceImage": {
-						SchemaProps: spec.SchemaProps{
-							Description: "MetaServiceImage is the name service image",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-					"imagePullPolicy": {
-						SchemaProps: spec.SchemaProps{
-							Description: "ImagePullPolicy defines how the image is pulled.",
-							Type:        []string{"string"},
-							Format:      "",
-						},
-					},
-				},
-				Required: []string{"size", "metaServiceImage", "imagePullPolicy"},
-			},
-		},
-		Dependencies: []string{},
-	}
-}
-
-func schema_pkg_apis_rocketmq_v1alpha1_MetaServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
-	return common.OpenAPIDefinition{
-		Schema: spec.Schema{
-			SchemaProps: spec.SchemaProps{
-				Description: "MetaServiceStatus defines the observed state of MetaService",
-				Properties: map[string]spec.Schema{
-					"metaServers": {
-						SchemaProps: spec.SchemaProps{
-							Description: "MetaServers is the name service ip list",
-							Type:        []string{"array"},
-							Items: &spec.SchemaOrArray{
-								Schema: &spec.Schema{
-									SchemaProps: spec.SchemaProps{
-										Type:   []string{"string"},
-										Format: "",
-									},
-								},
-							},
-						},
-					},
-				},
-				Required: []string{"metaServers"},
-			},
-		},
-		Dependencies: []string{},
-	}
-}
diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go
index 87a6adb..7618b18 100644
--- a/pkg/constants/constants.go
+++ b/pkg/constants/constants.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package constants
 
 const BrokerClusterPrefix = "broker-cluster-"
diff --git a/pkg/controller/add_broker.go b/pkg/controller/add_broker.go
index 74e4dc5..f4f6b56 100644
--- a/pkg/controller/add_broker.go
+++ b/pkg/controller/add_broker.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package controller
 
 import (
diff --git a/pkg/controller/add_metaservice.go b/pkg/controller/add_metaservice.go
index 62cf3bd..698a91e 100644
--- a/pkg/controller/add_metaservice.go
+++ b/pkg/controller/add_metaservice.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package controller
 
 import (
diff --git a/pkg/controller/broker/broker_controller.go b/pkg/controller/broker/broker_controller.go
index 0951079..9c0f4e1 100644
--- a/pkg/controller/broker/broker_controller.go
+++ b/pkg/controller/broker/broker_controller.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package broker
 
 import (
diff --git a/pkg/controller/broker/broker_controller_test.go b/pkg/controller/broker/broker_controller_test.go
index 08825ac..6aba3cf 100644
--- a/pkg/controller/broker/broker_controller_test.go
+++ b/pkg/controller/broker/broker_controller_test.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package broker
 
 import (
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 7c069f3..a1c1758 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package controller
 
 import (
diff --git a/pkg/controller/metaservice/metaservice_controller.go b/pkg/controller/metaservice/metaservice_controller.go
index ed0e017..c17ab35 100644
--- a/pkg/controller/metaservice/metaservice_controller.go
+++ b/pkg/controller/metaservice/metaservice_controller.go
@@ -1,3 +1,20 @@
+/*
+ * 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.
+ */
+
 package metaservice
 
 import (