- Seed uses paged /v1/ticks fetch (beyond 5k) to capture longer history. - Longer return blocks + adjusted volatility params for a more lifelike curve.
trade-deploy
Repo na manifesty GitOps (pull) dla projektu trade na k3s.
Założenie: obrazy są budowane/pushowane przez CI, a klaster (Argo CD/Flux) sam pobiera „desired state” z tego repo.
Struktura
kustomize/base/– wspólne zasoby (bez sekretów)kustomize/overlays/staging/– staging (namespace: trade-staging)kustomize/overlays/prod/– prod (namespace: trade-prod)bootstrap/argocd/– manifestyApplicationdla Argo CD
Wymagane sekrety (nie są w repo)
trade-postgres
W namespace środowiska (np. trade-staging) musi istnieć Secret:
POSTGRES_USERPOSTGRES_DBPOSTGRES_PASSWORD
trade-hasura
HASURA_GRAPHQL_ADMIN_SECRETHASURA_JWT_KEY
trade-pgadmin (tylko staging overlay)
PGADMIN_DEFAULT_EMAILPGADMIN_DEFAULT_PASSWORD
Tworzenie sekretów (przykład, staging)
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
ns=trade-staging
# Postgres
read -rsp "POSTGRES_PASSWORD: " POSTGRES_PASSWORD; echo
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: trade-postgres
namespace: ${ns}
type: Opaque
stringData:
POSTGRES_USER: admin
POSTGRES_DB: crypto
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
EOF
unset POSTGRES_PASSWORD
# Hasura
read -rsp "HASURA_GRAPHQL_ADMIN_SECRET: " HASURA_GRAPHQL_ADMIN_SECRET; echo
read -rsp "HASURA_JWT_KEY (32+ chars): " HASURA_JWT_KEY; echo
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: trade-hasura
namespace: ${ns}
type: Opaque
stringData:
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET}
HASURA_JWT_KEY: ${HASURA_JWT_KEY}
EOF
unset HASURA_GRAPHQL_ADMIN_SECRET HASURA_JWT_KEY
# pgAdmin (staging)
read -rp "PGADMIN_DEFAULT_EMAIL: " PGADMIN_DEFAULT_EMAIL
read -rsp "PGADMIN_DEFAULT_PASSWORD: " PGADMIN_DEFAULT_PASSWORD; echo
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: trade-pgadmin
namespace: ${ns}
type: Opaque
stringData:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
EOF
unset PGADMIN_DEFAULT_EMAIL PGADMIN_DEFAULT_PASSWORD
Szybki test (bez Argo CD)
kubectl apply -k kustomize/overlays/staging
kubectl apply -k kustomize/overlays/prod
Dostęp przez port-forward (staging)
# Hasura (UI + API) – jeśli 8080 zajęte, użyj np. 8091
kubectl -n trade-staging port-forward svc/hasura 8091:8080
# pgAdmin
kubectl -n trade-staging port-forward svc/pgadmin 5050:80
# Postgres
kubectl -n trade-staging port-forward svc/postgres 5432:5432
Weryfikacja (staging)
# Argo CD: status aplikacji
kubectl -n argocd get applications.argoproj.io trade-staging -o wide
# Workloady
kubectl -n trade-staging get pods -o wide
kubectl -n trade-staging get svc
kubectl -n trade-staging get pvc
# Hasura bootstrap
kubectl -n trade-staging get job hasura-bootstrap
kubectl -n trade-staging logs job/hasura-bootstrap --tail=200
# Logi (gdy coś nie wstaje)
kubectl -n trade-staging logs deploy/hasura --tail=200
kubectl -n trade-staging logs statefulset/postgres --tail=200
Jeśli pody mają CreateContainerConfigError z komunikatem o brakującym sekrecie (trade-postgres / trade-hasura / trade-pgadmin), najpierw utwórz sekrety (sekcja wyżej).
Argo CD
Przykładowa Application jest w bootstrap/argocd/application-trade-staging.yaml.
Description
Languages
JavaScript
78%
PLpgSQL
22%