apache / rocketmq-operator

Apache RocketMQ Operator
https://rocketmq.apache.org/
Apache License 2.0
308 stars 126 forks source link

[ISSUE #184 #192] support plain acl configration #200

Open drivebyer opened 7 months ago

drivebyer commented 7 months ago

What is the purpose of the change

192 #184

Brief changelog

Verifying this change

  1. apply follow yaml:

    
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: broker-config
    data:
    # BROKER_MEM sets the broker JVM, if set to "" then Xms = Xmx = max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
    BROKER_MEM: " -Xms2g -Xmx2g -Xmn1g "
    broker-common.conf: |
    # brokerClusterName, brokerName, brokerId are automatically generated by the operator and do not set it manually!!!
    deleteWhen=04
    fileReservedTime=48
    flushDiskType=ASYNC_FLUSH
    # set brokerRole to ASYNC_MASTER or SYNC_MASTER. DO NOT set to SLAVE because the replica instance will automatically be set!!!
    brokerRole=ASYNC_MASTER
    # set aclEnable to true to enable ACL, and set plain_acl.yml to configure ACL
    aclEnable=true
    
    plain_acl.yml: |
    globalWhiteRemoteAddresses:
    accounts:
      - accessKey: RocketMQ
        secretKey: 12345678
        whiteRemoteAddress:
        admin: false
        defaultTopicPerm: DENY
        defaultGroupPerm: SUB
        topicPerms:
          - TopicTest=PUB
        groupPerms:
          # the group should convert to retry topic
          - oms_consumer_group=DENY

apiVersion: rocketmq.apache.org/v1alpha1 kind: Broker metadata:

name of broker cluster

name: broker spec: clusterMode: CONTROLLER

size is the number of the broker cluster, each broker cluster contains a master broker and [replicaPerGroup] replica brokers.

size: 1

nameServers is the [ip:port] list of name service

nameServers: ""

replicaPerGroup is the number of each broker cluster

replicaPerGroup: 1

brokerImage is the customized docker image repo of the RocketMQ broker

brokerImage: ghcr.m.daocloud.io/ksmartdata/rocketmq-broker:v5.1.4

imagePullPolicy is the image pull policy

imagePullPolicy: Always

resources describes the compute resource requirements and limits

resources: requests: memory: "2048Mi" cpu: "250m" limits: memory: "12288Mi" cpu: "500m"

allowRestart defines whether allow pod restart

allowRestart: true

storageMode can be EmptyDir, HostPath, StorageClass

storageMode: StorageClass

hostPath is the local path to store data

hostPath: /data/rocketmq/broker

scalePodName is [Broker name]-[broker group number]-master-0

scalePodName: broker-0-0-0

env defines custom env, e.g. BROKER_MEM

env:

  1. execute command on nameserver

    截屏2024-03-13 15 03 37
  2. modify the tools.yaml

    截屏2024-03-13 15 06 04
  3. execute the same command on nameserver

    截屏2024-03-13 15 06 40
drivebyer commented 7 months ago

PTAL @caigy