Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
1 line
48 KiB
JSON
1 line
48 KiB
JSON
{"repo": "antoniolago/lag0-fleet-manifests", "files": {"hermes-ton/hermes/deployment.yaml": {"2c1402e1eda0d6506d9372236d9045765d2c62db": {"t": 1785745230.1920023, "n": 3597, "h": "3a87938d030da9b3", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config (sempre, pode mudar via ConfigMap)\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl apenas se não existir\n if [ ! -x /opt/data/kubectl ]; then\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n fi\n # Regenera kubeconfig (token do SA pode rotacionar)\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 100m\n memory: 128Mi\n ephemeral-storage: 512Mi\n limits:\n cpu: 500m\n memory: 512Mi\n ephemeral-storage: 1Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "6860462afc5ec7f35015cc0f7fd89aeb7e81c4ee": {"t": 1785748967.8889277, "n": 3597, "h": "3a87938d030da9b3", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config (sempre, pode mudar via ConfigMap)\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl apenas se não existir\n if [ ! -x /opt/data/kubectl ]; then\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n fi\n # Regenera kubeconfig (token do SA pode rotacionar)\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 100m\n memory: 128Mi\n ephemeral-storage: 512Mi\n limits:\n cpu: 500m\n memory: 512Mi\n ephemeral-storage: 1Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "1cc8629f58a238b1af3616f3aa03f8bfb567ecab": {"t": 1785748968.9418416, "n": 3594, "h": "ecaf2dc2cfd0aecf", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config (sempre, pode mudar via ConfigMap)\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl apenas se não existir\n if [ ! -x /opt/data/kubectl ]; then\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n fi\n # Regenera kubeconfig (token do SA pode rotacionar)\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "1929bf80b3166de6b5f0e1e7b955337b2ebabf65": {"t": 1785748970.0510108, "n": 3697, "h": "39239c267ab76d1e", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config (sempre, pode mudar via ConfigMap)\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl apenas se não existir\n if [ ! -x /opt/data/kubectl ]; then\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n fi\n # Regenera kubeconfig (token do SA pode rotacionar)\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "b19ef2ddce060b8a6b33deb7429b8d71ec96bcda": {"t": 1785748971.1397347, "n": 3566, "h": "2bdd2c33954326db", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n # Generate kubeconfig from in-cluster SA\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "d809ce0f8098311c1cb8d1745edc45f82b1718c0": {"t": 1785748972.2278156, "n": 3492, "h": "6908824b22cfd5fd", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: bitnami/kubectl:1.36\n command:\n - sh\n - -c\n - |\n cp /config-source/config.yaml /opt/data/config.yaml\n # Copy kubectl binary for the main container\n cp /usr/bin/kubectl /opt/data/kubectl\n # Generate kubeconfig from in-cluster SA\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "248872a31ba445c6ff964c336de2d63063c6f5de": {"t": 1785748974.3366916, "n": 3501, "h": "d9dc0fc18aaa8e36", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: bitnami/kubectl:1.36\n command:\n - sh\n - -c\n - |\n cp /config-source/config.yaml /opt/data/config.yaml\n # Copy kubectl binary for the main container\n cp /usr/bin/kubectl /opt/data/kubectl\n # Generate kubeconfig from in-cluster SA\n export KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\n export KUBE_CA=$(base64 -w0 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "bf4586a877bd81e716fd46f836796a16b8f1ceb2": {"t": 1785748975.5943637, "n": 2479, "h": "499a60bab04a394f", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - cp /config-source/config.yaml /opt/data/config.yaml\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n # args fica APÓS o entrypoint do s6-overlay (/init main-wrapper.sh)\n # O wrapper vê \"hermes\" como executável → exec hermes gateway run\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}, "9ae3d509375ec8e04f2eca67a59f55327bf9bf60": {"t": 1785748976.651724, "n": 2436, "h": "4e677fa19e154f0c", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n tolerations:\n - key: node-role.kubernetes.io/control-plane\n operator: Exists\n effect: NoSchedule\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - cp /config-source/config.yaml /opt/data/config.yaml\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n # args fica APÓS o entrypoint do s6-overlay (/init main-wrapper.sh)\n # O wrapper vê \"hermes\" como executável → exec hermes gateway run\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n emptyDir: {}\n"}, "c3f6b577cf86c26b962fc400e22eb5633105901c": {"t": 1785748977.7378457, "n": 2314, "h": "03877d4e0bc7e09c", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n tolerations:\n - operator: Exists # tolerate all taints (disk-pressure, control-plane)\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - cp /config-source/config.yaml /opt/data/config.yaml\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n # args fica APÓS o entrypoint do s6-overlay (/init main-wrapper.sh)\n # O wrapper vê \"hermes\" como executável → exec hermes gateway run\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n ephemeral-storage: 1Gi\n limits:\n cpu: 1000m\n memory: 1Gi\n ephemeral-storage: 2Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n emptyDir: {}\n"}, "32eb6959654ed8a1ee94142f72eb7f6561d076e0": {"t": 1785748978.8095753, "n": 2223, "h": "5c59029503857c05", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n nodeSelector:\n kubernetes.io/hostname: ton-cluster-k8s-worker-1\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - cp /config-source/config.yaml /opt/data/config.yaml\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n # args fica APÓS o entrypoint do s6-overlay (/init main-wrapper.sh)\n # O wrapper vê \"hermes\" como executável → exec hermes gateway run\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n limits:\n cpu: 1000m\n memory: 1Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n emptyDir: {}\n"}, "3c2b951a6af59f6f0cdd1596132c7d423756a5cf": {"t": 1785748980.4771237, "n": 2146, "h": "2c9a9ecf058bd966", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - cp /config-source/config.yaml /opt/data/config.yaml\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n # args fica APÓS o entrypoint do s6-overlay (/init main-wrapper.sh)\n # O wrapper vê \"hermes\" como executável → exec hermes gateway run\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 200m\n memory: 256Mi\n limits:\n cpu: 1000m\n memory: 1Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n emptyDir: {}\n"}, "48575eae8e50b10320a5dc236aa1ded23a2f3b1f": {"t": 1786068213.4846396, "n": 3597, "h": "3a87938d030da9b3", "c": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: hermes\n namespace: hermes\n labels:\n app: hermes\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: hermes\n template:\n metadata:\n labels:\n app: hermes\n spec:\n serviceAccountName: hermes\n tolerations:\n - key: node.kubernetes.io/disk-pressure\n operator: Exists\n effect: NoSchedule\n initContainers:\n - name: init-config\n image: busybox:1.36\n command:\n - sh\n - -c\n - |\n # Copy config (sempre, pode mudar via ConfigMap)\n cp /config-source/config.yaml /opt/data/config.yaml\n # Download kubectl apenas se não existir\n if [ ! -x /opt/data/kubectl ]; then\n wget -qO /opt/data/kubectl https://dl.k8s.io/release/v1.36.0/bin/linux/amd64/kubectl\n chmod +x /opt/data/kubectl\n fi\n # Regenera kubeconfig (token do SA pode rotacionar)\n read -r KUBE_TOKEN < /var/run/secrets/kubernetes.io/serviceaccount/token\n KUBE_CA=$(base64 -w0 < /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)\n cat > /opt/data/kubeconfig.yaml <<EOF\n apiVersion: v1\n kind: Config\n clusters:\n - cluster:\n certificate-authority-data: ${KUBE_CA}\n server: https://kubernetes.default.svc\n name: in-cluster\n contexts:\n - context:\n cluster: in-cluster\n user: hermes\n name: hermes\n current-context: hermes\n users:\n - name: hermes\n user:\n token: ${KUBE_TOKEN}\n EOF\n volumeMounts:\n - name: config-source\n mountPath: /config-source\n - name: data\n mountPath: /opt/data\n containers:\n - name: hermes\n image: nousresearch/hermes-agent:v2026.6.19\n args:\n - hermes\n - gateway\n - run\n env:\n # ── API Server ──\n - name: API_SERVER_ENABLED\n value: \"true\"\n - name: API_SERVER_PORT\n value: \"8642\"\n - name: API_SERVER_HOST\n value: \"0.0.0.0\"\n - name: API_SERVER_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: api-server-key\n # ── Provider (DeepSeek) ──\n - name: DEEPSEEK_API_KEY\n valueFrom:\n secretKeyRef:\n name: hermes-secrets\n key: deepseek-api-key\n # ── K8s access ──\n - name: KUBECONFIG\n value: /opt/data/kubeconfig.yaml\n - name: PATH\n value: /opt/data:/opt/hermes/bin:/opt/hermes/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n ports:\n - containerPort: 8642\n name: api\n livenessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 20\n periodSeconds: 30\n readinessProbe:\n httpGet:\n path: /health\n port: api\n initialDelaySeconds: 15\n periodSeconds: 15\n volumeMounts:\n - name: data\n mountPath: /opt/data\n resources:\n requests:\n cpu: 100m\n memory: 128Mi\n ephemeral-storage: 512Mi\n limits:\n cpu: 500m\n memory: 512Mi\n ephemeral-storage: 1Gi\n volumes:\n - name: config-source\n configMap:\n name: hermes-config\n - name: data\n persistentVolumeClaim:\n claimName: hermes-data\n"}}, "hermes-ton/hermes/configmap.yaml": {"2c1402e1eda0d6506d9372236d9045765d2c62db": {"t": 1785747059.0347543, "n": 661, "h": "e73bd43cf46c8353", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: \"off\"\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "5c3eab22e9f6fc6bfb057ed904883afc01fa9cf2": {"t": 1785748967.3949687, "n": 661, "h": "e73bd43cf46c8353", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: \"off\"\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "e3c2d16655b015560430608a5e64be233141b93a": {"t": 1785748969.5061064, "n": 660, "h": "d298a2df3438774a", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: yolo\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "77e43261c965d8a3ae9b8c6985fbf4235a7e9de6": {"t": 1785748970.7362328, "n": 661, "h": "e73bd43cf46c8353", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: \"off\"\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "535ce2a3a9902f31c5a11baa0cabc1cb36fc19ef": {"t": 1785748971.8149612, "n": 659, "h": "55a4658ffe8c7f00", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: off\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "3c2b951a6af59f6f0cdd1596132c7d423756a5cf": {"t": 1785748973.531451, "n": 628, "h": "a9bf0adf6132e769", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}, "48575eae8e50b10320a5dc236aa1ded23a2f3b1f": {"t": 1786068540.848267, "n": 661, "h": "e73bd43cf46c8353", "c": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: hermes-config\n namespace: hermes\ndata:\n config.yaml: |\n model:\n default: deepseek-v4-flash\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n agent:\n max_turns: 90\n tool_use_enforcement: true\n terminal:\n backend: local\n timeout: 180\n display:\n tool_progress: true\n show_cost: true\n api_server:\n max_concurrent_runs: 10\n approvals:\n mode: \"off\"\n # Desabilitar gateways desnecessários (só API Server)\n gateway:\n telegram:\n enabled: false\n discord:\n enabled: false\n slack:\n enabled: false\n"}}}} |