This helm chart defines a common structure to deploy a Kubernetes job for an Fybrik module.
The configuration for the chart is in the values file.
- Kubernetes cluster 1.10+
- Helm 3.0.0+
In Makefile:
- Change
DOCKER_USERNAME,DOCKER_PASSWORD,DOCKER_HOSTNAME,DOCKER_NAMESPACE,DOCKER_TAGNAME,DOCKER_IMG_NAME, andDOCKER_CHART_IMG_NAMEto your own preferences.
make docker-buildmake docker-push- When testing the chart, configure settings by editing the
values.yamldirectly. - Modify repository in
values.yamlto your preferred Docker image. - Modify copy/read action as needed with appropriate values.
- At runtime, the
fybrik-managerwill pass in the copy/read values to the module so you can leave them blank in your final chart.
make helm-loginmake helm-verifymake helm-chart-pushmake helm-uninstall-
In your module yaml spec (
hello-world-module.yaml):- Change
spec.chart.nameto your preferred chart image. - Define
flowsandcapabilitiesfor your module. - The Fybrik manager checks the
statusIndicatorsprovided to see if the module is ready. In this example, if the Kubernetes job completes, the status will besucceededand the manager will set the module as ready.
- Change
-
Deploy
FybrikModuleinfybrik-systemnamespace:
kubectl create -f hello-world-module.yaml -n fybrik-system- Follow steps 3 and 4 in this example to register the data asset in the catalog and set the
ASSET_IDenvironment variable - Follow step 5 in this example to register HMAC credentials in Vault
- In
fybrikapplication.yaml:- Change
metadata.nameto your application name. - Define
appInfo.purpose,appInfo.role, andspec.data - This ensures that a copy is triggered:
copy: required:true
- Change
- Deploy
FybrikApplicationindefaultnamespace:
cat fybrikapplication.yaml | sed "s/ASSET_ID/$ASSET_ID/g" | kubectl -n default apply -f -- Check if
FybrikApplicationsuccessfully deployed:
kubectl get FybrikApplication -n default
kubectl describe FybrikApplication hello-world-module-test -n default- Check if module was triggered in
fybrik-blueprints:
kubectl get blueprint -n fybrik-blueprints
kubectl describe blueprint hello-world-module-test-default -n fybrik-blueprints
kubectl get job -n fybrik-blueprints
kubectl get pods -n fybrik-blueprintsIf you are using the hello-world-module image, you should see this in the kubectl logs of your completed Pod:
$ kubectl logs rel1-hello-world-module-x2tgs
Hello World Module!
Connection name is s3
Connection format is parquet
Vault credential address is http://vault.fybrik-system:8200/
Vault credential role is module
Vault credential secret path is v1/fybrik/dataset-creds/%7B%22asset_id%22:%20%225067b64a-67bc-4067-9117-0aff0a9963ea%22%2C%20%22catalog_id%22:%20%220fd6ff25-7327-4b55-8ff2-56cc1c934824%22%7D
S3 bucket is fybrik-test-bucket
S3 endpoint is s3.eu-gb.cloud-object-storage.appdomain.cloud
COPY SUCCEEDED