Fixes #1893 - Removes crawl workflow-scoped configmaps, and replaces with operator-controlled per-crawl configmaps that only contain the json config passed to Browsertrix Crawler (as a volume). - Other configmap settings replaced are replaced the custom CrawlJob options (mostly already were, just added profile_filename and storage_filename) - Cron jobs also updated to create CrawlJob without relying on configmaps, querying the db for additional settings. - The `userid` associated with cron jobs is set to the user that last modified the schedule of the crawl, rather than whomever last modified the workflow - Various functions that deal with updating configmaps have been removed, including in migrations. - New migration 0029 added to remove all crawl workflow configmaps
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| apiVersion: metacontroller.k8s.io/v1alpha1
 | |
| kind: CompositeController
 | |
| metadata:
 | |
|   name: crawljobs-operator
 | |
| spec:
 | |
|   generateSelector: false
 | |
|   resyncPeriodSeconds: {{ .Values.operator_resync_seconds | default 10 }}
 | |
|   parentResource:
 | |
|     apiVersion: btrix.cloud/v1
 | |
|     resource: crawljobs
 | |
|   childResources:
 | |
|   - apiVersion: v1
 | |
|     resource: pods
 | |
|     updateStrategy:
 | |
|       method: OnDelete
 | |
| 
 | |
|   - apiVersion: v1
 | |
|     resource: persistentvolumeclaims
 | |
|     updateStrategy:
 | |
|       method: InPlace
 | |
| 
 | |
|   - apiVersion: v1
 | |
|     resource: configmaps
 | |
|     updateStrategy:
 | |
|       method: InPlace
 | |
| 
 | |
|   hooks:
 | |
|     sync:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/crawls/sync
 | |
| 
 | |
|     finalize:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/crawls/finalize
 | |
| 
 | |
|     customize:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/crawls/customize
 | |
| 
 | |
| ---
 | |
| apiVersion: metacontroller.k8s.io/v1alpha1
 | |
| kind: CompositeController
 | |
| metadata:
 | |
|   name: profilejobs-operator
 | |
| spec:
 | |
|   generateSelector: false
 | |
|   resyncPeriodSeconds: 30
 | |
|   parentResource:
 | |
|     apiVersion: btrix.cloud/v1
 | |
|     resource: profilejobs
 | |
|   childResources:
 | |
|   - apiVersion: v1
 | |
|     resource: pods
 | |
|     updateStrategy:
 | |
|       method: InPlace
 | |
|  
 | |
|   hooks:
 | |
|     sync:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/profilebrowsers/sync
 | |
| 
 | |
| ---
 | |
| apiVersion: metacontroller.k8s.io/v1alpha1
 | |
| kind: DecoratorController
 | |
| metadata:
 | |
|   name: cron-crawljobs-operator
 | |
| spec:
 | |
|   resyncPeriodSeconds: 30
 | |
|   resources:
 | |
|   - apiVersion: batch/v1
 | |
|     resource: jobs
 | |
|     labelSelector:
 | |
|       matchLabels:
 | |
|         role: scheduled-crawljob
 | |
| 
 | |
|   attachments:
 | |
|   - apiVersion: btrix.cloud/v1
 | |
|     resource: crawljobs
 | |
|     updateStrategy:
 | |
|       method: OnDelete
 | |
| 
 | |
|   hooks:
 | |
|     sync:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/cronjob/sync
 | |
| 
 | |
| ---
 | |
| apiVersion: metacontroller.k8s.io/v1alpha1
 | |
| kind: DecoratorController
 | |
| metadata:
 | |
|   name: background-job-operator
 | |
| spec:
 | |
|   resyncPeriodSeconds: 30
 | |
|   resources:
 | |
|   - apiVersion: batch/v1
 | |
|     resource: jobs
 | |
|     labelSelector:
 | |
|       matchLabels:
 | |
|         role: background-job
 | |
|   hooks:
 | |
|     sync:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/backgroundjob/sync
 | |
|     finalize:
 | |
|       webhook:
 | |
|         service:
 | |
|           namespace: {{ .Release.Namespace }}
 | |
|           name: {{ .Values.name }}-backend
 | |
|           port: {{ .Values.opPort }}
 | |
|         path: /op/backgroundjob/finalize
 |