모든 청소 schema-aware를 만드십시오; kamo에는 714 테이블이 없습니다, 680
Table schema='public'에 대한 Cross-checking SHOW BACKUP (714 객체) 재고 (680) 노출 34 테이블 생활 5 다른 스키마: 이메일 metadata, email provider, email campaign, kamotokens, meet pro...
CockroachDB에 대한 기본 캡처 YugabyteDB parity 검사
2개의 통행: 싼 배치된 조사 (*), 그 후에 순서 독립 checksum. checksum의 합계 per-row md5 hashes as integers 오히려 명백한 md5(string agg(h ORDER by h). 둘 다 순서 의존합니다, 그러나 string agg geoli...
CockroachDB에 대한 기본 캡처 YugabyteDB parity 검사
2개의 통행: 싼 배치된 조사 (*), 그 후에 순서 독립 checksum. checksum의 합계 per-row md5 hashes as integers 오히려 명백한 md5(string agg(h ORDER by h). 둘 다 순서 의존합니다, 그러나 string agg geoli...
CockroachDB의 YugabyteDB 마이그레이션 계획
15 작업. 두 개의 문은 언젠가 전에 앉아 : 작업 5는 증명 백업 실제로 복원 및 작업 10 diffs KamoInitializer- 내장 살고있는 사람에 대한 스키마, so entity drift 표면 계획 시간 그러나 부족.
CockroachDB의 YugabyteDB 마이그레이션 계획
15 작업. 두 개의 문은 언젠가 전에 앉아 : 작업 5는 증명 백업 실제로 복원 및 작업 10 diffs KamoInitializer- 내장 살고있는 사람에 대한 스키마, so entity drift 표면 계획 시간 그러나 부족.
CockroachDB를 YugabyteDB 마이그레이션 설계
측정된 현재 상태를 기록하십시오 (3.4 GB, 791 테이블, 671 FKs, ~30 소비자), 5개의 디자인 결정 및 cutover 순서. 모양 두 가지 발견 : 520 열 기본적으로 unique rowid(), YSQL은 동일하지 않습니다, 그래서 순서 백업 shim은 모든 것을...
60s 엔트리 포인트 읽기 타임 아웃 캡핑 업로드
responseingTimeouts.readTimeout은 WHOLE 요청, 신체를 읽는 마감일입니다. 포함, 및 Traefik v3는 v2가 제한이없는 60s에 기본적으로. 그 런치 1 분에 맞는 플랫폼에서 모든 업로드를 캡핑했습니다. 채팅 첨부 이제 3 GiB로 이동합니다. 기본적으...
나머지 hostPath workloads를 노드에 핀으로 연결
Repo의 각 hostPath 볼륨 감사에 의해 발견 된 embedding-model와 같은 오류. · hostPath는 node-local이고 아무것도 복제하지 않습니다. 그래서 unpinned pod는 어디에 계획될 수 있습니다. 그것의 자료는 아닙니다. 모든 4 이동 또는 k3m1...
Pin to the node 그 모델 무게는 실제로
모형은 k1m1에 /var/lib/embedding-model의 밑에 hostPath이고, 그것을 복제하지 않습니다. k3m1이 합류할 때, 새로운 ReplicaSet의 팟이 예정되어 결코 시작되지 않았습니다. 37 일 containerCreating에서, 26,617은 "hostPat...
두 maildirs의 사서함 분할에서 passdb를 중지
password query는 %Lu-lowercased를 초과하는 user`로 `email을 반환했습니다. 열의 저장된 케이싱으로 로그인 이름. user query 그런 다음 %n을 곱했습니다. renamed 사용자 이름, 그래서 IMAP는 /var/mail/vhosts/<d>/Gera...
STUN은 잘못된 노드에 응답, 그래서 kamocrm.com:3478 죽은
coturn은 nodeSelector가 없는 hostNetwork이므로 k3m1에 예약되었습니다. (공유 47.181.8.87). 자체 --external-ip, 모든 클라이언트의 `stun:kamocrm.com:3478`, 47.181.8.84의 포인트 — k1m1. UDP/3478는...
Bridge는 개인 얼음 후보 만 광고했습니다. - 35 일 동안 만나지 않았습니다
다리는 35 일 동안 하나의 얼음 연결이 완료되지 않았습니다. 상승 (0 성공, 18 종료). 모든 회의는 XMPP 벌금에 합류 그리고 그 후에 클라이언트가 포기하고 보여주기까지 오디오 또는 영상 없이 "Something이 잘못되었습니다". 원인: Meet/jvb's own /etc/...
수명 조사는 결코 통과 할 수 없었다 - 35 일에서 920 재시작의 원인
뿌리 원인: 생동감 조사는 `tcpSocket: 포트 10000`, 하지만 Scylla의 REST API tcpSocket probe가 POD를 다이얼하면서 api address 127.0.0.1 (its default)에 바인딩합니다. IP. 컨테이너 내부에서 검증된 - /proc/n...
대신 배포 서비스를 통해 ScyllaDB 관리
scylladb/는 완전한 표시를 개최하지만 배포 단계가 없었다 — 댓글은 말했다 데이터 dir /mnt/backup/scylla이기 때문에 "16TB 드라이브 스왑 이후 배포 된 MANUALLY 먼저 k1m1에 물리적으로 있어야 한다. 그 조건은 충족: 드라이브는 k1m1에 Scyll...
전체 reconciles를 활성화하기 전에 라이브로 드리프트
전체 reconcile가 적용 된 것을 감사하는 두 가지 징후가 무시했다. 그(것)들을 re-applying 하는 클러스터에서 충분히 이젠 그만은 정전을 일으키는 원인이 될 것입니다: 문서 / 배포.yaml - 이미지는 k0m1:5000에, 영원하게 은퇴한 등록상. 지원하다 Image...
이름 클러스터 ratetack-scylla -> kamo-scylla, 올바른 소유권 docs
이 인스턴스는 kamo의: 그것은 `kamouniverse` keyspace (read/written by)를 다시 **************** scylladb-direct ExternalName을 통해 `audit` 키 스페이스. `ratestack-` 클러스터 이름은 이전부터 재산...
Scale Ratetack MySQL에서 0으로 백업 작업을 중단
Ratetack 부동산은 무료 클러스터 리소스로 찢어졌습니다. 카테고리 클러스터 서비스 MySQL 인스턴스는 ratetack만 제공합니다 (kamo 그리고 메일은 각각 자신의 실행), 그래서 0과 그 밤의 백업에 스케일 CronJob는 중단했습니다. 데이터는 k1m1 hostPath에 ...
모든 로그인을 차단하는 avatar-resolver 정책을 중지
이 정책은 시간 동안 전체 플랫폼의 로그인 오프라인을했습니다. Cilium은 RESOLVED BACKEND에 대한 승인, 서비스 DNAT 후, 그래서 포트는 pod의 TargetPort이며 ClusterIP의 포트가 없습니다. 더 보기 {6379, 80, 8080}의 클러스터 수당 (...
CiliumNetworkPolicy로 아바타 결심자에 대한 Egress 포함
Reinstates 무엇 8f6c672 reverted, 실제로 작동 유일한 형태로. 일반 NetworkPolicy가 이것을 표현할 수 없기 때문에 이전 시도가 실패했습니다. 클러스터의 topology. SecurityService의 4가지 중요한 의존성 노드는 파드 네트워크에서 아닙...
Avatar-resolver egress 정책 삭제
06db7db에 추가된 정책을 재생하고 24f76ae에서 패치. 그것은했다 생산에서 약 6 분 동안 보안 서비스 (팟 0/1, Hikari 연결 dying, 1개의 liveness 재시작) 및 복구 서비스에 제거되었습니다. 실수는 파드에 대한 클러스터 의존성 해결을 assuming했다...
아바타 결의자에서 탈출을 포함; Redis eviction 풀에주의
SecurityService는 이제 타깃 URL을 무수히 선택한 fetcher를 실행합니다. party — BIMI 레코드는 전송 도메인을 소유한 사람에 의해 간행된 DNS 내용입니다. 그리고 누구도 전송 도메인이 열렬한 이메일을 통해. 이 클러스터에서 아무것도 그런 요청이 갈 수있는 ...
주된 기계는 VNC (x11vnc), RDP 아닙니다를 이용합니다
KRdp/RDP는 Guacamole과 호환이 됩니다: guacd에는 RDP Graphics Pipeline (EGFX)이 없고 KRdp는 H.264 전용이며, 연결이 인증되었지만 GRAPHICS SUBSYSTEM FAILED로 사망했습니다. 플라즈마 X11 세션에서 X11vnc에 의해 ...
Guacamole에 "Master Machine"(kamo-dev-1) RDP 장치 추가
Local Kubuntu 워크스테이션은 KRdp를 통해 RDP를 통해 라이브 플라즈마/웨이랜드 세션을 공유합니다. idempotent bootstrap SQL 연결 추가 (192.168.4.46:3389, sage/shared pw, security=any, 무시-cert, 색 심도 2...
V24.2.4에 핀 CockroachDB는 v24.3 no-license txn throttle을 피하기 위해
v24.3 (과 24.2.5+) 새로운 CockroachDB 소프트웨어 라이센스를 시행; 없음 라이센스 키 클러스터 스로틀 5 동시 개방 거래 클러스터 v24.3.33 이미지 범프 (2026-06-30)는 플랫폼 전체를 발생 만료된 30일의 은혜 기간이 만료될 때 2026-07-26에 ...
Pin RDP 색깔 심도 + reap xrdp 회의 그래서 신은 1개의 데스크탑을 재사용합니다
xrdp 0.9.24 키 세션 <user,bpp> (Policy=default) 및 결코 다시 aps 분리된 것 (KillDisconnected=false, DisconnectedTimeLimit=0). RDP 사용자 항상 sage이지만 색 심도가 비싸지 않았으므로 협상 된 bpp를 로...
종료/오판된 비밀 shadowing live per-host certs
update tls store()는 일반 비밀 목록에서 TLSStore를 다시 만들어 버킷 이름 접두사 및 유형에서만, 인증서가 여전히 소유 한 확인 비밀과 notAfter의 체크. wildcard-kamocrm-com은 make host certificate()가 다시 지정되었을 때...
Explicit 우선 순위 그래서 OTA 업데이트 경로는 일반 테마 경로에 승리
Traefik는 규칙 문자열 길이에 의해 순위; 일반 /public / 테마 경로는 더 길다, 그래서 expo-updates 헤더 주입 결코 ran. 우선 순위:100000 승리.
Self-hosted expo-updates headers for Mobile Copilot OTA
expo-protocol-version:1 + expo-sfv-version:0 응답 헤더 그 expo-updates 클라이언트는 필요로 하고 정체되는 MinIO는 방출할 수 없습니다. 더 긴 경로 prefix는 일반 /public / 테마 경로에 승리합니다.
Api.*를 통해 AIService /ws/ai-chat를 노출시키세요
IngressRoute (priority 100, websecure, ws-upgrade 미들웨어 산 압축) 경로 wss://api.<domain>/ws/ai-chat to kamowsai-service:80 — 같은 패턴 미디어.* WS 노선. Auth stays ?token=<***...
Guacamole 메모리를 올려 1Gi→2Gi OOM 중간 RDP-session
톰캣 webapp idles ~ 800Mi 근처, 그래서 1Gi 천장은 거의 없다 헤드룸. RDP 세션을 열고 1Gi와 컨테이너에 RSS를 밀어 OOMKilled (exit 137) 중간 소유, 브라우저 터널을 눈물 and surfacing Guacamole's generic "an 오...
Config가 변경된 컴포넌트만 배포합니다. 불필요하게 다시 설치하지 마십시오
deploy-services.yml re-applied 모든 서비스 및 재설치 클러스터 연산자 (cert-manager, KubeVirt, CDI - 600s 대기) 각 푸시에서 메인으로, 그래서 하나의 라인 rspamd 변경은 ~50min 전체 클러스터 재설치를 트리거. - "Det...
MinIO FUSE 마운트를 로컬 디스크로 이동
rspamd의 /var/lib/rspamd는 rclone FUSE 산에 의해 hostPath 백업되었습니다 MinIO 공유 파일 물통. 모든 hyperscan recompile /지도 새로 고침 rewrote 파일, orphaning 지우기 데이터 부품 및 Wedging MinIO ~1...
/dev/shm 2Gi (헤드리스 크롬 필요 >=2GB) + 6Gi mem 한계
Jibri 's 10-config init aborts 와 '/dev/shm 해야 적어도 2GB' shm 이다 512Mi, 기록병 충돌. tmpfs를 2Gi 및 메모리 제한으로 밀어 그것을 적합하는 6Gi. 이것은 왜 지브리가 실제로 실행되지 않았습니다.
대회 - secrets **************** 지브리 레코딩 ingest
Jibri finalize.sh는 MediaService에 기록 업로드를 인증; 일치 cluster *** value MediaService가 유효하다.
독립적으로 확장 가능 (HPA, 멀티 노드)
단일 노드 핀을 제거하고 per-pod 모델 캐시로 전환하십시오. 그래서 pods는 할 수 있습니다. 노드의 일정은 HPA (min 1 / max 4, CPU 75%, deliberate Scale-up 주어진 느린 모형 찬 별). whisper-asr는 공유된 transcription...
Rebrand Guacamole 클라이언트 연결 상태 텍스트 KamoDesktop
더 보기 *********** 그래서 'Guacamole에 연결 ...'화면 (및 관련 상태)은 KamoDesktop을 읽습니다.
Correct Guacamole 브랜딩 현 버전 필드
Manifest 사용된 guacManifestVersion:1.0; 묶인 연장 사용 guacamoleVersion. 잘못 된 필드는 Guacamole이 브랜딩 확장을 거부합니다 ('읽을 수없는 확장). guacamoleVersion 사용: 1.5.5.
Prosody Moderator 모듈, whisper-asr, 지브리 기록 업로드
- Meet-prosody : 버전 제어 사용자 정의 플러그인 ConfigMap (캡쳐스 기존의 token verification no-op override는 out-of-band를 만들었습니다. canonical mod token moderation 모듈을 추가하여 활성화 ******...
Enable Guacamole json-auth SSO + KamoDesktop 브랜드
- JSON SECRET KEY (선택 사항) 공유 데스크톱 sso 비밀에서 guacamole에서 번들 guacamole-auth-json 확장 신 SSO 링크에 대한 검증. - kamo-branding extension (title=KamoDesktop, kamocrm 로고 + fav...
KamoDesktop 신 SSO 아이콘 디자인 사양 + Guacamole rebrand
두 개의 신 전용 nav 아이콘 (Linux / Windows) kamo-internal에서 Guacamole을 엽니 다 SecurityService (god-eligible gate), 각 인스턴스로 바로 연결됩니다. KamoDesktop (title/logo/favicon)에 상표 ...
팟 네트워크 (MTU 수정) + unicast WoL에 guacd 이동
hostNetwork (k1m1 eno49 MTU 1500) 대 guacamole pod on cilium 오버레이 (MTU 1420) : RDP 연결되었지만 대형 프레임은 경계를 가로 질러 떨어졌다 -> 'Guacamole 프로토콜 위반' -> BOTH 연결에서 클라이언트 타임 아웃....
IngressRoutes에 대한 데스크탑 네임스페이스 보기
데스크탑.kamocrm.com IngressRoute는 데스크톱 ns에 살고 있지만 Traefik의 CRD 공급자는 단지 감시했습니다 *********** — 이렇게 노선 무시하고 요청은 kamo-nowww로 떨어졌다. 바탕 화면을 watched에 추가 네임스페이스.
Filesystem로 가져 오기 VM 디스크, 블록이 아닌
CDI의 블록 importer 충돌: 'blockdev: 열 수 없습니다 /dev/cdi-block-volume: Permission denied' — 그것은 익지않는 Longhorn 구획 장치에 접근할 수 없습니다. 파일시스템 volumeMode는 disk.img로 클라우드 이미지를 ...
Correct KubeVirt VM 클라우드 입력 필드 + spec을 현대화
- cloudInitNoCloud userdata secret 필드는 'secretRef' (UserDataSecretRef); KubeVirt v1.8.4 잘못된 필드를 실행 -> 'must는 적어도 하나의 userdatasource' - runStrategy : 항상 deprecat...
경화 KubeVirt 원격 데스크톱 + Guacamole 게이트웨이
배포 워크플로를 통해 전체 원격 데스크톱 스택을 추가합니다. - KubeVirt + CDI는 배치 시간에 설치 (pinned-stable release URL) - 데스크탑 1 : 쿠분투 24.04 VM, 8 vCPU / 16Gi / 500Gi Longhorn 구획 디스크, masqu...
강화된 KubeVirt 먼 탁상용 + Guacamole 출입구를 위한 디자인 spec
KubeVirt Kubuntu VM (16Gi/500Gi Longhorn) 아파치 Guacamole HTML5 뒤에, Traefik을 통해 desktop.kamocrm.com에 노출 (TLS + 속도 제한 + IP-ban). Guacamole native Wake-on-LAN을 사용하여...
Proactively 제공 브라우저 전용 별칭 (media.*)
Log-scan discovery 메커니즘은 `media`alias: it를 부팅 할 수 없습니다. WebSocket/XHR 하위 리소스에 대한 브라우저에 의해서만 연락 (SockJS /ws/info는 softphone/chat/sms/realtime 걸이에서). cert 없이, 브라우...
Provision SOCIAL MESSAGES 제트 스트림 스트림 (social.inbound.>, social.lead.>) 소셜 미디어 인바운드 파이프라인 R1
Provision R1 MEDIA JetStream 스트림 via idempotent 부츠 스트랩 작업
Media/lead-feed 이벤트 (media.feed.*, media.post.*)는 JetStream이 없었다 스트림, 그래서 게시는 '503 요청시 사용할 수있는 응답자 없음' (chat.>는 CHAT MESSAGES에 의해 덮여있다; 미디어.> 아무것도 덮었다). NATS는 ...
노드 구성(k1m1-runner): 레코드 data.forgejo.org IPv4 핀 + Capacity=6
문서의 살아있는 on-node 변경: 자료. forgejo.org는 IPv6 전용이며 k1m1은 없습니다. IPv6 경로, 그래서 작업 컨테이너 hung ~133s 및 작업 / 체크 아웃 실패. 그것의 IPv4 핀 (188.40.16.47) --add-host, 일치 /etc/forge...