docs(README.md): add NFS verify instructions and move CR files to example
diff --git a/README.md b/README.md
index 7564378..13936d3 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,29 @@
The first step is to prepare a storage class to create PV and PVC where the RocketMQ data will be stored. Here we use NFS as the storage class.
-1. Deploy NFS server and clients on your Kubernetes cluster. Please make sure they are functional before you go to the next step.
+1. Deploy NFS server and clients on your Kubernetes cluster. Please make sure they are functional before you go to the next step. Here is a instruction on how to verify NFS service.
+
+ 1) On your NFS client node, check if NFS shared dir exists.
+ ```
+ $ showmount -e 192.168.130.32
+ Export list for 192.168.130.32:
+ /data/k8s *
+ ```
+ 2) On your NFS client node, create a test dir and mount it to the NFS shared dir (you may need sudo permission).
+ ```
+ $ mkdir -p ~/test-nfc
+ $ mount -t nfs 192.168.130.32:/data/k8s ~/test-nfc
+ ```
+ 3) On your NFS client node, create a test file on the mounted test dir.
+ ```
+ $ touch ~/test-nfc/test.txt
+ ```
+ 4) On your NFS server node, check the shared dir. If there exists the test file we created on the client node, it proves the NFS service is functional.
+ ```
+ $ ls -ls /data/k8s/
+ total 4
+ 4 -rw-r--r--. 1 root root 4 Jul 10 21:50 test.txt
+ ```
2. Modify the following configurations of the ```deploy/storage/nfs-client.yaml``` file:
```
@@ -47,7 +69,7 @@
RocketMQ Operator provides several CRDs to allow users define their RocketMQ service component cluster, which includes the Namesrv cluster and the Broker cluster.
-1. Check the file ```rocketmq_v1alpha1_nameservice_cr.yaml``` in the ```deploy/crds``` directory, for example:
+1. Check the file ```rocketmq_v1alpha1_nameservice_cr.yaml``` in the ```example``` directory, for example:
```
apiVersion: rocketmq.apache.org/v1alpha1
kind: NameService
@@ -75,7 +97,7 @@
which defines the RocketMQ name service (namesrv) cluster scale.
-2. Check the file ```cache_v1alpha1_broker_cr.yaml``` in the ```deploy/crds``` directory, for example:
+2. Check the file ```rocketmq_v1alpha1_broker_cr.yaml``` in the ```example``` directory, for example:
```
apiVersion: rocketmq.apache.org/v1alpha1
kind: Broker
@@ -131,7 +153,7 @@
2. Deploy the RocketMQ name service cluster by running:
```
-$ kubectl apply -f deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml
+$ kubectl apply -f example/rocketmq_v1alpha1_nameservice_cr.yaml
nameservice.rocketmq.apache.org/name-service created
```
@@ -145,12 +167,12 @@
rocketmq-operator-564b5d75d-jllzk 1/1 Running 0 5m53s 10.244.2.116 k2data-14 <none> <none>
```
-We can see that there are 1 name service Pods running on 1 nodes and their IP addresses. Modify the ```nameServers``` field in the ```cache_v1alpha1_broker_cr.yaml``` file using the IP addresses.
+We can see that there are 1 name service Pods running on 1 nodes and their IP addresses. Modify the ```nameServers``` field in the ```rocketmq_v1alpha1_broker_cr.yaml``` file using the IP addresses.
3. Deploy the RocketMQ broker clusters by running:
```
-$ kubectl apply -f deploy/crds/cache_v1alpha1_broker_cr.yaml
-broker.cache.example.com/broker created
+$ kubectl apply -f example/rocketmq_v1alpha1_broker_cr.yaml
+broker.rocketmq.apache.org/broker created
```
After a while after the Containers are created, the Kubernetes clusters status should be like:
@@ -159,9 +181,9 @@
$ kubectl get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
broker-0-master-0 1/1 Running 0 38s 10.244.4.18 k2data-11 <none> <none>
-broker-0-replica-1-0 1/1 Running 0 38s 10.244.1.128 k2data-13 <none> <none>
+broker-0-replica-1-0 1/1 Running 0 38s 10.244.1.128 k2data-13 <none> <none>
broker-1-master-0 1/1 Running 0 38s 10.244.2.117 k2data-14 <none> <none>
-broker-1-replica-1-0 1/1 Running 0 38s 10.244.3.17 k2data-15 <none> <none>
+broker-1-replica-1-0 1/1 Running 0 38s 10.244.3.17 k2data-15 <none> <none>
name-service-0 1/1 Running 0 6m7s 192.168.130.33 k2data-13 <none> <none>
nfs-client-provisioner-7cf858f754-7vxmm 1/1 Running 0 153m 10.244.2.114 k2data-14 <none> <none>
rocketmq-operator-564b5d75d-jllzk 1/1 Running 0 8m42s 10.244.2.116 k2data-14 <none> <none>
@@ -170,17 +192,18 @@
Check the PV and PVC status:
```
$ kubectl get pvc
-NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
-broker-storage-broker-0-master-0 Bound pvc-7a74871b-c005-441a-bb15-8106566c9d19 8Gi RWO rocketmq-storage 78s
-broker-storage-broker-0-replica-1-0 Bound pvc-521e7e9a-3795-487a-9f76-22da74db74dd 8Gi RWO rocketmq-storage 78s
-broker-storage-broker-1-master-0 Bound pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c 8Gi RWO rocketmq-storage 78s
-broker-storage-broker-1-replica-1-0 Bound pvc-af266db9-83a9-4929-a2fe-e40fb5fdbfa4 8Gi RWO rocketmq-storage 78s
-namesrv-storage-name-service-0 Bound pvc-c708cb49-aa52-4992-8cac-f46a48e2cc2e 1Gi RWO rocketmq-storage 79s
+NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
+broker-storage-broker-0-master-0 Bound pvc-7a74871b-c005-441a-bb15-8106566c9d19 8Gi RWO rocketmq-storage 78s
+broker-storage-broker-0-replica-1-0 Bound pvc-521e7e9a-3795-487a-9f76-22da74db74dd 8Gi RWO rocketmq-storage 78s
+broker-storage-broker-1-master-0 Bound pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c 8Gi RWO rocketmq-storage 78s
+broker-storage-broker-1-replica-1-0 Bound pvc-af266db9-83a9-4929-a2fe-e40fb5fdbfa4 8Gi RWO rocketmq-storage 78s
+namesrv-storage-name-service-0 Bound pvc-c708cb49-aa52-4992-8cac-f46a48e2cc2e 1Gi RWO rocketmq-storage 79s
+
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
-pvc-521e7e9a-3795-487a-9f76-22da74db74dd 8Gi RWO Delete Bound default/broker-storage-broker-0-replica-1-0 rocketmq-storage 79s
+pvc-521e7e9a-3795-487a-9f76-22da74db74dd 8Gi RWO Delete Bound default/broker-storage-broker-0-replica-1-0 rocketmq-storage 79s
pvc-7a74871b-c005-441a-bb15-8106566c9d19 8Gi RWO Delete Bound default/broker-storage-broker-0-master-0 rocketmq-storage 79s
-pvc-af266db9-83a9-4929-a2fe-e40fb5fdbfa4 8Gi RWO Delete Bound default/broker-storage-broker-1-replica-1-0 rocketmq-storage 78s
+pvc-af266db9-83a9-4929-a2fe-e40fb5fdbfa4 8Gi RWO Delete Bound default/broker-storage-broker-1-replica-1-0 rocketmq-storage 78s
pvc-c708cb49-aa52-4992-8cac-f46a48e2cc2e 1Gi RWO Delete Bound default/namesrv-storage-name-service-0 rocketmq-storage 79s
pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c 8Gi RWO Delete Bound default/broker-storage-broker-1-master-0 rocketmq-storage 78s
```
@@ -193,12 +216,15 @@
```
$ cd /data/k8s/
+
$ ls
default-broker-storage-broker-0-master-0-pvc-7a74871b-c005-441a-bb15-8106566c9d19 default-broker-storage-broker-1-replica-1-0-pvc-af266db9-83a9-4929-a2fe-e40fb5fdbfa4
default-broker-storage-broker-0-replica-1-0-pvc-521e7e9a-3795-487a-9f76-22da74db74dd default-namesrv-storage-name-service-0-pvc-c708cb49-aa52-4992-8cac-f46a48e2cc2e
default-broker-storage-broker-1-master-0-pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c
+
$ ls default-broker-storage-broker-1-master-0-pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c/logs/rocketmqlogs/
broker_default.log broker.log commercial.log filter.log lock.log protection.log remoting.log stats.log storeerror.log store.log transaction.log watermark.log
+
$ cat default-broker-storage-broker-1-master-0-pvc-d7b76efe-384c-4f8d-9e8a-ebe209ba826c/logs/rocketmqlogs/broker.log
...
2019-09-10 14:12:22 INFO main - The broker[broker-1-master-0, 10.244.2.117:10911] boot success. serializeType=JSON and name server is 192.168.130.33:9876
@@ -212,13 +238,13 @@
If you want to tear down the RocketMQ cluster, to remove the broker clusters run
```
-$ kubectl delete -f deploy/crds/cache_v1alpha1_broker_cr.yaml
+$ kubectl delete -f example/rocketmq_v1alpha1_broker_cr.yaml
```
to remove the name service clusters:
```
-$ kubectl delete -f deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml
+$ kubectl delete -f example/rocketmq_v1alpha1_nameservice_cr.yaml
```
to remove the RocketMQ Operator:
diff --git a/deploy/crds/rocketmq_v1alpha1_broker_cr.yaml b/example/rocketmq_v1alpha1_broker_cr.yaml
similarity index 100%
rename from deploy/crds/rocketmq_v1alpha1_broker_cr.yaml
rename to example/rocketmq_v1alpha1_broker_cr.yaml
diff --git a/deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml b/example/rocketmq_v1alpha1_nameservice_cr.yaml
similarity index 100%
rename from deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml
rename to example/rocketmq_v1alpha1_nameservice_cr.yaml
diff --git a/install-operator.sh b/install-operator.sh
index c93b6d5..2fc7b00 100755
--- a/install-operator.sh
+++ b/install-operator.sh
@@ -24,5 +24,5 @@
echo "Wait for operator being ready..."
sleep 2
-#kubectl create -f deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml
-#kubectl create -f deploy/crds/rocketmq_v1alpha1_broker_cr.yaml
+#kubectl create -f example/rocketmq_v1alpha1_nameservice_cr.yaml
+#kubectl create -f example/rocketmq_v1alpha1_broker_cr.yaml
diff --git a/pkg/apis/rocketmq/v1alpha1/broker_types.go b/pkg/apis/rocketmq/v1alpha1/broker_types.go
index e94c7a2..9414788 100644
--- a/pkg/apis/rocketmq/v1alpha1/broker_types.go
+++ b/pkg/apis/rocketmq/v1alpha1/broker_types.go
@@ -44,6 +44,10 @@
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`
// AllowRestart defines whether allow pod restart
AllowRestart bool `json:"allowRestart"`
+ // StorageMode can be EmptyDir, HostPath, NFS
+ StorageMode string `json:"storageMode"`
+ // HostPath is the local path to store data
+ HostPath string `json:"hostPath"`
// VolumeClaimTemplates defines the StorageClass
VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates"`
}
diff --git a/pkg/apis/rocketmq/v1alpha1/nameservice_types.go b/pkg/apis/rocketmq/v1alpha1/nameservice_types.go
index b932dc5..7cb1a46 100644
--- a/pkg/apis/rocketmq/v1alpha1/nameservice_types.go
+++ b/pkg/apis/rocketmq/v1alpha1/nameservice_types.go
@@ -37,6 +37,10 @@
NameServiceImage string `json:"nameServiceImage"`
// ImagePullPolicy defines how the image is pulled.
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`
+ // StorageMode can be EmptyDir, HostPath, NFS
+ StorageMode string `json:"storageMode"`
+ // HostPath is the local path to store data
+ HostPath string `json:"hostPath"`
// VolumeClaimTemplates defines the StorageClass
VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates"`
}
diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go
index aaf7e35..ab829a6 100644
--- a/pkg/constants/constants.go
+++ b/pkg/constants/constants.go
@@ -20,7 +20,7 @@
const BrokerClusterPrefix = "broker-cluster-"
const MasterBrokerContainerNamePrefix = "broker-master"
const ReplicaBrokerContainerNamePrefix = "broker-replica"
-const MqAdminDir = "/home/rocketmq/rocketmq-4.5.0/bin/mqadmin"
+const AdminToolDir = "/home/rocketmq/rocketmq-4.5.0/bin/mqadmin"
const UpdateBrokerConfig = "updateBrokerConfig"
const ParamNameServiceAddress = "namesrvAddr"
const EnvNameServiceAddress = "NAMESRV_ADDR"
@@ -41,4 +41,9 @@
const BrokerHighAvailabilityContainerPort = 10912
const BrokerHighAvailabilityContainerPortName = "ha"
+const StorageModeNFS = "NFS"
+const StorageModeEmptyDir = "EmptyDir"
+const StorageModeHostPath = "HostPath"
+
+
diff --git a/pkg/controller/broker/broker_controller.go b/pkg/controller/broker/broker_controller.go
index c39805c..2101ce3 100644
--- a/pkg/controller/broker/broker_controller.go
+++ b/pkg/controller/broker/broker_controller.go
@@ -250,14 +250,14 @@
}
// statefulSetForBroker returns a master broker StatefulSet object
-func (r *ReconcileBroker) statefulSetForMasterBroker(m *rocketmqv1alpha1.Broker, brokerGroupIndex int) *appsv1.StatefulSet {
- ls := labelsForBroker(m.Name)
+func (r *ReconcileBroker) statefulSetForMasterBroker(broker *rocketmqv1alpha1.Broker, brokerGroupIndex int) *appsv1.StatefulSet {
+ ls := labelsForBroker(broker.Name)
var a int32 = 1
var c = &a
dep := &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
- Name: m.Name + "-" + strconv.Itoa(brokerGroupIndex) + "-master",
- Namespace: m.Namespace,
+ Name: broker.Name + "-" + strconv.Itoa(brokerGroupIndex) + "-master",
+ Namespace: broker.Namespace,
},
Spec: appsv1.StatefulSetSpec{
Replicas: c,
@@ -270,24 +270,24 @@
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{{
- Image: m.Spec.BrokerImage,
+ Image: broker.Spec.BrokerImage,
Name: cons.MasterBrokerContainerNamePrefix + strconv.Itoa(brokerGroupIndex),
- ImagePullPolicy: m.Spec.ImagePullPolicy,
+ ImagePullPolicy: broker.Spec.ImagePullPolicy,
Env: []corev1.EnvVar{{
Name: cons.EnvNameServiceAddress,
- Value: m.Spec.NameServers,
+ Value: broker.Spec.NameServers,
}, {
Name: cons.EnvReplicationMode,
- Value: m.Spec.ReplicationMode,
+ Value: broker.Spec.ReplicationMode,
}, {
Name: cons.EnvBrokerId,
Value: "0",
}, {
Name: cons.EnvBrokerClusterName,
- Value: m.Name,
+ Value: broker.Name,
}, {
Name: cons.EnvBrokerName,
- Value: m.Name + "-" + strconv.Itoa(brokerGroupIndex),
+ Value: broker.Name + "-" + strconv.Itoa(brokerGroupIndex),
}},
Ports: []corev1.ContainerPort{{
ContainerPort: cons.BrokerVipContainerPort,
@@ -301,35 +301,36 @@
}},
VolumeMounts: []corev1.VolumeMount{{
MountPath: cons.LogMountPath,
- Name: m.Spec.VolumeClaimTemplates[0].Name,
- SubPath: cons.LogSubPathName,
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ SubPath: cons.LogSubPathName,
},{
MountPath: cons.StoreMountPath,
- Name: m.Spec.VolumeClaimTemplates[0].Name,
- SubPath: cons.StoreSubPathName,
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ SubPath: cons.StoreSubPathName,
}},
}},
+ Volumes: getVolumes(broker),
},
},
- VolumeClaimTemplates: m.Spec.VolumeClaimTemplates,
+ VolumeClaimTemplates: getVolumeClaimTemplates(broker),
},
}
// Set Broker instance as the owner and controller
- controllerutil.SetControllerReference(m, dep, r.scheme)
+ controllerutil.SetControllerReference(broker, dep, r.scheme)
return dep
}
// statefulSetForBroker returns a replica broker StatefulSet object
-func (r *ReconcileBroker) statefulSetForReplicaBroker(m *rocketmqv1alpha1.Broker, brokerGroupIndex int, replicaIndex int) *appsv1.StatefulSet {
- ls := labelsForBroker(m.Name)
+func (r *ReconcileBroker) statefulSetForReplicaBroker(broker *rocketmqv1alpha1.Broker, brokerGroupIndex int, replicaIndex int) *appsv1.StatefulSet {
+ ls := labelsForBroker(broker.Name)
var a int32 = 1
var c = &a
dep := &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
- Name: m.Name + "-" + strconv.Itoa(brokerGroupIndex) + "-replica-" + strconv.Itoa(replicaIndex),
- Namespace: m.Namespace,
+ Name: broker.Name + "-" + strconv.Itoa(brokerGroupIndex) + "-replica-" + strconv.Itoa(replicaIndex),
+ Namespace: broker.Namespace,
},
Spec: appsv1.StatefulSetSpec{
Replicas: c,
@@ -342,24 +343,24 @@
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{{
- Image: m.Spec.BrokerImage,
+ Image: broker.Spec.BrokerImage,
Name: cons.ReplicaBrokerContainerNamePrefix + strconv.Itoa(brokerGroupIndex),
- ImagePullPolicy: m.Spec.ImagePullPolicy,
+ ImagePullPolicy: broker.Spec.ImagePullPolicy,
Env: []corev1.EnvVar{{
Name: cons.EnvNameServiceAddress,
- Value: m.Spec.NameServers,
+ Value: broker.Spec.NameServers,
}, {
Name: cons.EnvReplicationMode,
- Value: m.Spec.ReplicationMode,
+ Value: broker.Spec.ReplicationMode,
}, {
Name: cons.EnvBrokerId,
Value: strconv.Itoa(replicaIndex),
}, {
Name: cons.EnvBrokerClusterName,
- Value: m.Name,
+ Value: broker.Name,
}, {
Name: cons.EnvBrokerName,
- Value: m.Name + "-" + strconv.Itoa(brokerGroupIndex),
+ Value: broker.Name + "-" + strconv.Itoa(brokerGroupIndex),
}},
Ports: []corev1.ContainerPort{{
ContainerPort: cons.BrokerVipContainerPort,
@@ -373,26 +374,67 @@
}},
VolumeMounts: []corev1.VolumeMount{{
MountPath: cons.LogMountPath,
- Name: m.Spec.VolumeClaimTemplates[0].Name,
- SubPath: cons.LogSubPathName,
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ SubPath: cons.LogSubPathName,
},{
MountPath: cons.StoreMountPath,
- Name: m.Spec.VolumeClaimTemplates[0].Name,
- SubPath: cons.StoreSubPathName,
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ SubPath: cons.StoreSubPathName,
}},
}},
+ Volumes: getVolumes(broker),
},
},
- VolumeClaimTemplates: m.Spec.VolumeClaimTemplates,
+ VolumeClaimTemplates: getVolumeClaimTemplates(broker),
},
}
// Set Broker instance as the owner and controller
- controllerutil.SetControllerReference(m, dep, r.scheme)
+ controllerutil.SetControllerReference(broker, dep, r.scheme)
return dep
}
+func getVolumeClaimTemplates(broker *rocketmqv1alpha1.Broker) []corev1.PersistentVolumeClaim{
+ switch broker.Spec.StorageMode {
+ case cons.StorageModeNFS:
+ return broker.Spec.VolumeClaimTemplates
+ case cons.StorageModeEmptyDir:
+ fallthrough
+ case cons.StorageModeHostPath:
+ fallthrough
+ default:
+ return nil
+ }
+}
+
+func getVolumes(broker *rocketmqv1alpha1.Broker) []corev1.Volume {
+ switch broker.Spec.StorageMode {
+ case cons.StorageModeNFS:
+ return nil
+ case cons.StorageModeEmptyDir:
+ volumes := []corev1.Volume{{
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ VolumeSource: corev1.VolumeSource{
+ EmptyDir: &corev1.EmptyDirVolumeSource{
+
+ }},
+ }}
+ return volumes
+ case cons.StorageModeHostPath:
+ fallthrough
+ default:
+ volumes := []corev1.Volume{{
+ Name: broker.Spec.VolumeClaimTemplates[0].Name,
+ VolumeSource: corev1.VolumeSource{
+ HostPath: &corev1.HostPathVolumeSource{
+ Path: broker.Spec.HostPath,
+ }},
+ }}
+ return volumes
+ }
+}
+
// labelsForBroker returns the labels for selecting the resources
// belonging to the given broker CR name.
func labelsForBroker(name string) map[string]string {
diff --git a/pkg/controller/nameservice/nameservice_controller.go b/pkg/controller/nameservice/nameservice_controller.go
index a3278ea..5395771 100644
--- a/pkg/controller/nameservice/nameservice_controller.go
+++ b/pkg/controller/nameservice/nameservice_controller.go
@@ -205,7 +205,7 @@
return reconcile.Result{Requeue: true}, err
}
- mqAdmin := cons.MqAdminDir
+ mqAdmin := cons.AdminToolDir
subCmd := cons.UpdateBrokerConfig
key := cons.ParamNameServiceAddress
@@ -234,6 +234,44 @@
}
}
+func getVolumeClaimTemplates(nameService *rocketmqv1alpha1.NameService) []corev1.PersistentVolumeClaim{
+ switch nameService.Spec.StorageMode {
+ case cons.StorageModeNFS:
+ return nameService.Spec.VolumeClaimTemplates
+ case cons.StorageModeEmptyDir, cons.StorageModeHostPath:
+ fallthrough
+ default:
+ return nil
+ }
+}
+
+func getVolumes(nameService *rocketmqv1alpha1.NameService) []corev1.Volume {
+ switch nameService.Spec.StorageMode {
+ case cons.StorageModeNFS:
+ return nil
+ case cons.StorageModeEmptyDir:
+ volumes := []corev1.Volume{{
+ Name: nameService.Spec.VolumeClaimTemplates[0].Name,
+ VolumeSource: corev1.VolumeSource{
+ EmptyDir: &corev1.EmptyDirVolumeSource{
+
+ }},
+ }}
+ return volumes
+ case cons.StorageModeHostPath:
+ fallthrough
+ default:
+ volumes := []corev1.Volume{{
+ Name: nameService.Spec.VolumeClaimTemplates[0].Name,
+ VolumeSource: corev1.VolumeSource{
+ HostPath: &corev1.HostPathVolumeSource{
+ Path: nameService.Spec.HostPath,
+ }},
+ }}
+ return volumes
+ }
+}
+
func getNameServers(pods []corev1.Pod) []string {
var nameServers []string
for _, pod := range pods {
diff --git a/purge-operator.sh b/purge-operator.sh
index 5c3091f..81c75d0 100755
--- a/purge-operator.sh
+++ b/purge-operator.sh
@@ -16,8 +16,8 @@
# limitations under the License.
echo "Stopping RocketMQ-Operator..."
-#kubectl delete -f deploy/crds/rocketmq_v1alpha1_broker_cr.yaml
-#kubectl delete -f deploy/crds/rocketmq_v1alpha1_nameservice_cr.yaml
+#kubectl delete -f example/rocketmq_v1alpha1_broker_cr.yaml
+#kubectl delete -f example/rocketmq_v1alpha1_nameservice_cr.yaml
kubectl delete -f deploy/operator.yaml
kubectl delete -f deploy/role_binding.yaml