minio argo nats face
diff --git "a/argo/\043argo-events-crds-install.yaml\043" "b/argo/\043argo-events-crds-install.yaml\043"
new file mode 100644
index 0000000..92b812a
--- /dev/null
+++ "b/argo/\043argo-events-crds-install.yaml\043"
@@ -0,0 +1,221 @@
+oapiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+ name: gateways.argoproj.io
+spec:
+ group: argoproj.io
+ names:
+ kind: Gateway
+ listKind: GatewayList
+ plural: gateways
+ singular: gateway
+ shortNames:
+ - gw
+ scope: Namespaced
+ version: "v1alpha1"
+---
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+ name: sensors.argoproj.io
+spec:
+ group: argoproj.io
+ names:
+ kind: Sensor
+ listKind: SensorList
+ plural: sensors
+ singular: sensor
+ shortNames:
+ - sn
+ scope: Namespaced
+ version: "v1alpha1"
+---
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+ name: eventsources.argoproj.io
+spec:
+ group: argoproj.io
+ scope: Namespaced
+ names:
+ kind: EventSource
+ plural: eventsources
+ singular: eventsource
+ listKind: EventSourceList
+ shortNames:
+ - es
+ version: "v1alpha1"
+---
+# apiVersion: v1
+# kind: Namespace
+# metadata:
+# name: argo-events
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: argo-events-sa
+ namespace: kube-system
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: argo-events-role-binding
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: argo-events-role
+subjects:
+ - kind: ServiceAccount
+ name: argo-events-sa
+ namespace: kube-system
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: argo-events-role
+rules:
+ - apiGroups:
+ - argoproj.io
+ verbs:
+ - create
+ - delete
+ - deletecollection
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ resources:
+ - workflows
+ - workflows/finalizers
+ - workflowtemplates
+ - workflowtemplates/finalizers
+ - gateways
+ - gateways/finalizers
+ - sensors
+ - sensors/finalizers
+ - eventsources
+ - eventsources/finalizers
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ - pods/exec
+ - configmaps
+ - secrets
+ - services
+ - events
+ - persistentvolumeclaims
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - "batch"
+ resources:
+ - jobs
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - "apps"
+ resources:
+ - deployments
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: gateway-controller-configmap
+ namespace: kube-system
+data:
+ config: |
+ instanceID: argo-events
+ namespace: kube-system
+---
+# The gateway-controller listens for changes on the gateway CRD and creates gateway
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: gateway-controller
+ namespace: kube-system
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: gateway-controller
+ template:
+ metadata:
+ labels:
+ app: gateway-controller
+ spec:
+ serviceAccountName: argo-events-sa
+ containers:
+ - name: gateway-controller
+ image: argoproj/gateway-controller:v0.13.0
+ imagePullPolicy: Always
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: CONTROLLER_CONFIG_MAP
+ value: gateway-controller-configmap
+---
+# The sensor-controller configmap includes configuration information for the sensor-controller
+# To watch sensors created in different namespace than the controller is deployed in, remove the namespace: kube-system.
+# Similarly to watch sensors created in specific namespace, change to namespace: <your_namespace>
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sensor-controller-configmap
+ namespace: kube-system
+data:
+ config: |
+ instanceID: argo-events
+ namespace: kube-system
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: sensor-controller
+ namespace: kube-system
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: sensor-controller
+ template:
+ metadata:
+ labels:
+ app: sensor-controller
+ spec:
+ serviceAccountName: argo-events-sa
+ containers:
+ - name: sensor-controller
+ image: argoproj/sensor-controller:v0.13.0
+ imagePullPolicy: Always
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: CONTROLLER_CONFIG_MAP
+ value: sensor-controller-configmap
diff --git a/argo/event-source.yaml b/argo/event-source.yaml
index 11610a0..23ec5ed 100644
--- a/argo/event-source.yaml
+++ b/argo/event-source.yaml
@@ -1,21 +1,48 @@
apiVersion: argoproj.io/v1alpha1
kind: EventSource
metadata:
- name: minio-event-source
+ name: nats-event-source
spec:
- type: "minio"
- minio:
+ type: nats
+ nats:
example:
- bucket:
- name: input
- endpoint: mio-minio.default.svc:9000
- events:
- - s3:ObjectCreated:Put
- - s3:ObjectRemoved:Delete
- insecure: true
- accessKey:
- key: accesskey
- name: artifacts-minio
- secretKey:
- key: secretkey
- name: artifacts-minio
\ No newline at end of file
+ # url of the nats service
+ url: nats://nats.svc:4222
+ # jsonBody specifies that all event body payload coming from this
+ # source will be JSON
+ jsonBody: true
+ # subject name
+ subject: input-objects
+ # optional backoff time for connection retries.
+ # if not provided, default connection backoff time will be used.
+ connectionBackoff:
+ # duration in nanoseconds. following value is 10 seconds
+ duration: 10000000000
+ # how many backoffs
+ steps: 5
+ # factor to increase on each step.
+ # setting factor > 1 makes backoff exponential.
+ factor: 2
+ jitter: 0.2
+
+# apiVersion: argoproj.io/v1alpha1
+# kind: EventSource
+# metadata:
+# name: minio-event-source
+# spec:
+# type: "minio"
+# minio:
+# example:
+# bucket:
+# name: input
+# endpoint: mio-minio.default.svc:9000
+# events:
+# - s3:ObjectCreated:Put
+# - s3:ObjectRemoved:Delete
+# insecure: true
+# accessKey:
+# key: accesskey
+# name: artifacts-minio
+# secretKey:
+# key: secretkey
+# name: artifacts-minio
\ No newline at end of file
diff --git a/argo/gateway.yaml b/argo/gateway.yaml
index e56f926..b98baf4 100644
--- a/argo/gateway.yaml
+++ b/argo/gateway.yaml
@@ -1,29 +1,61 @@
apiVersion: argoproj.io/v1alpha1
kind: Gateway
metadata:
- name: minio-gateway
+ name: nats-gateway
labels:
# gateway controller with instanceId "argo-events" will process this gateway
gateways.argoproj.io/gateway-controller-instanceid: argo-events
spec:
- type: minio
+ type: nats
eventSourceRef:
- name: minio-event-source
+ name: nats-event-source
template:
metadata:
- name: minio-gateway
+ name: nats-gateway
labels:
- gateway-name: minio-gateway
+ gateway-name: nats-gateway
spec:
containers:
- name: gateway-client
- image: argoproj/gateway-client:v0.13.0
- imagePullPolicy: Always
+ image: argoproj/gateway-client:v0.14.0
+ imagePullPolicy: IfNotPresent
command: ["/bin/gateway-client"]
- - name: minio-events
- image: argoproj/artifact-gateway:v0.13.0
- imagePullPolicy: Always
+ - name: nats-events
+ image: argoproj/nats-gateway:v0.14.0
+ imagePullPolicy: IfNotPresent
+ command: ["/bin/nats-gateway"]
serviceAccountName: argo-events-sa
subscribers:
http:
- - "http://minio-sensor.kube-system.svc:9300/"
+ - "http://nats-sensor.svc:9300/"
+
+
+# apiVersion: argoproj.io/v1alpha1
+# kind: Gateway
+# metadata:
+# name: minio-gateway
+# labels:
+# # gateway controller with instanceId "argo-events" will process this gateway
+# gateways.argoproj.io/gateway-controller-instanceid: argo-events
+# spec:
+# type: minio
+# eventSourceRef:
+# name: minio-event-source
+# template:
+# metadata:
+# name: minio-gateway
+# labels:
+# gateway-name: minio-gateway
+# spec:
+# containers:
+# - name: gateway-client
+# image: argoproj/gateway-client:v0.13.0
+# imagePullPolicy: Always
+# command: ["/bin/gateway-client"]
+# - name: minio-events
+# image: argoproj/artifact-gateway:v0.13.0
+# imagePullPolicy: Always
+# serviceAccountName: argo-events-sa
+# subscribers:
+# http:
+# - "http://minio-sensor.kube-system.svc:9300/"
diff --git a/argo/mio-minio-secrets.yaml b/argo/mio-minio-secrets.yaml
index cdd09f3..c48d5ef 100644
--- a/argo/mio-minio-secrets.yaml
+++ b/argo/mio-minio-secrets.yaml
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
- name: artifacts-minio
+ name: minio-credentials
data:
# base64 of minio
- accesskey: Z2lv
+ accesskey: bWluaW8K
# base64 of minio123
- secretkey: cDEyMzQ1Njc4
+ secretkey: bWluaW8xMjMK
diff --git a/argo/sensor.yaml b/argo/sensor.yaml
index 8c0427c..6918bd5 100644
--- a/argo/sensor.yaml
+++ b/argo/sensor.yaml
@@ -1,28 +1,27 @@
apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
- name: minio-sensor
+ name: nats-sensor
labels:
- # sensor controller with instanceId "argo-events" will process this sensor
sensors.argoproj.io/sensor-controller-instanceid: argo-events
spec:
template:
spec:
containers:
- name: sensor
- image: argoproj/sensor:v0.13.0
- imagePullPolicy: Always
+ image: argoproj/sensor:v0.14.0
+ imagePullPolicy: IfNotPresent
serviceAccountName: argo-events-sa
subscription:
http:
port: 9300
dependencies:
- name: test-dep
- gatewayName: minio-gateway
+ gatewayName: nats-gateway
eventName: example
triggers:
- template:
- name: minio-workflow-trigger
+ name: nats-workflow-trigger
k8s:
group: argoproj.io
version: v1alpha1
@@ -33,20 +32,107 @@
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
- generateName: artifact-workflow-2-
+ generateName: nats-workflow-
spec:
entrypoint: whalesay
+ arguments:
+ parameters:
+ - name: message
+ value: WILL_BE_REPLACED
templates:
- - name: whalesay
- container:
- command:
- - cowsay
- image: docker/whalesay:latest
- args:
- - THIS_WILL_BE_REPLACED
- # The container args from the workflow are overridden by the s3 notification key
+ - name: whalesay
+ inputs:
+ parameters:
+ - name: message
+ container:
+ image: docker/whalesay:latest
+ imagePyllPolicy: IfNotPresent
+ command: [cowsay]
+ args: ["{{inputs.parameters.message}}"]
parameters:
- src:
dependencyName: test-dep
- dataKey: notification.0.s3.object.key
- dest: spec.templates.0.container.args.0
+ dest: spec.arguments.parameters.0.value
+
+
+# apiVersion: argoproj.io/v1alpha1
+# kind: Sensor
+# metadata:
+# name: minio-sensor
+# labels:
+# # sensor controller with instanceId "argo-events" will process this sensor
+# sensors.argoproj.io/sensor-controller-instanceid: argo-events
+# spec:
+# template:
+# spec:
+# containers:
+# - name: sensor
+# image: argoproj/sensor:v0.13.0
+# imagePullPolicy: Always
+# serviceAccountName: argo-events-sa
+# subscription:
+# http:
+# port: 9300
+# dependencies:
+# - name: test-dep
+# gatewayName: minio-gateway
+# eventName: example
+# triggers:
+# - template:
+# name: minio-workflow-trigger
+# k8s:
+# group: argoproj.io
+# version: v1alpha1
+# resource: workflows
+# operation: create
+# source:
+# resource:
+# apiVersion: argoproj.io/v1alpha1
+# kind: Workflow
+# metadata:
+# generateName: artifact-workflow-2-
+# spec:
+# entrypoint: detect
+# templates:
+# - name: detect
+# inputs:
+# artifacts:
+# - name: input-image
+# path: /input
+# s3:
+# # endpoint: mio-minio.default.svc:9000
+# # bucket: input # change
+# key: harry.jpg
+# # insecure: true
+# # accessKeySecret:
+# # key: accessKey
+# # name: artifacts-minio
+# # secretKeySecret:
+# # key: secretKey
+# # name: artifacts-minio
+# # useSDKCreds: true
+# # outputs:
+# # artifacts:
+# # - name: output-image
+# # path: /output
+# # s3:
+# # endpoint: mio-minio.default.svc:9000
+# # bucket: output # change
+# # key: PARAMETER
+# # insecure: true
+# # accessKeySecret:
+# # key: accessKey
+# # name: artifacts-minio
+# # secretKeySecret:
+# # key: secretKey
+# # name: artifacts-minio
+# # useSDKCreds: true
+# container:
+# image: face:latest
+# command: [python face.py]
+# args: ["/input", "/output"]
+# # parameters:
+# # - src:
+# # dependencyName: test-dep
+# # dataKey: notification.0.s3.object.key
+# # dest: spec.templates.0.inputs.artifacts.0.s3.key
diff --git a/argo/setup.sh b/argo/setup.sh
index 72a2339..493e866 100644
--- a/argo/setup.sh
+++ b/argo/setup.sh
@@ -1,30 +1,16 @@
#!/bin/sh
-export MINIO_ACCESSKEY="gio"
-export MINIO_SECRETKEY="p12345678"
-export MINIO_HOST="http://localhost:9000"
-
-# -- kubectl apply -n kube-system -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
-
-# helm install mio --set accessKey=${MINIO_ACCESSKEY},secretKey=${MINIO_SECRETKEY} stable/minio
-read -s
-kubectl port-forward svc/mio-minio 9000 &
-read -s
-mc config host add mio-minio ${MINIO_HOST} ${MINIO_ACCESSKEY} ${MINIO_SECRETKEY}
-mc mb mio-minio/input
+# kubectl apply -n kube-system -f mio-minio-secrets.yaml
-kubectl apply -n kube-system -f mio-minio-secrets.yaml
-
-
-
-helm repo add argo https://argoproj.github.io/argo-helm
-helm install my-argo --namespace kube-system argo/argo
-read -s
-kubectl -n kube-system port-forward deployment/my-argo-server 2746 &
-read -s
+# helm repo add argo https://argoproj.github.io/argo-helm
+# helm install my-argo --namespace kube-system argo/argo
+# read -s
+# kubectl -n kube-system port-forward deployment/my-argo-server 2746 &
+# read -s
kubectl apply -n kube-system -f argo-events-crds-install.yaml
+read -s
kubectl apply -n kube-system -f event-source.yaml