diff --git a/argocd/application-portfolio.yaml b/argocd/application-portfolio.yaml new file mode 100644 index 0000000..bd51486 --- /dev/null +++ b/argocd/application-portfolio.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: portfolio + namespace: argocd +spec: + project: default + source: + repoURL: http://gitea.gitea.svc.cluster.local:3000/chemavx/k8s-manifests.git + targetRevision: main + path: portfolio + destination: + server: https://kubernetes.default.svc + namespace: portfolio + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/portfolio/configmap-html.yaml b/portfolio/configmap-html.yaml new file mode 100644 index 0000000..09e2163 --- /dev/null +++ b/portfolio/configmap-html.yaml @@ -0,0 +1,326 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: portfolio-html + namespace: portfolio +data: + index.html: | + + + + + + ChemaVX + + + + +
+
C
+

ChemaVX

+

+ Homelab · k3s · Self-hosted +

+
+ + +
+

Services

+
+ + 📊 + Grafana + + + ⚙️ + n8n + + + 🏠 + Homarr + + + 📈 + Polymarket Bot + + + 🤖 + Open WebUI + + + 🐙 + Gitea + + + 🔄 + ArgoCD + + + 🔐 + Vaultwarden + +
+
+ + +
+

Polymarket Bot — Live

+
+
+
+ 📈 + Portfolio Summary + PAPER +
+ Loading… +
+
+
+
P&L
+
+
+
+
Win Rate
+
+
+
+
Deployed
+
+
+
+
Trades
+
+
+
+
Bankroll
+
+
+
+
Sharpe
+
+
+
+
Calibration
+
+
+
+
Status
+
+
+
+
+
+ + + + + + diff --git a/portfolio/deployment.yaml b/portfolio/deployment.yaml new file mode 100644 index 0000000..e735d4f --- /dev/null +++ b/portfolio/deployment.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: portfolio + namespace: portfolio +spec: + replicas: 1 + selector: + matchLabels: + app: portfolio + template: + metadata: + labels: + app: portfolio + spec: + containers: + - name: nginx + image: nginx:alpine + ports: + - containerPort: 80 + volumeMounts: + - name: html + mountPath: /usr/share/nginx/html + readinessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 3 + periodSeconds: 10 + resources: + requests: + cpu: 10m + memory: 16Mi + limits: + cpu: 100m + memory: 64Mi + volumes: + - name: html + configMap: + name: portfolio-html diff --git a/portfolio/ingress.yaml b/portfolio/ingress.yaml new file mode 100644 index 0000000..3df6cc8 --- /dev/null +++ b/portfolio/ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: portfolio + namespace: portfolio + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + traefik.ingress.kubernetes.io/router.entrypoints: websecure +spec: + ingressClassName: traefik + rules: + - host: chemavx.xyz + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: portfolio + port: + number: 80 + tls: + - hosts: + - chemavx.xyz + secretName: portfolio-tls diff --git a/portfolio/namespace.yaml b/portfolio/namespace.yaml new file mode 100644 index 0000000..fbc590d --- /dev/null +++ b/portfolio/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: portfolio diff --git a/portfolio/service.yaml b/portfolio/service.yaml new file mode 100644 index 0000000..b2b9ba7 --- /dev/null +++ b/portfolio/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: portfolio + namespace: portfolio +spec: + selector: + app: portfolio + ports: + - port: 80 + targetPort: 80