Skip to content

Blender Versions

Flamenco assumes that the there is a version of Blender already pre-installed, on the node running the Flamenco Worker. It is possible to define custom paths for each OS (platform) using Flamenco Manager configuration.

In this project, a specific version of Flamenco Worker and Blender are co-packaged into a single Docker Container.

Available Blender Versions

To learn which blender versions are available in the cluster you can inspect the docker-registry/defaults/main.yaml Ansible Playbook file or list the available Docker images on the Docker Registry. Assuming the Docker Registry is co-located on the k8s control plane node.

#> ssh ubuntu@192.168.1.xxx (Gateway Device)   // Gateway Device
#> ssh ubuntu@k8s-control-plane-node // Docker Registry node
#> docker images 
REPOSITORY                           TAG                 IMAGE ID       CREATED        SIZE
registry.cluster.home/flamenco       3.1-blender-3.4.0   fd1c5e76685b   4 hours ago    3.67GB
registry.cluster.home/intel-opencl   u22.04_20221213     034ce0e90ffa   4 weeks ago    309MB
registry                             2                   0d153fadf70b   6 weeks ago    24.2MB
ubuntu                               22.04               58db3edaf2be   2 months ago   77.8MB
ubuntu                               jammy               58db3edaf2be   2 months ago   77.8MB

Updating Blender Versions

To change the supported blender versions you have to update the Docker container and upload it into the local Docker Registry using the docker-install Ansible Playbook. It will then build a new Docker container that includes those Blender versions.

docker-install/defaults/main.yaml

blender_version: 3.4.0
blender_major_version: 3.4

Then run the docker-install playbook…

ansible-playbook -i hosts build-docker-registry.yaml -K 

Once the new docker container is built, you must re-deploy the Flamenco Manager and Worker Pods to pick up the new container.

You will have to update the k8s manifest for the Manager and Workers to use the desired version.

Flamenco Manager manifest

- name: "k8s: Pod Flamenco-Manager"
  kubernetes.core.k8s:
    kubeconfig: /home/kube/.kube/config
    state: present
    definition:
      apiVersion: v1
      kind: Pod
      metadata:
        name: flamenco-manager-pod
        namespace: flamenco-manager
...
        containers:            
          - name: flamenco
            image: "{{ docker_registry_server }}/flamenco:3.1-blender-3.4.0"
            command: ["/code/flamenco/flamenco-manager"]
            imagePullPolicy: Always
...            

Flamenco Worker manifest

- name: "k8s: Deployment Flamenco-Worker"
  kubernetes.core.k8s:
    kubeconfig: /home/kube/.kube/config
    state: present
    definition:
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: flamenco-worker
        namespace: flamenco-worker
...
            containers:            
              - name: flamenco
                image: "{{ docker_registry_server }}/flamenco:3.1-blender-3.4.0"
                command: ["/code/flamenco/flamenco-worker"]
                imagePullPolicy: Always
...                

Then run the deploy-flamenco playbook…

ansible-playbook -i hosts deploy-flamenco.yaml