Installation
To install the Flowcore Platform, you will first have to have a dedicated Kubernetes cluster.
Prerequisites
- Kubernetes cluster version 1.28 or higher
- A dedicated cluster license
Installation of Prerequisites
-
Create a kubernetes cluster using your preferred method.
-
Once the cluster is ready, you will need to install the following services:
Installation of Flowcore Platform
To install the Flowcore Platform, you will need to use the Flowcore Platform Helm Chart.
Base Credentials
Create the following credentials in the flowcore
namespace.
-
Create a secret for the S3 Compatible Bucket.
Terminal window kubectl create secret generic flowcore-s3-credentials \--from-literal=AWS_ACCESS_KEY_ID=<your-access-key-id> \--from-literal=AWS_SECRET_ACCESS_KEY=<your-secret-access-key> \--from-literal=AWS_REGION=<your-region> \--from-literal=AWS_S3_BUCKET=<your-bucket-name> \-n flowcore
-
Create a secret for the Cassandra database credentials.
Terminal window kubectl create secret generic platform-source-cassandra-user \--from-literal=cassandra-password=<your-password> \-n flowcore -
Create a secret containing the Valkey HA Password.
Terminal window kubectl create secret generic platform-source-valkey-ha \--from-literal=password=<your-password> \-n flowcore -
Create a secret containing the Valkey Single Password.
Terminal window kubectl create secret generic platform-source-valkey-single \--from-literal=password=<your-password> \-n flowcore -
Create a secret containing the PostgreSQL credentials.
Terminal window kubectl create secret generic postgresql-ha \--from-literal=repmgr-password=<repmgr-password> \--from-literal=password=<postgres-password> \--from-literal=admin-password=<pgpool-password> \-n flowcore
Flowcore Tenant Credentials
You will also need to create a few credentials for the Flowcore Tenant that will be tied to the dedicated cluster license.
First you will need to create an API key to use for the Flowcore Tenant.
-
Create an API key using the Flowcore CLI.
Terminal window flowcore auth new key -t <tenant> dedicated-cluster -
Create the following policies to be used by the API key.
policy.yaml apiVersion: iam.flowcore.io/v1kind: Policymetadata:name: dedicated-cluster-policytenant: <tenant>spec:version: "1.0.0"description: "Allows read and write access to all resources"policyDocuments:- resource: "frn::<tenant>:tenant/*"action: ["read","write"]- resource: "frn::<tenant>:license/*"action: ["read","write"]Terminal window flowcore apply -f policy.yaml --v2 -
Bind the policy to the API key.
policy-binding.yaml apiVersion: iam.flowcore.io/v1kind: PolicyBindingmetadata:name: dedicated-cluster-policy-bindingtenant: <tenant>spec:policy: "dedicated-cluster-policy" # References the policy name abovesubjects:- type: keyid: <api-key-id>Terminal window flowcore apply -f policy-binding.yaml --v2 -
Create a secret containing the following:
- The API key
- The License Key
- The Tenant ID
- The Tenant Name
Terminal window kubectl create secret generic flowcore-tenant-credentials \--from-literal=api-key=<your-api-key> \--from-literal=license-key=<your-license-key> \--from-literal=tenant-id=<your-tenant-id> \--from-literal=tenant-name=<your-tenant-name> \-n flowcore
GitHub Credentials
The Flowcore Platform Control Plane needs access to your GitHub repository to deploy your transformers. This is done by creating a GitHub App and adding the necessary permissions.
-
Create a GitHub App here.
-
Add the following permissions:
- Read and Write Access to Metadata
- Read and Write Access to The Contents of Repositories
-
Add the GitHub App to your repository.
-
Create a secret containing the following:
- The GitHub App ID
- The GitHub App Installation ID
- The GitHub App Private Key
- The Github Repository URL
Terminal window kubectl create secret generic flowcore-github-credentials \--from-literal=github-app-id=<your-github-app-id> \--from-literal=github-app-installation-id=<your-github-app-installation-id> \--from-literal=github-app-private-key=<your-github-app-private-key> \--from-literal=github-repository-url=<your-github-repository-url> \-n flowcore
Install the Flowcore Platform
Now that you have created the necessary credentials, you can install the Flowcore Platform.
-
Install the Flowcore Platform using the Helm Chart.
Terminal window helm repo add flowcore https://flowcore-io.github.io/flowcore-helm-charts/helm install flowcore-platform flowcore/flowcore-platform --namespace flowcore \--set flowcore.ingestionUrl=<url you want to use for ingestion> \--set flowcore.eventSourceUrl=<url you want to use for event source> \--set flowcore.stateUrl=<url you want to use for fetching state> -
Wait for the Flowcore Platform to be ready.
Terminal window kubectl get pods -n flowcore
- Once the Flowcore Platform is ready, you should be able to access any data or state through the Flowcore Platform UI and CLI.
Troubleshooting
If you are experiencing issues with the Flowcore Platform, please contact support at support@flowcore.io.
Common Issues
-
Flowcore Platform is not ready.
Terminal window kubectl get pods -n flowcoreIf the Flowcore Platform is not ready, please check the logs of the pods in the
flowcore
namespace. -
Flowcore Platform is not ingesting data.
Terminal window kubectl get ingress -n flowcoreMake sure the ingress resource is created and is accessible, also make sure the
flowcore.ingestionUrl
is correct. -
The Flowcore Platform UI or CLI is not fetching any logs from my transformers.
Terminal window kubectl get ingress -n flowcorekubectl get pods -n flowcoreMake sure the pods are running and are accessible, also make sure the
flowcore.stateUrl
is correct.Terminal window kubectl get pods -n org-<your tenant>-configMake sure your transformers are running and are accessible.
-
I have ingested data but the Flowcore Platform UI does not show any data in my data cores.
Terminal window kubectl get ingress -n flowcoreMake sure the ingress resource is created and is accessible, also make sure the
flowcore.eventSourceUrl
is correct.