DEV Community

John  Ajera
John Ajera

Posted on

FastSchema on EKS – Install and Test

FastSchema on EKS – Install and Test

Deploy FastSchema via Argo CD on EKS and access it locally with port-forward. Uses SQLite with EBS-backed PVC. First-run setup token from pod logs.

FastSchema has no official Helm chart. This guide uses a community chart at k8sforge/fastschema-chart.

Note: This setup is for evaluation, not production-ready. For production, use external database (MySQL/PostgreSQL), configure auth providers, and follow security best practices.


1. Overview

What this guide does:

  • Deploys FastSchema using the community Helm chart via an Argo CD Application
  • Persists data with SQLite on EBS-backed PVC
  • Uses port-forward for local access (no ingress required)
  • Walks through first-run setup: token from pod logs, create admin account, verify storage

Prerequisites:

  • kubectl configured for your EKS cluster
  • Argo CD installed

2. Prerequisites

Before starting, ensure you have:

  • kubectl configured for your EKS cluster
  • Argo CD installed

3. Install FastSchema

Save the manifest below as fastschema-application.yaml and apply:

kubectl apply -f fastschema-application.yaml
Enter fullscreen mode Exit fullscreen mode

Wait until the Application shows Synced in the Argo CD UI or CLI.

Manifest:

apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
  name: devops
  namespace: argocd
spec:
  clusterResourceWhitelist:
    - group: "*"
      kind: "*"
  description: DevOps-managed applications
  destinations:
    - namespace: "*"
      server: "*"
  namespaceResourceWhitelist:
    - group: "*"
      kind: "*"
  sourceRepos:
    - "*"
---
apiVersion: v1
kind: Namespace
metadata:
  name: fastschema
  labels:
    name: fastschema
    owner: devops
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: fastschema
  namespace: argocd
spec:
  project: devops
  source:
    repoURL: https://k8sforge.github.io/fastschema-chart
    chart: fastschema
    targetRevision: 0.1.4
    helm:
      values: |
        service:
          type: ClusterIP
        persistence:
          enabled: true
          size: 10Gi
          storageClassName: ebs-sc
          accessModes:
            - ReadWriteOnce
        appBaseUrl: "http://localhost:8000"
        appDashUrl: "http://localhost:8000/dash"
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 256Mi
  destination:
    server: https://kubernetes.default.svc
    namespace: fastschema
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
Enter fullscreen mode Exit fullscreen mode

Omit AppProject and Namespace if you already have them (e.g. via devops-apps ApplicationSet).


4. Test Access

Port-forward

kubectl port-forward svc/fastschema -n fastschema 8000:8000
Enter fullscreen mode Exit fullscreen mode

Get setup token (first run)

kubectl logs -n fastschema -l app.kubernetes.io/name=fastschema --tail=30
Enter fullscreen mode Exit fullscreen mode

Look for: Visit the following URL to setup the app: http://localhost:8000/dash/setup/?token=...

Setup and login

Open the URL from the logs. Complete setup to create admin account. Log in at http://localhost:8000/dash with the credentials you created.


5. Verify EBS Storage

kubectl exec -it -n fastschema deploy/fastschema -- sh
Enter fullscreen mode Exit fullscreen mode

Inside the pod:

df -h /fastschema/data
ls -la /fastschema/data
echo "storage-test-$(date)" > /fastschema/data/storage-test.txt
cat /fastschema/data/storage-test.txt
Enter fullscreen mode Exit fullscreen mode

Exit, then from your terminal:

kubectl delete pod -n fastschema -l app.kubernetes.io/name=fastschema
Enter fullscreen mode Exit fullscreen mode

Wait for the new pod to be ready, exec in again and run:

cat /fastschema/data/storage-test.txt
Enter fullscreen mode Exit fullscreen mode

If the file and content persist, the PVC is working.


6. Summary: Copy-Paste

# 1. Apply manifest
kubectl apply -f fastschema-application.yaml

# 2. Wait for sync (argocd app get fastschema)

# 3. Port-forward and get token
kubectl port-forward svc/fastschema -n fastschema 8000:8000 &
kubectl logs -n fastschema -l app.kubernetes.io/name=fastschema --tail=30
Enter fullscreen mode Exit fullscreen mode

Open the setup URL from logs, create admin account, then log in at http://localhost:8000/dash.


7. Troubleshooting

Issue: No setup token in logs

Solution: Wait for pod to be ready. Token prints once on startup. If setup already done, use login at /dash with your credentials.

Issue: PVC stuck Pending

Solution: Ensure storageClassName: ebs-sc exists. Check EBS CSI driver is installed.

Issue: Service not found

Solution: kubectl get svc -n fastschema. Ensure app is synced.


8. References

Top comments (0)