Accessing and Configuring Federate
Once your Federate cluster has been deployed. You can gather the appropriate information by running
a convenience script provided by CIQ. For these steps to work, you must have already set your
kubeconfig file to point at the appropriate k8s cluster or you must be running the kubectl
command
on the same system where K8s is installed. Check the deployment
documentation
for more information.
You can download CIQ’s convenience script for retrieving cluster info and set it to executable like so:
This convenience script is relatively simple. You can (and should!) inspect it and ensure that you are comfortable with the commands that it will run before executing it.
$ wget https://ciq-marketplace-assets.s3.us-east-1.amazonaws.com/public/fuzzball/scripts/deployment-info-wait.sh
$ chmod +x deployment-info-wait.sh
You need to set a few environment variables before running this script so that it points to the Federate installation instead of the existing orchestrate installation.
$ export SECRET_NAME=fuzzball-federate-fuzzball-federate-secrets NAMESPACE=fuzzball-federate
$ ./deployment-info-wait.sh
-------------------CLUSTER INFORMATION--------------------
Keycloak URL: https://auth.federate.fuzzballtestingisawesome.com/auth/realms/e700253c-8ce8-4e36-a420-1e4cab4cb7ef
Fuzzball API URL: https://api.federate.fuzzballtestingisawesome.com
Fuzzball UI URL: https://ui.federate.fuzzballtestingisawesome.com
Fuzzball Admin UI URL: https://ui-admin.federate.fuzzballtestingisawesome.com
Fuzzball admin account:
- username: rhongo@ciq.com
- password: ?im]_]:XyQ#?#LcR
Fuzzball cluster admin account:
- username: fuzzball-admin
- password: KG6IrhG&gcg)D!V4
Keycloak admin account:
- username: keycloak
- password: keycloak
To connect to Fuzzball:
$ fuzzball context create default api.federate.fuzzballtestingisawesome.com https://auth.federate.fuzzballtestingisawesome.com/auth/realms/e700253c-8ce8-4e36-a420-1e4cab4cb7ef fuzzball-cli
$ fuzzball context use default
$ fuzzball context login --direct
If you have not created an account, you can run:
$ fuzzball account create default
$ fuzzball account use <UUID> # supply the created UUID
Running this script also serves as a test to ensure that Federate is up and running and that you can access it. Now you can set Federate as your context and configure it to interact with your existing Orchestrate cluster(s).
To register your existing Orchestrate cluster(s) with your new Federate instance you need to generate a configuration file, and then apply that configuration file to your Orchestrate cluster(s).
First, create a new admin cluster context for your Federate instance and log in.
$ fuzzball admin context create federate-admin https://api.federate.fuzzballtestingisawesome.com
Configuration for "federate-admin" created.
Configuration for "federate-admin" now in use.
$ fuzzball admin context login -u fuzzball-admin -p 'KG6IrhG&gcg)D!V4'
Logging into current cluster context...
If you encounter an error like the following, you certificate might be self-signed.
failed to verify certificate: x509: certificate signed by unknown authority
In this case, you may need to do something like the following to sign into your cluster:
# mkdir $HOME/certs # kubectl get secret -n cert-manager root-ca-cert \ -o "jsonpath={.data['ca\.crt']}" | base64 --decode >$HOME/certs/ca.crt # kubectl get secret -n cert-manager root-ca-cert \ -o "jsonpath={.data['tls\.crt']}" | base64 --decode >$HOME/certs/tls.crt # export SSL_CERT_DIR=$HOME/certs
After loggin in, you can generate a configuration file for your Federate cluster like so:
$ fuzzball admin cluster generate-configuration >/tmp/federate-cluster.conf
Now switch your admin context to your existing Fuzzball Orchestrate cluster and log in.
$ fuzzball admin context use admin
Configuration for "admin" now in use.
$ fuzzball admin context login -u fuzzball-admin -p '?v<93<Ha2Wh2n<f}'
Logging into current cluster context...
Finally, use the configuration file you just created to link your existing Orchestrate cluster to your new Federate deployment.
$ fuzzball admin cluster register -f /tmp/federate-cluster.conf
{}
You can now create a new context based on your Federate instance, and submit a small test job to it. The exact commands you use to do with will vary depending on your cluster setup. Based on the example cluster above, the following commands would work to create the context and sign in.
$ fuzzball context create new-federate api.federate.fuzzballtestingisawesome.com \
https://auth.federate.fuzzballtestingisawesome.com/auth/realms/e700253c-8ce8-4e36-a420-1e4cab4cb7ef \
fuzzball-cli
Configuration for "new-federate" created.
Configuration for "new-federate" now in use.
$ fuzzball context login --direct -u rhongo@ciq.com -p '?im]_]:XyQ#?#LcR'
Logging into current cluster context...
Account "User Account (rhongo@ciq.com)" in use
Now you can create or copy a simple fuzzfile. The following will work if you don’t have one handy.
You can call it hello-world.fz
if you like.
version: v1
jobs:
hello-world:
image:
uri: docker://alpine:latest
command:
- /bin/sh
- -c
- echo "Hello, world!"
resource:
cpu:
affinity: NUMA
cores: 2
memory:
size: 1GB
And you can submit the workflow like so:
$ fuzzball workflow start hello-world.fz
Workflow "06f2721d-9458-4779-baaf-351a5f19a5c4" started.
Congratulations! You have successfully deployed, configured, and tested your Fuzzball Federate cluster.