diff --git a/Makefile b/Makefile index d65a3cbde7f2..2f372144c847 100644 --- a/Makefile +++ b/Makefile @@ -59,8 +59,8 @@ endif endif # version change, so does the file location -MANIFEST_VERSION_FILE := dist/$(MANIFEST_VERSION) -VERSION_FILE := dist/$(VERSION) +MANIFESTS_VERSION_FILE := dist/$(MANIFESTS_VERSION).manifests-version +VERSION_FILE := dist/$(VERSION).version # perform static compilation STATIC_BUILD ?= true @@ -118,7 +118,7 @@ build: status clis executor-image controller-image manifests/install.yaml manife .PHONY: status status: - # GIT_TAG=$(GIT_TAG), GIT_BRANCH=$(GIT_BRANCH), GIT_TREE_STATE=$(GIT_TREE_STATE), VERSION=$(VERSION), DEV_IMAGE=$(DEV_IMAGE) + # GIT_TAG=$(GIT_TAG), GIT_BRANCH=$(GIT_BRANCH), GIT_TREE_STATE=$(GIT_TREE_STATE), MANIFESTS_VERSION=$(MANIFESTS_VERSION), VERSION=$(VERSION), DEV_IMAGE=$(DEV_IMAGE) # cli @@ -263,28 +263,19 @@ codegen-core: ./hack/update-codegen.sh $(call restore_go_mod) -.PHONY: manifests -manifests: status manifests/install.yaml manifests/namespace-install.yaml manifests/quick-start-mysql.yaml manifests/quick-start-postgres.yaml manifests/quick-start-no-db.yaml test/e2e/manifests/postgres.yaml test/e2e/manifests/mysql.yaml test/e2e/manifests/no-db.yaml - # we use a different file to ./VERSION to force updating manifests after a `make clean` -$(MANIFEST_VERSION_FILE): +$(MANIFESTS_VERSION_FILE): @mkdir -p dist - touch $(MANIFEST_VERSION_FILE) - -manifests/install.yaml: $(MANIFEST_VERSION_FILE) $(MANIFESTS) - kustomize build --load_restrictor=LoadRestrictionsNone manifests/cluster-install | sed "s/:latest/:$(MANIFESTS_VERSION)/" | ./hack/auto-gen-msg.sh > manifests/install.yaml - -manifests/namespace-install.yaml: $(MANIFEST_VERSION_FILE) $(MANIFESTS) - kustomize build --load_restrictor=LoadRestrictionsNone manifests/namespace-install | sed "s/:latest/:$(MANIFESTS_VERSION)/" | ./hack/auto-gen-msg.sh > manifests/namespace-install.yaml - -manifests/quick-start-no-db.yaml: $(MANIFEST_VERSION_FILE) $(MANIFESTS) - kustomize build --load_restrictor=LoadRestrictionsNone manifests/quick-start/no-db | sed "s/:latest/:$(MANIFESTS_VERSION)/" | ./hack/auto-gen-msg.sh > manifests/quick-start-no-db.yaml - -manifests/quick-start-mysql.yaml: $(MANIFEST_VERSION_FILE) $(MANIFESTS) - kustomize build --load_restrictor=LoadRestrictionsNone manifests/quick-start/mysql | sed "s/:latest/:$(MANIFESTS_VERSION)/" | ./hack/auto-gen-msg.sh > manifests/quick-start-mysql.yaml + touch $(MANIFESTS_VERSION_FILE) -manifests/quick-start-postgres.yaml: $(MANIFEST_VERSION_FILE) $(MANIFESTS) - kustomize build --load_restrictor=LoadRestrictionsNone manifests/quick-start/postgres | sed "s/:latest/:$(MANIFESTS_VERSION)/" | ./hack/auto-gen-msg.sh > manifests/quick-start-postgres.yaml +.PHONY: manifests +manifests: + ./hack/update-image-tags.sh manifests/base $(MANIFESTS_VERSION) + kustomize build --load_restrictor=none manifests/cluster-install | ./hack/auto-gen-msg.sh > manifests/install.yaml + kustomize build --load_restrictor=none manifests/namespace-install | ./hack/auto-gen-msg.sh > manifests/namespace-install.yaml + kustomize build --load_restrictor=none manifests/quick-start/no-db | ./hack/auto-gen-msg.sh > manifests/quick-start-no-db.yaml + kustomize build --load_restrictor=none manifests/quick-start/mysql | ./hack/auto-gen-msg.sh > manifests/quick-start-mysql.yaml + kustomize build --load_restrictor=none manifests/quick-start/postgres | ./hack/auto-gen-msg.sh > manifests/quick-start-postgres.yaml # lint/test/etc @@ -324,38 +315,15 @@ $(VERSION_FILE): @mkdir -p dist touch $(VERSION_FILE) -test/e2e/manifests/postgres.yaml: $(MANIFESTS) $(E2E_MANIFESTS) - # Create Postgres e2e manifests - kustomize build --load_restrictor=LoadRestrictionsNone test/e2e/manifests/postgres | ./hack/auto-gen-msg.sh > test/e2e/manifests/postgres.yaml - -dist/postgres.yaml: test/e2e/manifests/postgres.yaml $(VERSION_FILE) - # Create Postgres e2e manifests - cat test/e2e/manifests/postgres.yaml | sed 's/:latest/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' > dist/postgres.yaml - -test/e2e/manifests/no-db/overlays/argo-server-deployment.yaml: test/e2e/manifests/postgres/overlays/argo-server-deployment.yaml -test/e2e/manifests/no-db/overlays/argo-server-deployment.yaml: - cat test/e2e/manifests/postgres/overlays/argo-server-deployment.yaml | ./hack/auto-gen-msg.sh > test/e2e/manifests/no-db/overlays/argo-server-deployment.yaml - -test/e2e/manifests/no-db/overlays/workflow-controller-deployment.yaml: test/e2e/manifests/postgres/overlays/workflow-controller-deployment.yaml -test/e2e/manifests/no-db/overlays/workflow-controller-deployment.yaml: - cat test/e2e/manifests/postgres/overlays/workflow-controller-deployment.yaml | ./hack/auto-gen-msg.sh > test/e2e/manifests/no-db/overlays/workflow-controller-deployment.yaml - -test/e2e/manifests/no-db.yaml: $(MANIFESTS) $(E2E_MANIFESTS) - # Create no DB e2e manifests - kustomize build --load_restrictor=LoadRestrictionsNone test/e2e/manifests/no-db | ./hack/auto-gen-msg.sh > test/e2e/manifests/no-db.yaml - -dist/no-db.yaml: test/e2e/manifests/no-db.yaml $(VERSION_FILE) - # Create no DB e2e manifests - # We additionlly disable ALWAY_OFFLOAD_NODE_STATUS - cat test/e2e/manifests/no-db.yaml | sed 's/:latest/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' | sed 's/"true"/"false"/' > dist/no-db.yaml +dist/postgres.yaml: $(MANIFESTS) $(E2E_MANIFESTS) $(VERSION_FILE) + kustomize build --load_restrictor=none test/e2e/manifests/postgres | sed 's/:$(MANIFESTS_VERSION)/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' > dist/postgres.yaml -test/e2e/manifests/mysql.yaml: $(MANIFESTS) $(E2E_MANIFESTS) - # Create MySQL e2e manifests - kustomize build --load_restrictor=LoadRestrictionsNone test/e2e/manifests/mysql | ./hack/auto-gen-msg.sh > test/e2e/manifests/mysql.yaml +dist/no-db.yaml: $(MANIFESTS) $(E2E_MANIFESTS) $(VERSION_FILE) + # We additionally disable ALWAYS_OFFLOAD_NODE_STATUS + kustomize build --load_restrictor=none test/e2e/manifests/no-db | sed 's/:$(MANIFESTS_VERSION)/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' | sed 's/"true"/"false"/' > dist/no-db.yaml -dist/mysql.yaml: test/e2e/manifests/mysql.yaml $(VERSION_FILE) - # Create MySQL e2e manifests - cat test/e2e/manifests/mysql.yaml | sed 's/:latest/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' > dist/mysql.yaml +dist/mysql.yaml: $(MANIFESTS) $(E2E_MANIFESTS) $(VERSION_FILE) + kustomize build --load_restrictor=none test/e2e/manifests/mysql | sed 's/:$(MANIFESTS_VERSION)/:$(VERSION)/' | sed 's/pns/$(E2E_EXECUTOR)/' > dist/mysql.yaml .PHONY: install install: dist/postgres.yaml dist/mysql.yaml dist/no-db.yaml @@ -493,7 +461,7 @@ $(HOME)/go/bin/swagger: .PHONY: swagger swagger: api/openapi-spec/swagger.json -api/openapi-spec/swagger.json: $(HOME)/go/bin/swagger $(SWAGGER_FILES) $(MANIFEST_VERSION_FILE) hack/swaggify.sh +api/openapi-spec/swagger.json: $(HOME)/go/bin/swagger $(SWAGGER_FILES) $(MANIFESTS_VERSION_FILE) hack/swaggify.sh swagger mixin -c 611 $(SWAGGER_FILES) | sed 's/VERSION/$(MANIFESTS_VERSION)/' | ./hack/swaggify.sh > api/openapi-spec/swagger.json .PHONY: docs diff --git a/docs/cluster-workflow-templates.md b/docs/cluster-workflow-templates.md index 5ce1d5f2f5c1..f9a329db4591 100644 --- a/docs/cluster-workflow-templates.md +++ b/docs/cluster-workflow-templates.md @@ -47,7 +47,7 @@ spec: steps: # You should only reference external "templates" in a "steps" or "dag" "template". - - name: call-whalesay-template templateRef: # You can reference a "template" from another "WorkflowTemplate or ClusterWorkflowTemplate" using this field - name: cluster-workflow-template-whalesay-template # This is the name of the "WorkflowTemplate or ClusterWorkflowTempalte" CRD that contains the "template" you want + name: cluster-workflow-template-whalesay-template # This is the name of the "WorkflowTemplate or ClusterWorkflowTemplate" CRD that contains the "template" you want template: whalesay-template # This is the name of the "template" you want to reference clusterScope: true # This field indicates this templateRef is pointing ClusterWorkflowTemplate arguments: # You can pass in arguments as normal diff --git a/docs/public-api.md b/docs/public-api.md index 216a3a0ef7bf..dc4956ec233a 100644 --- a/docs/public-api.md +++ b/docs/public-api.md @@ -4,6 +4,7 @@ Argo Workflows public API is defined by the following: * The file `api/openapi-spec/swagger.json` * The schema of the table `argo_archived_workflows`. +* The installation options listed in `manifests/README.md`. See: diff --git a/hack/update-image-tags.sh b/hack/update-image-tags.sh new file mode 100755 index 000000000000..5ca6e85d1ca3 --- /dev/null +++ b/hack/update-image-tags.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -eu -o pipefail + +dir=$1 +image_tag=$2 + +find "$dir" -type f -name '*.yaml' | while read -r f ; do + sed "s|argoproj/\(.*\):.*|argoproj/\1:${image_tag}|" "$f" > .tmp + mv .tmp "$f" +done diff --git a/manifests/README.md b/manifests/README.md index 91cee13e6622..dc2a8f6681a2 100644 --- a/manifests/README.md +++ b/manifests/README.md @@ -11,4 +11,14 @@ Several sets of manifests are provided: | [quick-start-postgres.yaml](quick-start-postgres.yaml) | Quick start including MinIO and Postgres. Suitable for testing. | If installing with `kubectl install -f https://...`, remember to use the link to the file's raw version. -Otherwise you will get `mapping values are not allowed in this context`. \ No newline at end of file +Otherwise you will get `mapping values are not allowed in this context`. + +## Kustomize + +> v2.8 and after + +You can use `./cluster-install` and `./namespace-install` as Kustomize remote bases. + +## Helm + +See [argo-helm](https://github.com/argoproj/argo-helm). \ No newline at end of file diff --git a/manifests/base/argo-server/argo-server-deployment.yaml b/manifests/base/argo-server/argo-server-deployment.yaml index ed673dd0321f..1621491b9d31 100644 --- a/manifests/base/argo-server/argo-server-deployment.yaml +++ b/manifests/base/argo-server/argo-server-deployment.yaml @@ -24,4 +24,4 @@ spec: scheme: HTTP path: / initialDelaySeconds: 10 - periodSeconds: 20 \ No newline at end of file + periodSeconds: 20 diff --git a/manifests/base/workflow-controller/workflow-controller-metrics-service.yaml b/manifests/base/workflow-controller/workflow-controller-metrics-service.yaml index ea9ce9242f27..01b67b16d2ef 100644 --- a/manifests/base/workflow-controller/workflow-controller-metrics-service.yaml +++ b/manifests/base/workflow-controller/workflow-controller-metrics-service.yaml @@ -8,4 +8,4 @@ spec: ports: - port: 9090 targetPort: 9090 - protocol: TCP \ No newline at end of file + protocol: TCP diff --git a/test/e2e/manifests/mysql.yaml b/test/e2e/manifests/mysql.yaml deleted file mode 100644 index 49324384e3e1..000000000000 --- a/test/e2e/manifests/mysql.yaml +++ /dev/null @@ -1,632 +0,0 @@ -# This is an auto-generated file. DO NOT EDIT -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: clusterworkflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: ClusterWorkflowTemplate - plural: clusterworkflowtemplates - shortNames: - - clusterwftmpl - - cwft - scope: Cluster - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: cronworkflows.argoproj.io -spec: - group: argoproj.io - names: - kind: CronWorkflow - plural: cronworkflows - shortNames: - - cronwf - - cwf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflows.argoproj.io -spec: - additionalPrinterColumns: - - JSONPath: .status.phase - description: Status of the workflow - name: Status - type: string - - JSONPath: .status.startedAt - description: When the workflow was started - format: date-time - name: Age - type: date - group: argoproj.io - names: - kind: Workflow - plural: workflows - shortNames: - - wf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTemplate - plural: workflowtemplates - shortNames: - - wftmpl - scope: Namespaced - version: v1alpha1 ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-role -rules: -- apiGroups: - - "" - resources: - - pods - - pods/exec - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - create - - delete -- apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete - - create -- apiGroups: - - argoproj.io - resources: - - workflowtemplates - - workflowtemplates/finalizers - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - cronworkflows - - cronworkflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - events - verbs: - - create -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - get - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-server-role -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - "" - resources: - - pods - - pods/exec - - pods/log - verbs: - - get - - list - - watch - - delete -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - workflows - - workflowtemplates - - cronworkflows - verbs: - - create - - get - - list - - watch - - update - - patch - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: workflow-role -rules: -- apiGroups: - - "" - resources: - - pods - verbs: - - get - - watch - - patch -- apiGroups: - - "" - resources: - - pods/log - verbs: - - get - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-server-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-role -subjects: -- kind: ServiceAccount - name: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-server-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-server-role -subjects: -- kind: ServiceAccount - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: workflow-default-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: workflow-role -subjects: -- kind: ServiceAccount - name: default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-server-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-server-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo-server - namespace: argo ---- -apiVersion: v1 -data: - artifactRepository: | - archiveLogs: true - s3: - bucket: my-bucket - endpoint: minio:9000 - insecure: true - accessKeySecret: - name: my-minio-cred - key: accesskey - secretKeySecret: - name: my-minio-cred - key: secretkey - containerRuntimeExecutor: pns - executor: | - imagePullPolicy: Never - resources: - requests: - cpu: 0.1 - memory: 64Mi - limits: - cpu: 0.5 - memory: 128Mi - featureFlags: | - resourcesDuration: true - links: | - - name: Example Workflow Link - scope: workflow - url: http://logging-facility?namespace=${metadata.namespace}&workflowName=${metadata.name} - - name: Example Pod Link - scope: pod - url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name} - metricsConfig: | - enabled: true - path: /metrics - port: 9090 - persistence: | - connectionPool: - maxIdleConns: 100 - maxOpenConns: 0 - nodeStatusOffLoad: true - archive: true - mysql: - host: mysql - port: 3306 - database: argo - tableName: argo_workflows - userNameSecret: - name: argo-mysql-config - key: username - passwordSecret: - name: argo-mysql-config - key: password -kind: ConfigMap -metadata: - name: workflow-controller-configmap ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: mysql - name: argo-mysql-config -stringData: - password: password - username: mysql -type: Opaque ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: minio - name: my-minio-cred -stringData: - accesskey: admin - secretkey: password -type: Opaque ---- -apiVersion: v1 -kind: Service -metadata: - name: argo-server -spec: - ports: - - port: 2746 - targetPort: 2746 - selector: - app: argo-server ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: minio - name: minio -spec: - ports: - - port: 9000 - protocol: TCP - targetPort: 9000 - selector: - app: minio ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: mysql - name: mysql -spec: - ports: - - port: 3306 - protocol: TCP - targetPort: 3306 - selector: - app: mysql ---- -apiVersion: v1 -kind: Service -metadata: - name: workflow-controller-metrics -spec: - ports: - - port: 9090 - protocol: TCP - targetPort: 9090 - selector: - app: workflow-controller ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: argo-server -spec: - selector: - matchLabels: - app: argo-server - template: - metadata: - labels: - app: argo-server - spec: - containers: - - args: - - server - - --namespaced - - --auth-mode - - client - - --loglevel - - debug - env: - - name: ARGO_TOKEN - value: password - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/argocli:latest - imagePullPolicy: Never - name: argo-server - ports: - - containerPort: 2746 - readinessProbe: - httpGet: - path: / - port: 2746 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 20 - serviceAccountName: argo-server ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: mysql - name: mysql -spec: - selector: - matchLabels: - app: mysql - template: - metadata: - labels: - app: mysql - name: mysql - spec: - containers: - - env: - - name: MYSQL_USER - value: mysql - - name: MYSQL_PASSWORD - value: password - - name: MYSQL_DATABASE - value: argo - - name: MYSQL_RANDOM_ROOT_PASSWORD - value: "yes" - image: mysql:8 - name: main - ports: - - containerPort: 5432 - readinessProbe: - exec: - command: - - mysql - - -u - - mysql - - -ppassword - - argo - - -e - - SELECT 1 - initialDelaySeconds: 15 - timeoutSeconds: 2 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workflow-controller -spec: - selector: - matchLabels: - app: workflow-controller - template: - metadata: - labels: - app: workflow-controller - spec: - containers: - - args: - - --executor-image - - argoproj/argoexec:latest - - --namespaced - - --loglevel - - debug - command: - - workflow-controller - env: - - name: ALWAYS_OFFLOAD_NODE_STATUS - value: "true" - - name: OFFLOAD_NODE_STATUS_TTL - value: 30s - - name: WORKFLOW_GC_PERIOD - value: 30s - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/workflow-controller:latest - imagePullPolicy: Never - name: workflow-controller - serviceAccountName: argo ---- -apiVersion: v1 -kind: Pod -metadata: - labels: - app: minio - name: minio -spec: - containers: - - command: - - minio - - server - - /data - env: - - name: MINIO_ACCESS_KEY - value: admin - - name: MINIO_SECRET_KEY - value: password - image: minio/minio:RELEASE.2019-12-17T23-16-33Z - lifecycle: - postStart: - exec: - command: - - mkdir - - -p - - /data/my-bucket - livenessProbe: - httpGet: - path: /minio/health/live - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10 - name: main - ports: - - containerPort: 9000 - readinessProbe: - httpGet: - path: /minio/health/ready - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10 diff --git a/test/e2e/manifests/no-db.yaml b/test/e2e/manifests/no-db.yaml deleted file mode 100644 index 27448ce0b53c..000000000000 --- a/test/e2e/manifests/no-db.yaml +++ /dev/null @@ -1,547 +0,0 @@ -# This is an auto-generated file. DO NOT EDIT -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: clusterworkflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: ClusterWorkflowTemplate - plural: clusterworkflowtemplates - shortNames: - - clusterwftmpl - - cwft - scope: Cluster - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: cronworkflows.argoproj.io -spec: - group: argoproj.io - names: - kind: CronWorkflow - plural: cronworkflows - shortNames: - - cronwf - - cwf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflows.argoproj.io -spec: - additionalPrinterColumns: - - JSONPath: .status.phase - description: Status of the workflow - name: Status - type: string - - JSONPath: .status.startedAt - description: When the workflow was started - format: date-time - name: Age - type: date - group: argoproj.io - names: - kind: Workflow - plural: workflows - shortNames: - - wf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTemplate - plural: workflowtemplates - shortNames: - - wftmpl - scope: Namespaced - version: v1alpha1 ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-role -rules: -- apiGroups: - - "" - resources: - - pods - - pods/exec - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - create - - delete -- apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete - - create -- apiGroups: - - argoproj.io - resources: - - workflowtemplates - - workflowtemplates/finalizers - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - cronworkflows - - cronworkflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - events - verbs: - - create -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - get - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-server-role -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - "" - resources: - - pods - - pods/exec - - pods/log - verbs: - - get - - list - - watch - - delete -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - workflows - - workflowtemplates - - cronworkflows - verbs: - - create - - get - - list - - watch - - update - - patch - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: workflow-role -rules: -- apiGroups: - - "" - resources: - - pods - verbs: - - get - - watch - - patch -- apiGroups: - - "" - resources: - - pods/log - verbs: - - get - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-server-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-role -subjects: -- kind: ServiceAccount - name: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-server-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-server-role -subjects: -- kind: ServiceAccount - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: workflow-default-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: workflow-role -subjects: -- kind: ServiceAccount - name: default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-server-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-server-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo-server - namespace: argo ---- -apiVersion: v1 -data: - artifactRepository: | - archiveLogs: true - s3: - bucket: my-bucket - endpoint: minio:9000 - insecure: true - accessKeySecret: - name: my-minio-cred - key: accesskey - secretKeySecret: - name: my-minio-cred - key: secretkey - containerRuntimeExecutor: pns - executor: | - imagePullPolicy: Never - resources: - requests: - cpu: 0.1 - memory: 64Mi - limits: - cpu: 0.5 - memory: 128Mi - featureFlags: | - resourcesDuration: true - links: | - - name: Example Workflow Link - scope: workflow - url: http://logging-facility?namespace=${metadata.namespace}&workflowName=${metadata.name} - - name: Example Pod Link - scope: pod - url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name} - metricsConfig: | - enabled: true - path: /metrics - port: 9090 -kind: ConfigMap -metadata: - name: workflow-controller-configmap ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: minio - name: my-minio-cred -stringData: - accesskey: admin - secretkey: password -type: Opaque ---- -apiVersion: v1 -kind: Service -metadata: - name: argo-server -spec: - ports: - - port: 2746 - targetPort: 2746 - selector: - app: argo-server ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: minio - name: minio -spec: - ports: - - port: 9000 - protocol: TCP - targetPort: 9000 - selector: - app: minio ---- -apiVersion: v1 -kind: Service -metadata: - name: workflow-controller-metrics -spec: - ports: - - port: 9090 - protocol: TCP - targetPort: 9090 - selector: - app: workflow-controller ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: argo-server -spec: - selector: - matchLabels: - app: argo-server - template: - metadata: - labels: - app: argo-server - spec: - containers: - - args: - - server - - --namespaced - - --auth-mode - - client - - --loglevel - - debug - env: - - name: ARGO_TOKEN - value: password - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/argocli:latest - imagePullPolicy: Never - name: argo-server - ports: - - containerPort: 2746 - readinessProbe: - httpGet: - path: / - port: 2746 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 20 - serviceAccountName: argo-server ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workflow-controller -spec: - selector: - matchLabels: - app: workflow-controller - template: - metadata: - labels: - app: workflow-controller - spec: - containers: - - args: - - --executor-image - - argoproj/argoexec:latest - - --namespaced - - --loglevel - - debug - command: - - workflow-controller - env: - - name: ALWAYS_OFFLOAD_NODE_STATUS - value: "true" - - name: OFFLOAD_NODE_STATUS_TTL - value: 30s - - name: WORKFLOW_GC_PERIOD - value: 30s - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/workflow-controller:latest - imagePullPolicy: Never - name: workflow-controller - serviceAccountName: argo ---- -apiVersion: v1 -kind: Pod -metadata: - labels: - app: minio - name: minio -spec: - containers: - - command: - - minio - - server - - /data - env: - - name: MINIO_ACCESS_KEY - value: admin - - name: MINIO_SECRET_KEY - value: password - image: minio/minio:RELEASE.2019-12-17T23-16-33Z - lifecycle: - postStart: - exec: - command: - - mkdir - - -p - - /data/my-bucket - livenessProbe: - httpGet: - path: /minio/health/live - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10 - name: main - ports: - - containerPort: 9000 - readinessProbe: - httpGet: - path: /minio/health/ready - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10 diff --git a/test/e2e/manifests/postgres.yaml b/test/e2e/manifests/postgres.yaml deleted file mode 100644 index 1da5a583126d..000000000000 --- a/test/e2e/manifests/postgres.yaml +++ /dev/null @@ -1,624 +0,0 @@ -# This is an auto-generated file. DO NOT EDIT -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: clusterworkflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: ClusterWorkflowTemplate - plural: clusterworkflowtemplates - shortNames: - - clusterwftmpl - - cwft - scope: Cluster - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: cronworkflows.argoproj.io -spec: - group: argoproj.io - names: - kind: CronWorkflow - plural: cronworkflows - shortNames: - - cronwf - - cwf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflows.argoproj.io -spec: - additionalPrinterColumns: - - JSONPath: .status.phase - description: Status of the workflow - name: Status - type: string - - JSONPath: .status.startedAt - description: When the workflow was started - format: date-time - name: Age - type: date - group: argoproj.io - names: - kind: Workflow - plural: workflows - shortNames: - - wf - scope: Namespaced - version: v1alpha1 ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: workflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTemplate - plural: workflowtemplates - shortNames: - - wftmpl - scope: Namespaced - version: v1alpha1 ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-role -rules: -- apiGroups: - - "" - resources: - - pods - - pods/exec - verbs: - - create - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - create - - delete -- apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete - - create -- apiGroups: - - argoproj.io - resources: - - workflowtemplates - - workflowtemplates/finalizers - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - cronworkflows - - cronworkflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete -- apiGroups: - - "" - resources: - - events - verbs: - - create -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - get - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-server-role -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - "" - resources: - - pods - - pods/exec - - pods/log - verbs: - - get - - list - - watch - - delete -- apiGroups: - - "" - resources: - - secrets - verbs: - - get -- apiGroups: - - argoproj.io - resources: - - workflows - - workflowtemplates - - cronworkflows - verbs: - - create - - get - - list - - watch - - update - - patch - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: workflow-role -rules: -- apiGroups: - - "" - resources: - - pods - verbs: - - get - - watch - - patch -- apiGroups: - - "" - resources: - - pods/log - verbs: - - get - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-server-clusterworkflowtemplate-role -rules: -- apiGroups: - - argoproj.io - resources: - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - create - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-role -subjects: -- kind: ServiceAccount - name: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-server-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-server-role -subjects: -- kind: ServiceAccount - name: argo-server ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: workflow-default-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: workflow-role -subjects: -- kind: ServiceAccount - name: default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-server-clusterworkflowtemplate-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-server-clusterworkflowtemplate-role -subjects: -- kind: ServiceAccount - name: argo-server - namespace: argo ---- -apiVersion: v1 -data: - artifactRepository: | - archiveLogs: true - s3: - bucket: my-bucket - endpoint: minio:9000 - insecure: true - accessKeySecret: - name: my-minio-cred - key: accesskey - secretKeySecret: - name: my-minio-cred - key: secretkey - containerRuntimeExecutor: pns - executor: | - imagePullPolicy: Never - resources: - requests: - cpu: 0.1 - memory: 64Mi - limits: - cpu: 0.5 - memory: 128Mi - featureFlags: | - resourcesDuration: true - links: | - - name: Example Workflow Link - scope: workflow - url: http://logging-facility?namespace=${metadata.namespace}&workflowName=${metadata.name} - - name: Example Pod Link - scope: pod - url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name} - metricsConfig: | - enabled: true - path: /metrics - port: 9090 - persistence: | - connectionPool: - maxIdleConns: 100 - maxOpenConns: 0 - nodeStatusOffLoad: true - archive: true - postgresql: - host: postgres - port: 5432 - database: postgres - tableName: argo_workflows - userNameSecret: - name: argo-postgres-config - key: username - passwordSecret: - name: argo-postgres-config - key: password -kind: ConfigMap -metadata: - name: workflow-controller-configmap ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: postgres - name: argo-postgres-config -stringData: - password: password - username: postgres -type: Opaque ---- -apiVersion: v1 -kind: Secret -metadata: - labels: - app: minio - name: my-minio-cred -stringData: - accesskey: admin - secretkey: password -type: Opaque ---- -apiVersion: v1 -kind: Service -metadata: - name: argo-server -spec: - ports: - - port: 2746 - targetPort: 2746 - selector: - app: argo-server ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: minio - name: minio -spec: - ports: - - port: 9000 - protocol: TCP - targetPort: 9000 - selector: - app: minio ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: postgres - name: postgres -spec: - ports: - - port: 5432 - protocol: TCP - targetPort: 5432 - selector: - app: postgres ---- -apiVersion: v1 -kind: Service -metadata: - name: workflow-controller-metrics -spec: - ports: - - port: 9090 - protocol: TCP - targetPort: 9090 - selector: - app: workflow-controller ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: argo-server -spec: - selector: - matchLabels: - app: argo-server - template: - metadata: - labels: - app: argo-server - spec: - containers: - - args: - - server - - --namespaced - - --auth-mode - - client - - --loglevel - - debug - env: - - name: ARGO_TOKEN - value: password - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/argocli:latest - imagePullPolicy: Never - name: argo-server - ports: - - containerPort: 2746 - readinessProbe: - httpGet: - path: / - port: 2746 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 20 - serviceAccountName: argo-server ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: postgres - name: postgres -spec: - selector: - matchLabels: - app: postgres - template: - metadata: - labels: - app: postgres - name: postgres - spec: - containers: - - env: - - name: POSTGRES_PASSWORD - value: password - image: postgres:12-alpine - name: main - ports: - - containerPort: 5432 - readinessProbe: - exec: - command: - - psql - - -U - - postgres - - -c - - SELECT 1 - initialDelaySeconds: 15 - timeoutSeconds: 2 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workflow-controller -spec: - selector: - matchLabels: - app: workflow-controller - template: - metadata: - labels: - app: workflow-controller - spec: - containers: - - args: - - --executor-image - - argoproj/argoexec:latest - - --namespaced - - --loglevel - - debug - command: - - workflow-controller - env: - - name: ALWAYS_OFFLOAD_NODE_STATUS - value: "true" - - name: OFFLOAD_NODE_STATUS_TTL - value: 30s - - name: WORKFLOW_GC_PERIOD - value: 30s - - name: UPPERIO_DB_DEBUG - value: "1" - image: argoproj/workflow-controller:latest - imagePullPolicy: Never - name: workflow-controller - serviceAccountName: argo ---- -apiVersion: v1 -kind: Pod -metadata: - labels: - app: minio - name: minio -spec: - containers: - - command: - - minio - - server - - /data - env: - - name: MINIO_ACCESS_KEY - value: admin - - name: MINIO_SECRET_KEY - value: password - image: minio/minio:RELEASE.2019-12-17T23-16-33Z - lifecycle: - postStart: - exec: - command: - - mkdir - - -p - - /data/my-bucket - livenessProbe: - httpGet: - path: /minio/health/live - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10 - name: main - ports: - - containerPort: 9000 - readinessProbe: - httpGet: - path: /minio/health/ready - port: 9000 - initialDelaySeconds: 5 - periodSeconds: 10