Use*_*716 4 argo-workflows argo-events
我正在尝试ClusterWorkflowTemplate从 argo/ argo-events 中的发布请求触发预先存在的事件。
我一直在遵循此处的示例,但我不想在传感器中定义工作流程 - 我想将其分开。
\n我无法导入传感器并触发工作流程,有什么问题吗?
\n# kubectl apply -n argo-test -f templates/whalesay/workflow-template.yml\napiVersion: argoproj.io/v1alpha1\nkind: ClusterWorkflowTemplate\nmetadata:\n name: workflow-template-submittable\nspec:\n entrypoint: whalesay-template\n arguments:\n parameters:\n - name: message\n value: hello world\n templates:\n - name: whalesay-template\n inputs:\n parameters:\n - name: message\n container:\n image: docker/whalesay\n command: [cowsay]\n args: ["{{inputs.parameters.message}}"]\nRun Code Online (Sandbox Code Playgroud)\n# kubectl apply -n argo-events templates/whalesay/event-source.yml\napiVersion: argoproj.io/v1alpha1\nkind: EventSource\nmetadata:\n name: webhook\nspec:\n service:\n ports:\n - port: 12000\n targetPort: 12000\n webhook:\n # event-source can run multiple HTTP servers. Simply define a unique port to start a new HTTP server\n example:\n # port to run HTTP server on\n port: "12000"\n # endpoint to listen to\n endpoint: /example\n # HTTP request method to allow. In this case, only POST requests are accepted\n method: POST\nRun Code Online (Sandbox Code Playgroud)\n# kubectl apply -n argo-events -f templates/whalesay/sensor.yml\napiVersion: argoproj.io/v1alpha1\nkind: Sensor\nmetadata:\n name: workflow\n namespace: argo-events\n finalizers:\n - sensor-controller\nspec:\n template:\n serviceAccountName: operate-workflow-sa\n dependencies:\n - name: http-post-trigger\n eventSourceName: webhook\n eventName: example\n triggers:\n - template:\n name: workflow-trigger-1\n argoWorkflow:\n group: argoproj.io\n version: v1alpha1\n kind: Workflow\n operation: submit\n metadata:\n generateName: cluster-workflow-template-hello-world-\n spec:\n entrypoint: whalesay-template\n workflowTemplateRef:\n name: cluster-workflow-template-submittable\n clusterScope: true\nRun Code Online (Sandbox Code Playgroud)\n# to launch\ncurl -d \'{"message":"this is my first webhook"}\' -H "Content-Type: application/json" -X POST http://argo-events-51-210-211-4.nip.io/example\nRun Code Online (Sandbox Code Playgroud)\n# error\n{\n "level": "error",\n "ts": 1627655074.716865,\n "logger": "argo-events.sensor-controller",\n "caller": "sensor/controller.go:69",\n "msg": "reconcile error",\n "namespace": "argo-events",\n "sensor": "workflow",\n "error": "temp \xe2\x94\x82\xe2\x94\x82 late workflow-trigger-1 is invalid: argoWorkflow trigger does not contain an absolute action",\n}\nRun Code Online (Sandbox Code Playgroud)\n参考:
\nUse*_*716 10
我不得不:
operate-workflow-sa具有集群权限sensor.yml语法规范集群权限:
# kubectl apply -f ./k8s/workflow-service-account.yml
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: argo-events
name: operate-workflow-sa
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: operate-workflow-role
# namespace: argo-events
rules:
- apiGroups:
- argoproj.io
verbs:
- "*"
resources:
- workflows
- clusterworkflowtemplates
- workflowtemplates
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: operate-workflow-role-binding
namespace: argo-events
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: operate-workflow-role
subjects:
- kind: ServiceAccount
name: operate-workflow-sa
namespace: argo-events
Run Code Online (Sandbox Code Playgroud)
serviceAccountNamesensor.yml(请注意还为工作流程添加了):
apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
name: workflow
namespace: argo-events
finalizers:
- sensor-controller
spec:
template:
serviceAccountName: operate-workflow-sa
dependencies:
- name: http-post-trigger
eventSourceName: webhook
eventName: example
triggers:
# https://github.com/argoproj/argo-events/blob/master/api/sensor.md#triggertemplate
- template:
name: workflow-trigger-1
argoWorkflow:
# https://github.com/argoproj/argo-events/blob/master/api/sensor.md#argoproj.io/v1alpha1.ArgoWorkflowTrigger
group: argoproj.io
version: v1alpha1
resource: Workflow
operation: submit
metadata:
generateName: cluster-workflow-template-hello-world-
source:
resource:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: special-trigger
spec:
serviceAccountName: operate-workflow-sa
entrypoint: whalesay-template
workflowTemplateRef:
name: whalesay-template
clusterScope: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2624 次 |
| 最近记录: |