Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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.

Retrieving the information to access your cluster using CIQ’s convenience script

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).

Configure Federate to Control your Existing Fuzzball 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
{}

Smoke Test

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.