From d76202ebb03a8864505284fbcc794bac4825dfcc Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Wed, 28 Aug 2024 01:35:34 +1000 Subject: [PATCH] add service argo events --- .../base/cluster-role-binding.yaml | 13 ++ .../argo-events/base/cluster-role.yaml | 168 ++++++++++++++++++ .../argo-events/base/configmap.yaml | 76 ++++++++ .../base/custom-resource-definition.yaml | 120 +++++++++++++ .../argo-events/base/deployment.yaml | 52 ++++++ .../argo-events/base/kustomization.yaml | 9 + .../argo-events/base/service-account.yaml | 6 + .../argo-events/env/k3s-cluster/config.json | 14 ++ .../env/k3s-cluster/kustomization.yaml | 4 + 9 files changed, 462 insertions(+) create mode 100644 infrastructures/argo-events/base/cluster-role-binding.yaml create mode 100644 infrastructures/argo-events/base/cluster-role.yaml create mode 100644 infrastructures/argo-events/base/configmap.yaml create mode 100644 infrastructures/argo-events/base/custom-resource-definition.yaml create mode 100644 infrastructures/argo-events/base/deployment.yaml create mode 100644 infrastructures/argo-events/base/kustomization.yaml create mode 100644 infrastructures/argo-events/base/service-account.yaml create mode 100644 infrastructures/argo-events/env/k3s-cluster/config.json create mode 100644 infrastructures/argo-events/env/k3s-cluster/kustomization.yaml diff --git a/infrastructures/argo-events/base/cluster-role-binding.yaml b/infrastructures/argo-events/base/cluster-role-binding.yaml new file mode 100644 index 0000000..7fcf96f --- /dev/null +++ b/infrastructures/argo-events/base/cluster-role-binding.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: argo-events-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: argo-events-role +subjects: + - kind: ServiceAccount + name: argo-events-sa + namespace: argo-events \ No newline at end of file diff --git a/infrastructures/argo-events/base/cluster-role.yaml b/infrastructures/argo-events/base/cluster-role.yaml new file mode 100644 index 0000000..4eed5c1 --- /dev/null +++ b/infrastructures/argo-events/base/cluster-role.yaml @@ -0,0 +1,168 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + rbac.authorization.k8s.io/aggregate-to-admin: "true" + name: argo-events-aggregate-to-admin +rules: + - apiGroups: + - argoproj.io + resources: + - sensors + - sensors/finalizers + - sensors/status + - eventsources + - eventsources/finalizers + - eventsources/status + - eventbus + - eventbus/finalizers + - eventbus/status + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + rbac.authorization.k8s.io/aggregate-to-edit: "true" + name: argo-events-aggregate-to-edit +rules: + - apiGroups: + - argoproj.io + resources: + - sensors + - sensors/finalizers + - sensors/status + - eventsources + - eventsources/finalizers + - eventsources/status + - eventbus + - eventbus/finalizers + - eventbus/status + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + rbac.authorization.k8s.io/aggregate-to-view: "true" + name: argo-events-aggregate-to-view +rules: + - apiGroups: + - argoproj.io + resources: + - sensors + - sensors/finalizers + - sensors/status + - eventsources + - eventsources/finalizers + - eventsources/status + - eventbus + - eventbus/finalizers + - eventbus/status + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: argo-events-role +rules: + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - argoproj.io + resources: + - sensors + - sensors/finalizers + - sensors/status + - eventsources + - eventsources/finalizers + - eventsources/status + - eventbus + - eventbus/finalizers + - eventbus/status + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - pods + - pods/exec + - configmaps + - services + - persistentvolumeclaims + verbs: + - create + - get + - list + - watch + - update + - patch + - delete + - apiGroups: + - "" + resources: + - secrets + verbs: + - create + - get + - list + - update + - patch + - delete + - apiGroups: + - apps + resources: + - deployments + - statefulsets + verbs: + - create + - get + - list + - watch + - update + - patch + - delete \ No newline at end of file diff --git a/infrastructures/argo-events/base/configmap.yaml b/infrastructures/argo-events/base/configmap.yaml new file mode 100644 index 0000000..2089d17 --- /dev/null +++ b/infrastructures/argo-events/base/configmap.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: v1 +data: + controller-config.yaml: | + eventBus: + nats: + versions: + - version: 0.22.1 + natsStreamingImage: nats-streaming:0.22.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.8.0 + jetstream: + # Default JetStream settings, could be overridden by EventBus JetStream specs + settings: | + # https://docs.nats.io/running-a-nats-service/configuration#jetstream + # Only configure "max_memory_store" or "max_file_store", do not set "store_dir" as it has been hardcoded. + # e.g. 1G. -1 means no limit, up to 75% of available memory + max_memory_store: -1 + # e.g. 20G. -1 means no limit, Up to 1TB if available + max_file_store: 1TB + streamConfig: | + # The default properties of the streams to be created in this JetStream service + maxMsgs: 50000 + maxAge: 168h + maxBytes: -1 + replicas: 3 + duplicates: 300s + versions: + - version: latest + natsImage: nats:2.10.10 + metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0 + configReloaderImage: natsio/nats-server-config-reloader:0.14.0 + startCommand: /nats-server + - version: 2.8.1 + natsImage: nats:2.8.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.8.1-alpine + natsImage: nats:2.8.1-alpine + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: nats-server + - version: 2.8.2 + natsImage: nats:2.8.2 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.8.2-alpine + natsImage: nats:2.8.2-alpine + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: nats-server + - version: 2.9.1 + natsImage: nats:2.9.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.9.12 + natsImage: nats:2.9.12 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.9.16 + natsImage: nats:2.9.16 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.10.10 + natsImage: nats:2.10.10 + metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0 + configReloaderImage: natsio/nats-server-config-reloader:0.14.0 + startCommand: /nats-server +kind: ConfigMap +metadata: + name: argo-events-controller-config + namespace: argo-events \ No newline at end of file diff --git a/infrastructures/argo-events/base/custom-resource-definition.yaml b/infrastructures/argo-events/base/custom-resource-definition.yaml new file mode 100644 index 0000000..a8627cb --- /dev/null +++ b/infrastructures/argo-events/base/custom-resource-definition.yaml @@ -0,0 +1,120 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: eventbus.argoproj.io +spec: + group: argoproj.io + names: + kind: EventBus + listKind: EventBusList + plural: eventbus + shortNames: + - eb + singular: eventbus + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - metadata + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: eventsources.argoproj.io +spec: + group: argoproj.io + names: + kind: EventSource + listKind: EventSourceList + plural: eventsources + shortNames: + - es + singular: eventsource + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - metadata + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: sensors.argoproj.io +spec: + group: argoproj.io + names: + kind: Sensor + listKind: SensorList + plural: sensors + shortNames: + - sn + singular: sensor + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - metadata + - spec + type: object + served: true + storage: true + subresources: + status: {} \ No newline at end of file diff --git a/infrastructures/argo-events/base/deployment.yaml b/infrastructures/argo-events/base/deployment.yaml new file mode 100644 index 0000000..514eae0 --- /dev/null +++ b/infrastructures/argo-events/base/deployment.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: controller-manager + namespace: argo-events +spec: + replicas: 1 + selector: + matchLabels: + app: controller-manager + template: + metadata: + labels: + app: controller-manager + spec: + containers: + - args: + - controller + env: + - name: ARGO_EVENTS_IMAGE + value: quay.io/argoproj/argo-events:v1.9.2 + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: quay.io/argoproj/argo-events:v1.9.2 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 3 + periodSeconds: 3 + name: controller-manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 3 + periodSeconds: 3 + volumeMounts: + - mountPath: /etc/argo-events + name: controller-config-volume + securityContext: + runAsNonRoot: true + runAsUser: 9731 + serviceAccountName: argo-events-sa + volumes: + - configMap: + name: argo-events-controller-config + name: controller-config-volume \ No newline at end of file diff --git a/infrastructures/argo-events/base/kustomization.yaml b/infrastructures/argo-events/base/kustomization.yaml new file mode 100644 index 0000000..6dd6323 --- /dev/null +++ b/infrastructures/argo-events/base/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./custom-resource-definition.yaml + - ./service-account.yaml + - ./cluster-role.yaml + - ./cluster-role-binding.yaml + - ./configmap.yaml + - ./deployment.yaml \ No newline at end of file diff --git a/infrastructures/argo-events/base/service-account.yaml b/infrastructures/argo-events/base/service-account.yaml new file mode 100644 index 0000000..4bf05e7 --- /dev/null +++ b/infrastructures/argo-events/base/service-account.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: argo-events-sa + namespace: argo-events \ No newline at end of file diff --git a/infrastructures/argo-events/env/k3s-cluster/config.json b/infrastructures/argo-events/env/k3s-cluster/config.json new file mode 100644 index 0000000..f6c903d --- /dev/null +++ b/infrastructures/argo-events/env/k3s-cluster/config.json @@ -0,0 +1,14 @@ +{ + "appName": "argo-events", + "userGivenName": "argo-events", + "namespace": "argo-events", + "destNamespace": "argo-events", + "destServer": "https://kubernetes.default.svc", + "srcPath": "infrastructures/argo-events/env/k3s-cluster", + "srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git", + "srcTargetRevision": "", + "labels": null, + "annotations": { + "argo-events.argoproj.io/release-version": "v1.9.2" + } +} \ No newline at end of file diff --git a/infrastructures/argo-events/env/k3s-cluster/kustomization.yaml b/infrastructures/argo-events/env/k3s-cluster/kustomization.yaml new file mode 100644 index 0000000..a227ac4 --- /dev/null +++ b/infrastructures/argo-events/env/k3s-cluster/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base \ No newline at end of file