From 64d82fe201c2baced8bcb4e4449ec7a679d8c46a Mon Sep 17 00:00:00 2001 From: eshalev Date: Wed, 6 Nov 2024 16:42:06 +0200 Subject: [PATCH 1/4] added create quay repo + name change to advanced --- README.md | 3 + documentation-templates/README.md | 6 +- .../skeleton/.mvn/wrapper/.gitignore | 0 .../.mvn/wrapper/MavenWrapperDownloader.java | 0 .../.mvn/wrapper/maven-wrapper.properties | 0 .../skeleton/LICENSE | 0 .../skeleton/README.md | 0 .../skeleton/catalog-info.yaml | 0 .../skeleton/input.json | 0 .../skeleton/mvnw | 0 .../skeleton/mvnw.cmd | 0 .../skeleton/pom.xml | 0 .../skeleton/src/main/docker/Dockerfile.jvm | 0 .../src/main/docker/Dockerfile.legacy-jar | 0 .../src/main/docker/Dockerfile.native | 0 .../src/main/docker/Dockerfile.native-micro | 0 .../SampleAssessment.java | 0 .../WorkflowOption.java | 0 .../WorkflowOptions.java | 0 .../main/resources/application-dev.properties | 0 .../src/main/resources/application.properties | 0 .../${{values.artifactId}}-input-schema.json | 0 ...s.artifactId}}-workflow-result-schema.json | 0 .../src/main/resources/specs/dataindex.yaml | 0 .../src/main/resources/template.sw.yaml | 0 .../template.yaml | 87 +++++++++++++++++-- .../basic-workflow/template.yaml | 81 ++++++++++++++++- 27 files changed, 163 insertions(+), 14 deletions(-) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/.mvn/wrapper/.gitignore (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/.mvn/wrapper/MavenWrapperDownloader.java (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/.mvn/wrapper/maven-wrapper.properties (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/LICENSE (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/README.md (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/catalog-info.yaml (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/input.json (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/mvnw (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/mvnw.cmd (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/pom.xml (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/docker/Dockerfile.jvm (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/docker/Dockerfile.legacy-jar (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/docker/Dockerfile.native (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/docker/Dockerfile.native-micro (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/SampleAssessment.java (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOption.java (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOptions.java (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/application-dev.properties (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/application.properties (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/schemas/${{values.artifactId}}-input-schema.json (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/schemas/${{values.artifactId}}-workflow-result-schema.json (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/specs/dataindex.yaml (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/skeleton/src/main/resources/template.sw.yaml (100%) rename scaffolder-templates/{complex-assessment-workflow => advanced-workflow}/template.yaml (79%) diff --git a/README.md b/README.md index 739872d..cf8c302 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ The documentation templates provide recommended structure and integration docume In case of `Tekton` CI pipeline, the secrets `OPENSHIFT_SERVER` and `OPENSHIFT_TOKEN` are used by the GitHub action that deploys the Tekton resources. Please provide organization-level configuration for these secrets and ensure that they can be managed by the newly created repositories according to the visibility options (currently set to `public`). +If you wish to create a new Quay repository, you would need to possess an API token for your Quay organization, and pass it when prompted. +After successfully creating a new Quay repository, the user would have to configure a robot user with write permissions to continue the repository fo their CI/CD process. + The value of the `OPENSHIFT_TOKEN` secret must provide the permissions to create resources in multiple namesapces, so we provide a simple procedure to bind it to the `cluster-admin` role, but we recommend to configure a new role with only the required privileges instead. diff --git a/documentation-templates/README.md b/documentation-templates/README.md index d243d6a..ae19067 100644 --- a/documentation-templates/README.md +++ b/documentation-templates/README.md @@ -31,9 +31,9 @@ The assessment workflow project generated from the basic-workflow template is a ### basic-workflow as infrastructure The infrastructure workflow project generated from the basic-workflow template is a simple workflow that prints out the workflow's data input. -## complex-assessment-workflow -This template allows the user to generate a complex assessment workflow project from the user's inputs collected. It includes: -1. **custom java code** to perform complex operations on the user's inputs. In this case, it evaluates the user's input as string by comparing it to the word `default` to print out the default workflow options or an empty workflow options list from the java code. +## advanced-workflow +This template allows the user to generate an advanced assessment workflow project from the user's inputs collected. It includes: +1. **custom java code** to perform advanced operations on the user's inputs. In this case, it evaluates the user's input as string by comparing it to the word `default` to print out the default workflow options or an empty workflow options list from the java code. 2. **pre-check subflow** to validate whether the workflows in the returned assessment workflow options exist in the workflows service. If there are non-existed workflows in the options, then it removes them from the options and outputs the remaining valid ones to the user. 3. **data output schema validation** to ensure that the returned assessment workflow options list aligns with the expected schema to render options correctly in the UI. 4. **README file** with the prerequisites and instructions to run and test the generated assessment workflow. diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/.gitignore b/scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/.gitignore similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/.gitignore rename to scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/.gitignore diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/MavenWrapperDownloader.java b/scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/MavenWrapperDownloader.java rename to scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/maven-wrapper.properties b/scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/.mvn/wrapper/maven-wrapper.properties rename to scaffolder-templates/advanced-workflow/skeleton/.mvn/wrapper/maven-wrapper.properties diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/LICENSE b/scaffolder-templates/advanced-workflow/skeleton/LICENSE similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/LICENSE rename to scaffolder-templates/advanced-workflow/skeleton/LICENSE diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/README.md b/scaffolder-templates/advanced-workflow/skeleton/README.md similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/README.md rename to scaffolder-templates/advanced-workflow/skeleton/README.md diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/catalog-info.yaml b/scaffolder-templates/advanced-workflow/skeleton/catalog-info.yaml similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/catalog-info.yaml rename to scaffolder-templates/advanced-workflow/skeleton/catalog-info.yaml diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/input.json b/scaffolder-templates/advanced-workflow/skeleton/input.json similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/input.json rename to scaffolder-templates/advanced-workflow/skeleton/input.json diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/mvnw b/scaffolder-templates/advanced-workflow/skeleton/mvnw similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/mvnw rename to scaffolder-templates/advanced-workflow/skeleton/mvnw diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/mvnw.cmd b/scaffolder-templates/advanced-workflow/skeleton/mvnw.cmd similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/mvnw.cmd rename to scaffolder-templates/advanced-workflow/skeleton/mvnw.cmd diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/pom.xml b/scaffolder-templates/advanced-workflow/skeleton/pom.xml similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/pom.xml rename to scaffolder-templates/advanced-workflow/skeleton/pom.xml diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.jvm b/scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.jvm similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.jvm rename to scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.jvm diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.legacy-jar b/scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.legacy-jar similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.legacy-jar rename to scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.legacy-jar diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.native b/scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.native similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.native rename to scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.native diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.native-micro b/scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.native-micro similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/docker/Dockerfile.native-micro rename to scaffolder-templates/advanced-workflow/skeleton/src/main/docker/Dockerfile.native-micro diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/SampleAssessment.java b/scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/SampleAssessment.java similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/SampleAssessment.java rename to scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/SampleAssessment.java diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOption.java b/scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOption.java similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOption.java rename to scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOption.java diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOptions.java b/scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOptions.java similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOptions.java rename to scaffolder-templates/advanced-workflow/skeleton/src/main/java/${{values.groupId}}/${{values.artifactId}}/WorkflowOptions.java diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/application-dev.properties b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/application-dev.properties similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/application-dev.properties rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/application-dev.properties diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/application.properties b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/application.properties similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/application.properties rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/application.properties diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-input-schema.json b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-input-schema.json similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-input-schema.json rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-input-schema.json diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-workflow-result-schema.json b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-workflow-result-schema.json similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-workflow-result-schema.json rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/schemas/${{values.artifactId}}-workflow-result-schema.json diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/specs/dataindex.yaml b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/specs/dataindex.yaml similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/specs/dataindex.yaml rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/specs/dataindex.yaml diff --git a/scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/template.sw.yaml b/scaffolder-templates/advanced-workflow/skeleton/src/main/resources/template.sw.yaml similarity index 100% rename from scaffolder-templates/complex-assessment-workflow/skeleton/src/main/resources/template.sw.yaml rename to scaffolder-templates/advanced-workflow/skeleton/src/main/resources/template.sw.yaml diff --git a/scaffolder-templates/complex-assessment-workflow/template.yaml b/scaffolder-templates/advanced-workflow/template.yaml similarity index 79% rename from scaffolder-templates/complex-assessment-workflow/template.yaml rename to scaffolder-templates/advanced-workflow/template.yaml index b7534db..590941c 100644 --- a/scaffolder-templates/complex-assessment-workflow/template.yaml +++ b/scaffolder-templates/advanced-workflow/template.yaml @@ -1,9 +1,9 @@ apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: - name: complex-assessment-workflow-bootstrap - title: Complex assessment workflow bootstrap project - description: Bootstrap project for complex assessment serverless workflow using custom java code + name: Advanced-Workflow-Bootstrap + title: Advanced workflow bootstrap project + description: Bootstrap project for an advanced assessment serverless workflow using custom java code tags: - orchestrator - built-in @@ -19,9 +19,9 @@ metadata: icon: techdocs spec: owner: janus-orchestrator - type: complex-assessment-workflow-bootstrap + type: Advanced-Workflow-Bootstrap parameters: - - title: Provide information about the workflow software project + - title: Workflow Software Project description: Configure the github repository where the Maven software project is located required: - orgName @@ -72,7 +72,7 @@ spec: catalogFilter: kind: - System - - title: Provide information about the Build environment + - title: Build Environment required: - CI properties: @@ -114,7 +114,7 @@ spec: quayRepoName: title: Quay Repository Name type: string - description: The Quay Repository Name of the published workflow. The repository must exist before deploying the gitops. + description: The Quay Repository Name of the published workflow. If non existent, a new quay repository can be created with this name. persistencePSQLSecretName: title: PostgreSQL Secret Name type: string @@ -162,7 +162,74 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName + - title: Create Quay Repository + required: + - quayCreateNewRepo + - CI + properties: + quayCreateNewRepo: + title: Create a new Quay repository with the provided name? (You must select a CI/CD Method in the Build Environment) + type: string + default: "Yes" + enum: + - "Yes" + - "No" + dependencies: + quayCreateNewRepo: + oneOf: + - properties: + quayCreateNewRepo: + const: "No" + - properties: + quayCreateNewRepo: + const: "Yes" + token: + title: Quay AuthToken + type: string + description: Bearer token used for authorization + ui:widget: password + visibility: + title: New quay Repository Visiblity + type: string + description: Visibility setting for the created repository, either public or private + ui:widget: select + enum: ["public", "private"] + repoKind: + title: New Quay Repository Kind + type: string + description: The created repository kind either image, application or none + ui:widget: select + enum: ["image", "application"] + newRepoDescription: + title: New Quay Repository Description + type: string + description: The repository desription + baseUrl: + title: Quay Base URL + type: string + description: URL of your quay instance, set to "https://quay.io" by default + quayNamespace: + title: Quay Namespace + type: string + description: Quay Namespace. Defaults to the namespace of the token. + required: + - visibility + - newRepoDescription + - quayNamespace + - token steps: + - id: createQuayRepository + name: Create Quay Repository + action: quay:create-repository + if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + input: + baseUrl: ${{ parameters.baseUrl }} + token: ${{ parameters.token }} + name: ${{ parameters.quayRepoName }} + visibility: ${{ parameters.visibility }} + description: ${{ parameters.newRepoDescription }} + repoKind: ${{ parameters.repoKind }} + namespace: ${{ parameters.quayNamespace }} - id: workflowCodeTemplate name: Generating the Workflow Source Code and Catalog Info Component action: fetch:template @@ -294,9 +361,15 @@ spec: links: - if: ${{ parameters.CI == 'tekton_argocd' }} title: Bootstrap the GitOps Resources + icon: github url: https://github.com/${{ parameters.orgName }}/${{ parameters.repoName }}-gitops/tree/main/bootstrap - title: Open the Source Code Repository + icon: github url: ${{ steps.publishWorkflow.output.remoteUrl }} - title: Open the Catalog Info Component icon: catalog entityRef: ${{ steps.register.output.entityRef }} + - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + title: Quay Repository + icon: dashboard + url: ${{ steps['createQuayRepository'].output.repositoryUrl }} diff --git a/scaffolder-templates/basic-workflow/template.yaml b/scaffolder-templates/basic-workflow/template.yaml index ea73bfb..27503cc 100644 --- a/scaffolder-templates/basic-workflow/template.yaml +++ b/scaffolder-templates/basic-workflow/template.yaml @@ -21,7 +21,7 @@ spec: owner: janus-orchestrator type: basic-workflow-bootstrap parameters: - - title: Provide information about the workflow software project + - title: Workflow Software Project description: Configure the github repository where the Maven software project is located required: - orgName @@ -69,7 +69,7 @@ spec: catalogFilter: kind: - System - - title: Provide information about the workflow type + - title: Workflow Type description: Select the workflow type. For an assessment, provide an infrastructure workflow option, which should already be set up in your environment required: - workflowType @@ -102,7 +102,7 @@ spec: description: Workflow ID, the unique identifier of the infrastructure worklow available in the environment required: - infrastructureWorkflowId - - title: Provide information about the build environment + - title: Build Environment required: - CI properties: @@ -144,7 +144,7 @@ spec: quayRepoName: title: Quay Repository Name type: string - description: The Quay Repository Name of the published workflow. The repository must exist before deploying the gitops. + description: The Quay Repository Name of the published workflow. If non existent, a new quay repository can be created with this name. persistencePSQLSecretName: title: PostgreSQL Secret Name type: string @@ -192,7 +192,74 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName + - title: Create Quay Repository + required: + - quayCreateNewRepo + properties: + quayCreateNewRepo: + title: Create a new Quay repository with the provided name? (You must select a CI/CD Method in the Build Environment) + type: string + default: "Yes" + enum: + - "Yes" + - "No" + dependencies: + quayCreateNewRepo: + oneOf: + - properties: + quayCreateNewRepo: + const: "No" + - properties: + quayCreateNewRepo: + const: "Yes" + token: + title: Quay AuthToken + type: string + description: Bearer token used for authorization + ui:widget: password + visibility: + title: New quay Repository Visiblity + type: string + description: Visibility setting for the created repository, either public or private + ui:widget: select + enum: ["public", "private"] + repoKind: + title: New Quay Repository Kind + type: string + description: The created repository kind either image, application or none + ui:widget: select + enum: ["image", "application"] + newRepoDescription: + title: New Quay Repository Description + type: string + description: The repository desription + baseUrl: + title: Quay Base URL + type: string + description: URL of your quay instance, set to "https://quay.io" by default + quayNamespace: + title: Quay Namespace + type: string + description: Quay Namespace. Defaults to the namespace of the token. + required: + - visibility + - newRepoDescription + - quayNamespace + - token steps: + - id: createQuayRepository + name: Create Quay Repository + action: quay:create-repository + if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + input: + baseUrl: ${{ parameters.baseUrl }} + token: ${{ parameters.token }} + name: ${{ parameters.quayRepoName }} + visibility: ${{ parameters.visibility }} + description: ${{ parameters.newRepoDescription }} + repoKind: ${{ parameters.repoKind }} + namespace: ${{ parameters.quayNamespace }} + - id: workflowCodeTemplate name: Generating the Workflow Source Code and Catalog Info Component action: fetch:template @@ -329,9 +396,15 @@ spec: links: - if: ${{ parameters.CI == 'tekton_argocd' }} title: Bootstrap the GitOps Resources + icon: github url: https://github.com/${{ parameters.orgName }}/${{ parameters.repoName }}-gitops/tree/main/bootstrap - title: Open the Source Code Repository + icon: github url: ${{ steps.publishWorkflow.output.remoteUrl }} - title: Open the Catalog Info Component icon: catalog entityRef: ${{ steps.register.output.entityRef }} + - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + title: Quay Repository + icon: dashboard + url: ${{ steps['createQuayRepository'].output.repositoryUrl }} From d5b6e26c38b6eb88f6a77255389d7e563fa1368a Mon Sep 17 00:00:00 2001 From: eshalev Date: Thu, 7 Nov 2024 14:59:35 +0200 Subject: [PATCH 2/4] all changes after PR review --- README.md | 2 +- .../advanced-workflow/template.yaml | 107 ++++++++++-------- .../basic-workflow/template.yaml | 102 ++++++++++------- 3 files changed, 123 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index cf8c302..719fd10 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ In case of `Tekton` CI pipeline, the secrets `OPENSHIFT_SERVER` and `OPENSHIFT_T resources. Please provide organization-level configuration for these secrets and ensure that they can be managed by the newly created repositories according to the visibility options (currently set to `public`). If you wish to create a new Quay repository, you would need to possess an API token for your Quay organization, and pass it when prompted. -After successfully creating a new Quay repository, the user would have to configure a robot user with write permissions to continue the repository fo their CI/CD process. +After successfully creating a new Quay repository, the user would have to configure a robot user with write permissions to continue the repository for their CI/CD process. The value of the `OPENSHIFT_TOKEN` secret must provide the permissions to create resources in multiple namesapces, so we provide a simple procedure to bind it to the `cluster-admin` role, but we recommend to configure a new role with only the required privileges instead. diff --git a/scaffolder-templates/advanced-workflow/template.yaml b/scaffolder-templates/advanced-workflow/template.yaml index 590941c..ae1c431 100644 --- a/scaffolder-templates/advanced-workflow/template.yaml +++ b/scaffolder-templates/advanced-workflow/template.yaml @@ -1,7 +1,7 @@ apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: - name: Advanced-Workflow-Bootstrap + name: advanced-workflow-bootstrap title: Advanced workflow bootstrap project description: Bootstrap project for an advanced assessment serverless workflow using custom java code tags: @@ -19,7 +19,7 @@ metadata: icon: techdocs spec: owner: janus-orchestrator - type: Advanced-Workflow-Bootstrap + type: advanced-workflow-bootstrap parameters: - title: Workflow Software Project description: Configure the github repository where the Maven software project is located @@ -27,6 +27,7 @@ spec: - orgName - repoName - workflowId + - description - infrastructureWorkflowId - owner - system @@ -107,54 +108,44 @@ spec: type: string default: orchestrator-gitops description: Deployment namespace for ArgoCD and Tekton resources - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay Organization Name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: The Quay Repository Name of the published workflow. If non existent, a new quay repository can be created with this name. persistencePSQLSecretName: title: PostgreSQL Secret Name type: string default: sonataflow-psql-postgresql - description: Name of the secret in which the PostgreSQL secrets are stored. Shall be in the same namespace as the workflow. + description: Name of the secret in which the PostgreSQL secrets are stored. Shall be in the same namespace as the workflow persistencePSQLUserKey: title: PostgreSQL User key from secret type: string - description: The key name in which the PostgreSQL user is stored. + description: The key name in which the PostgreSQL user is stored default: postgres-username persistencePSQLPasswordKey: title: PostgreSQL Password key from secret type: string - description: The key name in which the PostgreSQL password is stored. + description: The key name in which the PostgreSQL password is stored default: postgres-password persistencePSQLServiceName: title: PostgreSQL K8s Service Name type: string default: sonataflow-psql-postgresql - description: Name of the service running the PostgreSQL instance. + description: Name of the service running the PostgreSQL instance persistencePSQLServiceNamespace: title: PostgreSQL K8s Service Namespace type: string default: sonataflow-infra - description: Namespace of the service running the PostgreSQL instance. + description: Namespace of the service running the PostgreSQL instance persistencePSQLServicePort: title: PostgreSQL Port type: integer default: 5432 - description: Port on which the PostgreSQL instance is running. + description: Port on which the PostgreSQL instance is running persistencePSQLDatabaseName: title: PostgreSQL Database Name type: string - description: Name of the database to use for persistence. + description: Name of the database to use for persistence default: sonataflow required: - namespace - argocdNamespace - - quayOrgName - - quayRepoName - persistencePSQLSecretName - persistencePSQLUserKey - persistencePSQLPasswordKey @@ -162,66 +153,93 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName - - title: Create Quay Repository + - title: Quay Configuration required: - - quayCreateNewRepo - - CI + - quayConfig properties: - quayCreateNewRepo: - title: Create a new Quay repository with the provided name? (You must select a CI/CD Method in the Build Environment) + quayConfig: + title: Create a new Quay repository with the provided name? type: string - default: "Yes" + default: "Use Existing Repository" enum: - - "Yes" - - "No" + - "Use Existing Repository" + - "Create New Repository" + - "No Quay Config Needed" dependencies: - quayCreateNewRepo: + quayConfig: oneOf: - properties: - quayCreateNewRepo: - const: "No" + quayConfig: + const: "No Quay Config Needed" - properties: - quayCreateNewRepo: - const: "Yes" + quayConfig: + const: "Use Existing Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay organization name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: The Quay repository Name of the published workflow. The repository must exist before deploying the gitops + required: + - quayOrgName + - quayRepoName + - properties: + quayConfig: + const: "Create New Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay Organization Name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: A name to create a new Quay repository of the published workflow token: title: Quay AuthToken type: string - description: Bearer token used for authorization + description: Quay organization bearer token used for authorization ui:widget: password visibility: - title: New quay Repository Visiblity + title: Quay Repository Visiblity type: string description: Visibility setting for the created repository, either public or private ui:widget: select enum: ["public", "private"] + default: public repoKind: - title: New Quay Repository Kind + title: Quay Repository Kind type: string - description: The created repository kind either image, application or none + description: The created repository kind, either image or application ui:widget: select enum: ["image", "application"] + default: image newRepoDescription: - title: New Quay Repository Description + title: Quay Repository Description type: string - description: The repository desription + description: The repository description baseUrl: title: Quay Base URL type: string - description: URL of your quay instance, set to "https://quay.io" by default + description: URL of your Quay instance, set to "https://quay.io" by default + default: "https://quay.io" quayNamespace: title: Quay Namespace type: string - description: Quay Namespace. Defaults to the namespace of the token. + description: The Quay namespace of the published workflow required: - visibility - newRepoDescription - quayNamespace - token + - quayOrgName + - quayRepoName steps: - id: createQuayRepository name: Create Quay Repository action: quay:create-repository - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + if: ${{ parameters.quayConfig == 'Create New Repository' }} input: baseUrl: ${{ parameters.baseUrl }} token: ${{ parameters.token }} @@ -359,8 +377,7 @@ spec: catalogInfoPath: /catalog-info.yaml output: links: - - if: ${{ parameters.CI == 'tekton_argocd' }} - title: Bootstrap the GitOps Resources + - title: Bootstrap the GitOps Resources icon: github url: https://github.com/${{ parameters.orgName }}/${{ parameters.repoName }}-gitops/tree/main/bootstrap - title: Open the Source Code Repository @@ -369,7 +386,7 @@ spec: - title: Open the Catalog Info Component icon: catalog entityRef: ${{ steps.register.output.entityRef }} - - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} - title: Quay Repository + # If quayConfig is not populated, the Quay URL link will not appear. + - title: Quay Repository icon: dashboard url: ${{ steps['createQuayRepository'].output.repositoryUrl }} diff --git a/scaffolder-templates/basic-workflow/template.yaml b/scaffolder-templates/basic-workflow/template.yaml index 27503cc..9258f3f 100644 --- a/scaffolder-templates/basic-workflow/template.yaml +++ b/scaffolder-templates/basic-workflow/template.yaml @@ -27,6 +27,7 @@ spec: - orgName - repoName - workflowId + - description - owner - system properties: @@ -137,54 +138,44 @@ spec: type: string default: orchestrator-gitops description: Deployment namespace for ArgoCD and Tekton resources - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay Organization Name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: The Quay Repository Name of the published workflow. If non existent, a new quay repository can be created with this name. persistencePSQLSecretName: title: PostgreSQL Secret Name type: string default: sonataflow-psql-postgresql - description: Name of the secret in which the PostgreSQL secrets are stored. Shall be in the same namespace as the workflow. + description: Name of the secret in which the PostgreSQL secrets are stored. Shall be in the same namespace as the workflow persistencePSQLUserKey: title: PostgreSQL User key from secret type: string - description: The key name in which the PostgreSQL user is stored. + description: The key name in which the PostgreSQL user is stored default: postgres-username persistencePSQLPasswordKey: title: PostgreSQL Password key from secret type: string - description: The key name in which the PostgreSQL password is stored. + description: The key name in which the PostgreSQL password is stored default: postgres-password persistencePSQLServiceName: title: PostgreSQL K8s Service Name type: string default: sonataflow-psql-postgresql - description: Name of the service running the PostgreSQL instance. + description: Name of the service running the PostgreSQL instance persistencePSQLServiceNamespace: title: PostgreSQL K8s Service Namespace type: string default: sonataflow-infra - description: Namespace of the service running the PostgreSQL instance. + description: Namespace of the service running the PostgreSQL instance persistencePSQLServicePort: title: PostgreSQL Port type: integer default: 5432 - description: Port on which the PostgreSQL instance is running. + description: Port on which the PostgreSQL instance is running persistencePSQLDatabaseName: title: PostgreSQL Database Name type: string - description: Name of the database to use for persistence. + description: Name of the database to use for persistence default: sonataflow required: - namespace - argocdNamespace - - quayOrgName - - quayRepoName - persistencePSQLSecretName - persistencePSQLUserKey - persistencePSQLPasswordKey @@ -192,65 +183,93 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName - - title: Create Quay Repository + - title: Quay Configuration required: - - quayCreateNewRepo + - quayConfig properties: - quayCreateNewRepo: - title: Create a new Quay repository with the provided name? (You must select a CI/CD Method in the Build Environment) + quayConfig: + title: Create a new Quay repository or use an existing one? type: string - default: "Yes" + default: "Use Existing Repository" enum: - - "Yes" - - "No" + - "Use Existing Repository" + - "Create New Repository" + - "No Quay Config Needed" dependencies: - quayCreateNewRepo: + quayConfig: oneOf: - properties: - quayCreateNewRepo: - const: "No" + quayConfig: + const: "No Quay Config Needed" + - properties: + quayConfig: + const: "Use Existing Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay organization name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: The Quay repository name of the published workflow. The repository must exist before deploying the gitops + required: + - quayOrgName + - quayRepoName - properties: - quayCreateNewRepo: - const: "Yes" + quayConfig: + const: "Create New Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay Organization Name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: A name to create a new Quay Repository of the published workflow token: title: Quay AuthToken type: string - description: Bearer token used for authorization + description: Quay rganization bearer token used for authorization ui:widget: password visibility: - title: New quay Repository Visiblity + title: Quay Repository Visiblity type: string description: Visibility setting for the created repository, either public or private ui:widget: select enum: ["public", "private"] + default: public repoKind: - title: New Quay Repository Kind + title: Quay Repository Kind type: string - description: The created repository kind either image, application or none + description: The created Quay repository kind, either image or application ui:widget: select enum: ["image", "application"] + default: image newRepoDescription: - title: New Quay Repository Description + title: Quay Repository Description type: string - description: The repository desription + description: The Quay repository description baseUrl: title: Quay Base URL type: string - description: URL of your quay instance, set to "https://quay.io" by default + description: URL of your Quay instance + default: "https://quay.io" quayNamespace: title: Quay Namespace type: string - description: Quay Namespace. Defaults to the namespace of the token. + description: The Quay namespace of the published workflow required: - visibility - newRepoDescription - quayNamespace - token + - quayOrgName + - quayRepoName steps: - id: createQuayRepository name: Create Quay Repository action: quay:create-repository - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} + if: ${{ parameters.quayConfig == 'Create New Repository' }} input: baseUrl: ${{ parameters.baseUrl }} token: ${{ parameters.token }} @@ -394,8 +413,7 @@ spec: catalogInfoPath: /catalog-info.yaml output: links: - - if: ${{ parameters.CI == 'tekton_argocd' }} - title: Bootstrap the GitOps Resources + - title: Bootstrap the GitOps Resources icon: github url: https://github.com/${{ parameters.orgName }}/${{ parameters.repoName }}-gitops/tree/main/bootstrap - title: Open the Source Code Repository @@ -404,7 +422,7 @@ spec: - title: Open the Catalog Info Component icon: catalog entityRef: ${{ steps.register.output.entityRef }} - - if: ${{ parameters.quayCreateNewRepo == 'Yes' }} - title: Quay Repository + # If quayConfig is not populated, the Quay URL link will not appear. + - title: Quay Repository icon: dashboard url: ${{ steps['createQuayRepository'].output.repositoryUrl }} From e1f880cb6fd3def7129b9a62ce9ddc83b9cd3091 Mon Sep 17 00:00:00 2001 From: eshalev Date: Sun, 10 Nov 2024 16:01:51 +0200 Subject: [PATCH 3/4] new design after code review, better UX --- .../advanced-workflow/template.yaml | 158 +++++++++--------- .../basic-workflow/template.yaml | 158 +++++++++--------- 2 files changed, 152 insertions(+), 164 deletions(-) diff --git a/scaffolder-templates/advanced-workflow/template.yaml b/scaffolder-templates/advanced-workflow/template.yaml index ae1c431..e632a43 100644 --- a/scaffolder-templates/advanced-workflow/template.yaml +++ b/scaffolder-templates/advanced-workflow/template.yaml @@ -143,6 +143,82 @@ spec: type: string description: Name of the database to use for persistence default: sonataflow + quayConfig: + title: Quay Configuration + description: Choose between creating a new Quay repository or using an existing one. + type: string + default: "Use Existing Repository" + enum: + - "Use Existing Repository" + - "Create New Repository" + ui:widget: radio + dependencies: + quayConfig: + oneOf: + - properties: + quayConfig: + const: "Use Existing Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay organization name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: The Quay repository name of the published workflow. The repository must exist before deploying the gitops + required: + - quayOrgName + - quayRepoName + - properties: + quayConfig: + const: "Create New Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay Organization Name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: A name to create a new Quay Repository of the published workflow + token: + title: Quay AuthToken + type: string + description: Quay rganization bearer token used for authorization + ui:widget: password + visibility: + title: Quay Repository Visiblity + type: string + description: Visibility setting for the created repository, either public or private + ui:widget: select + enum: ["public", "private"] + default: public + repoKind: + title: Quay Repository Kind + type: string + description: The created Quay repository kind, either image or application + ui:widget: select + enum: ["image", "application"] + default: image + newRepoDescription: + title: Quay Repository Description + type: string + description: The Quay repository description + baseUrl: + title: Quay Base URL + type: string + description: URL of your Quay instance + default: "https://quay.io" + quayNamespace: + title: Quay Namespace + type: string + description: The Quay namespace of the published workflow + required: + - visibility + - newRepoDescription + - quayNamespace + - token + - quayOrgName + - quayRepoName required: - namespace - argocdNamespace @@ -153,88 +229,6 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName - - title: Quay Configuration - required: - - quayConfig - properties: - quayConfig: - title: Create a new Quay repository with the provided name? - type: string - default: "Use Existing Repository" - enum: - - "Use Existing Repository" - - "Create New Repository" - - "No Quay Config Needed" - dependencies: - quayConfig: - oneOf: - - properties: - quayConfig: - const: "No Quay Config Needed" - - properties: - quayConfig: - const: "Use Existing Repository" - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay organization name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: The Quay repository Name of the published workflow. The repository must exist before deploying the gitops - required: - - quayOrgName - - quayRepoName - - properties: - quayConfig: - const: "Create New Repository" - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay Organization Name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: A name to create a new Quay repository of the published workflow - token: - title: Quay AuthToken - type: string - description: Quay organization bearer token used for authorization - ui:widget: password - visibility: - title: Quay Repository Visiblity - type: string - description: Visibility setting for the created repository, either public or private - ui:widget: select - enum: ["public", "private"] - default: public - repoKind: - title: Quay Repository Kind - type: string - description: The created repository kind, either image or application - ui:widget: select - enum: ["image", "application"] - default: image - newRepoDescription: - title: Quay Repository Description - type: string - description: The repository description - baseUrl: - title: Quay Base URL - type: string - description: URL of your Quay instance, set to "https://quay.io" by default - default: "https://quay.io" - quayNamespace: - title: Quay Namespace - type: string - description: The Quay namespace of the published workflow - required: - - visibility - - newRepoDescription - - quayNamespace - - token - - quayOrgName - - quayRepoName steps: - id: createQuayRepository name: Create Quay Repository diff --git a/scaffolder-templates/basic-workflow/template.yaml b/scaffolder-templates/basic-workflow/template.yaml index 9258f3f..9bf0c9b 100644 --- a/scaffolder-templates/basic-workflow/template.yaml +++ b/scaffolder-templates/basic-workflow/template.yaml @@ -173,6 +173,82 @@ spec: type: string description: Name of the database to use for persistence default: sonataflow + quayConfig: + title: Quay Configuration + description: Choose between creating a new Quay repository or using an existing one. + type: string + default: "Use Existing Repository" + enum: + - "Use Existing Repository" + - "Create New Repository" + ui:widget: radio + dependencies: + quayConfig: + oneOf: + - properties: + quayConfig: + const: "Use Existing Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay organization name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: The Quay repository name of the published workflow. The repository must exist before deploying the gitops + required: + - quayOrgName + - quayRepoName + - properties: + quayConfig: + const: "Create New Repository" + quayOrgName: + title: Quay Organization Name + type: string + description: The Quay Organization Name of the published workflow + quayRepoName: + title: Quay Repository Name + type: string + description: A name to create a new Quay Repository of the published workflow + token: + title: Quay AuthToken + type: string + description: Quay rganization bearer token used for authorization + ui:widget: password + visibility: + title: Quay Repository Visiblity + type: string + description: Visibility setting for the created repository, either public or private + ui:widget: select + enum: ["public", "private"] + default: public + repoKind: + title: Quay Repository Kind + type: string + description: The created Quay repository kind, either image or application + ui:widget: select + enum: ["image", "application"] + default: image + newRepoDescription: + title: Quay Repository Description + type: string + description: The Quay repository description + baseUrl: + title: Quay Base URL + type: string + description: URL of your Quay instance + default: "https://quay.io" + quayNamespace: + title: Quay Namespace + type: string + description: The Quay namespace of the published workflow + required: + - visibility + - newRepoDescription + - quayNamespace + - token + - quayOrgName + - quayRepoName required: - namespace - argocdNamespace @@ -183,88 +259,6 @@ spec: - persistencePSQLServiceNamespace - persistencePSQLServicePort - persistencePSQLDatabaseName - - title: Quay Configuration - required: - - quayConfig - properties: - quayConfig: - title: Create a new Quay repository or use an existing one? - type: string - default: "Use Existing Repository" - enum: - - "Use Existing Repository" - - "Create New Repository" - - "No Quay Config Needed" - dependencies: - quayConfig: - oneOf: - - properties: - quayConfig: - const: "No Quay Config Needed" - - properties: - quayConfig: - const: "Use Existing Repository" - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay organization name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: The Quay repository name of the published workflow. The repository must exist before deploying the gitops - required: - - quayOrgName - - quayRepoName - - properties: - quayConfig: - const: "Create New Repository" - quayOrgName: - title: Quay Organization Name - type: string - description: The Quay Organization Name of the published workflow - quayRepoName: - title: Quay Repository Name - type: string - description: A name to create a new Quay Repository of the published workflow - token: - title: Quay AuthToken - type: string - description: Quay rganization bearer token used for authorization - ui:widget: password - visibility: - title: Quay Repository Visiblity - type: string - description: Visibility setting for the created repository, either public or private - ui:widget: select - enum: ["public", "private"] - default: public - repoKind: - title: Quay Repository Kind - type: string - description: The created Quay repository kind, either image or application - ui:widget: select - enum: ["image", "application"] - default: image - newRepoDescription: - title: Quay Repository Description - type: string - description: The Quay repository description - baseUrl: - title: Quay Base URL - type: string - description: URL of your Quay instance - default: "https://quay.io" - quayNamespace: - title: Quay Namespace - type: string - description: The Quay namespace of the published workflow - required: - - visibility - - newRepoDescription - - quayNamespace - - token - - quayOrgName - - quayRepoName steps: - id: createQuayRepository name: Create Quay Repository From da1fd1d6934ae0234fb41a24f8d53a094c0ae657 Mon Sep 17 00:00:00 2001 From: eshalev Date: Sun, 10 Nov 2024 17:10:06 +0200 Subject: [PATCH 4/4] typos --- scaffolder-templates/advanced-workflow/template.yaml | 4 ++-- scaffolder-templates/basic-workflow/template.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scaffolder-templates/advanced-workflow/template.yaml b/scaffolder-templates/advanced-workflow/template.yaml index e632a43..8d88126 100644 --- a/scaffolder-templates/advanced-workflow/template.yaml +++ b/scaffolder-templates/advanced-workflow/template.yaml @@ -145,7 +145,7 @@ spec: default: sonataflow quayConfig: title: Quay Configuration - description: Choose between creating a new Quay repository or using an existing one. + description: Choose between creating a new Quay repository or using an existing one type: string default: "Use Existing Repository" enum: @@ -183,7 +183,7 @@ spec: token: title: Quay AuthToken type: string - description: Quay rganization bearer token used for authorization + description: Quay organization bearer token used for authorization ui:widget: password visibility: title: Quay Repository Visiblity diff --git a/scaffolder-templates/basic-workflow/template.yaml b/scaffolder-templates/basic-workflow/template.yaml index 9bf0c9b..3c830cb 100644 --- a/scaffolder-templates/basic-workflow/template.yaml +++ b/scaffolder-templates/basic-workflow/template.yaml @@ -175,7 +175,7 @@ spec: default: sonataflow quayConfig: title: Quay Configuration - description: Choose between creating a new Quay repository or using an existing one. + description: Choose between creating a new Quay repository or using an existing one type: string default: "Use Existing Repository" enum: @@ -213,7 +213,7 @@ spec: token: title: Quay AuthToken type: string - description: Quay rganization bearer token used for authorization + description: Quay organization bearer token used for authorization ui:widget: password visibility: title: Quay Repository Visiblity