++
This commit is contained in:
parent
8905e3fab4
commit
3612f582a8
67
apps/message-hub/wb/kafka-config-configmap.yaml
Normal file
67
apps/message-hub/wb/kafka-config-configmap.yaml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: kafka-config
|
||||||
|
namespace: message-hub
|
||||||
|
data:
|
||||||
|
kafka.py: |
|
||||||
|
from ssl import SSLContext
|
||||||
|
|
||||||
|
import ssl
|
||||||
|
|
||||||
|
from aiokafka.helpers import create_ssl_context
|
||||||
|
from faststream.kafka import KafkaBroker
|
||||||
|
from faststream.security import BaseSecurity, SASLPlaintext, SASLScram512
|
||||||
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||||
|
|
||||||
|
|
||||||
|
class KafkaSettings(BaseSettings):
|
||||||
|
HOST: str = 'localhost'
|
||||||
|
PORT: int = 9092
|
||||||
|
USERNAME: str | None = None
|
||||||
|
PASSWORD: str | None = None
|
||||||
|
SECURITY_PROTOCOL: str = 'PLAINTEXT'
|
||||||
|
SASL_MECHANISM: str | None = None
|
||||||
|
SSL_CAFILE: str | None = None
|
||||||
|
|
||||||
|
model_config = SettingsConfigDict(env_prefix='KAFKA_', env_file='.env', extra='ignore')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def bootstrap_servers(self) -> list[str]:
|
||||||
|
return [f'{self.HOST}:{str(self.PORT)}']
|
||||||
|
|
||||||
|
def get_ssl_context(self) -> SSLContext:
|
||||||
|
context = create_ssl_context(cafile=self.SSL_CAFILE)
|
||||||
|
context.check_hostname = False
|
||||||
|
context.verify_mode = ssl.CERT_NONE
|
||||||
|
return context
|
||||||
|
|
||||||
|
def get_security(self) -> BaseSecurity | None:
|
||||||
|
use_ssl = self.SECURITY_PROTOCOL in ('SSL', 'SASL_SSL')
|
||||||
|
ssl_context = self.get_ssl_context() if use_ssl else None
|
||||||
|
if self.SASL_MECHANISM == 'PLAINTEXT':
|
||||||
|
return SASLPlaintext(
|
||||||
|
username=self.USERNAME or '',
|
||||||
|
password=self.PASSWORD or '',
|
||||||
|
ssl_context=ssl_context,
|
||||||
|
use_ssl=use_ssl,
|
||||||
|
)
|
||||||
|
if self.SASL_MECHANISM == 'SCRAM-SHA-512':
|
||||||
|
return SASLScram512(
|
||||||
|
username=self.USERNAME or '',
|
||||||
|
password=self.PASSWORD or '',
|
||||||
|
ssl_context=ssl_context,
|
||||||
|
use_ssl=use_ssl,
|
||||||
|
)
|
||||||
|
if use_ssl:
|
||||||
|
return BaseSecurity(ssl_context=ssl_context)
|
||||||
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def broker(self) -> KafkaBroker:
|
||||||
|
return KafkaBroker(
|
||||||
|
bootstrap_servers=self.bootstrap_servers,
|
||||||
|
security=self.get_security(),
|
||||||
|
logger=None,
|
||||||
|
)
|
||||||
@ -4,4 +4,5 @@ kind: Kustomization
|
|||||||
namespace: message-hub
|
namespace: message-hub
|
||||||
resources:
|
resources:
|
||||||
- kafka-cert-configmap.yaml
|
- kafka-cert-configmap.yaml
|
||||||
|
- kafka-config-configmap.yaml
|
||||||
- message-hub.yaml
|
- message-hub.yaml
|
||||||
|
|||||||
@ -94,6 +94,21 @@ spec:
|
|||||||
name:
|
name:
|
||||||
_default: kafka-cert
|
_default: kafka-cert
|
||||||
|
|
||||||
|
- name: kafka-config-volume
|
||||||
|
mountPath:
|
||||||
|
_default: /opt/src/config/kafka.py
|
||||||
|
subPath:
|
||||||
|
_default: kafka.py
|
||||||
|
readOnly:
|
||||||
|
_default: true
|
||||||
|
configMap:
|
||||||
|
name:
|
||||||
|
_default: kafka-config
|
||||||
|
items:
|
||||||
|
- key: kafka.py
|
||||||
|
path:
|
||||||
|
_default: kafka.py
|
||||||
|
|
||||||
envs:
|
envs:
|
||||||
- name: WORKER_TIMEOUT
|
- name: WORKER_TIMEOUT
|
||||||
value:
|
value:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user