Fixes #1385 ## Changes Supports multiple crawler 'channels' which can be configured to different browsertrix-crawler versions - Replaces `crawler_image` in helm chart with `crawler_channels` array similar to how storages are handled - The `default` crawler channel must always be provided and specifies the default crawler image - Adds backend `/orgs/{oid}/crawlconfigs/crawler-channels` API endpoint to fetch information about available crawler versions (name, image, and label) and test - Adds crawler channel select to workflow creation/edit screens and profile creation dialog, and updates related API endpoints and configmaps accordingly. The select dropdown is shown only if more than one channel is configured. - Adds `crawlerChannel` to workflow and crawl details. - Add `image` to crawler image, used to display actual image used as part of the crawl. - Modifies `crawler_crawl_id` backend test fixture to use `test` crawler version to ensure crawler versions other than latest work - Adds migration to add `crawlerChannel` set to `default` to existing workflow and profile objects and workflow configmaps --------- Co-authored-by: Ilya Kreymer <ikreymer@gmail.com> Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
		
			
				
	
	
		
			34 lines
		
	
	
		
			690 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			690 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
apiVersion: btrix.cloud/v1
 | 
						|
kind: ProfileJob
 | 
						|
metadata:
 | 
						|
  name: profilejob-{{ id }}
 | 
						|
  labels:
 | 
						|
    browser: "{{ id }}"
 | 
						|
    role: "job"
 | 
						|
    btrix.org: {{ oid }}
 | 
						|
    btrix.user: {{ userid }}
 | 
						|
    {%- if base_profile %}
 | 
						|
    btrix.baseprofile: "{{ base_profile }}"
 | 
						|
    {%- endif %}
 | 
						|
    btrix.storage: "{{ storage_name }}"
 | 
						|
 | 
						|
spec:
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      browser: "{{ id }}"
 | 
						|
 | 
						|
  id: "{{ id }}"
 | 
						|
  userid: "{{ userid }}"
 | 
						|
  oid: "{{ oid }}"
 | 
						|
 | 
						|
  storageName: "{{ storage_name }}"
 | 
						|
  crawlerImage: "{{ crawler_image }}"
 | 
						|
 | 
						|
  startUrl: "{{ url }}"
 | 
						|
  profileFilename: "{{ profile_filename }}"
 | 
						|
  vncPassword: "{{ vnc_password }}"
 | 
						|
 | 
						|
  {% if expire_time %}
 | 
						|
  expireTime: "{{ expire_time }}"
 | 
						|
  {% endif %}
 |