diff --git a/.gitignore b/.gitignore index 74c7fff..040e272 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,8 @@ jspm_packages/ .yarn-integrity .cache .idea/ +cache/ +src/deployerTektonTasks/generatedDeployerTasks.ts !/.projenrc.js /test-reports/ junit.xml diff --git a/.projen/deps.json b/.projen/deps.json index c56ccd4..da43ba9 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -115,10 +115,18 @@ "name": "axios", "type": "bundled" }, + { + "name": "handlebars", + "type": "bundled" + }, { "name": "octokit", "type": "bundled" }, + { + "name": "simple-git", + "type": "bundled" + }, { "name": "cdk8s-pipelines", "type": "peer" diff --git a/.projen/tasks.json b/.projen/tasks.json index 686d7f4..513b363 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -194,6 +194,9 @@ "steps": [ { "exec": "npx ts-node src/tektonHub/CreateTektonHubLink.ts" + }, + { + "exec": "npx ts-node src/deployerTektonTasks/CreateDeployerRepoLink.ts" } ] }, @@ -270,13 +273,13 @@ "exec": "yarn upgrade npm-check-updates" }, { - "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@cdk8s/projen-common,@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,cdk8s-pipelines,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,jsii-diff,jsii-docgen,jsii-pacmak,npm-check-updates,projen,standard-version,ts-jest,ts-node,typescript,axios,octokit,cdk8s,constructs" + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@cdk8s/projen-common,@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,cdk8s-pipelines,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,jsii-diff,jsii-docgen,jsii-pacmak,npm-check-updates,projen,standard-version,ts-jest,ts-node,typescript,axios,handlebars,octokit,simple-git,cdk8s,constructs" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @cdk8s/projen-common @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser cdk8s-pipelines eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak npm-check-updates projen standard-version ts-jest ts-node typescript axios octokit cdk8s constructs" + "exec": "yarn upgrade @cdk8s/projen-common @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser cdk8s-pipelines eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak npm-check-updates projen standard-version ts-jest ts-node typescript axios handlebars octokit simple-git cdk8s constructs" }, { "exec": "npx projen" diff --git a/.projenrc.ts b/.projenrc.ts index 99af680..aa79d7f 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -14,6 +14,8 @@ const project = new cdk8s.ConstructLibraryCdk8s({ bundledDeps: [ 'octokit', 'axios', + 'simple-git', + 'handlebars', ], peerDeps: [ 'cdk8s', @@ -31,8 +33,11 @@ const project = new cdk8s.ConstructLibraryCdk8s({ ], gitignore: [ '.idea/', + 'cache/', + 'src/deployerTektonTasks/generatedDeployerTasks.ts', ], }); // Create the tekton hub tasks project.projectBuild.preCompileTask.exec('npx ts-node src/tektonHub/CreateTektonHubLink.ts'); +project.projectBuild.preCompileTask.exec('npx ts-node src/deployerTektonTasks/CreateDeployerRepoLink.ts'); project.synth(); diff --git a/API.md b/API.md index 0581f9f..d137252 100644 --- a/API.md +++ b/API.md @@ -547,186 +547,3499 @@ The personal access token (PAT) for accessing the library in GitHub. ## Classes +### ApplyOlmSubscription01 + +#### Initializers + +```typescript +import { ApplyOlmSubscription01 } from 'cdk8s-pipelines-lib' + +new ApplyOlmSubscription01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### ApplyOlmSubscription02 + +#### Initializers + +```typescript +import { ApplyOlmSubscription02 } from 'cdk8s-pipelines-lib' + +new ApplyOlmSubscription02(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + ### AWSCDKPipeline -Creator for the AWSCDKPipelineChart. +Creator for the AWSCDKPipelineChart. + +#### Initializers + +```typescript +import { AWSCDKPipeline } from 'cdk8s-pipelines-lib' + +new AWSCDKPipeline() +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | + +--- + + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| createFrom | Generates the AWS CDK Pipeline (AWSCDKPipelineChart) based on the actual project located in GitHub and specified by the configuration. | + +--- + +##### `createFrom` + +```typescript +import { AWSCDKPipeline } from 'cdk8s-pipelines-lib' + +AWSCDKPipeline.createFrom(config: GitRepoConfig) +``` + +Generates the AWS CDK Pipeline (AWSCDKPipelineChart) based on the actual project located in GitHub and specified by the configuration. + +###### `config`Required + +- *Type:* GitRepoConfig + +--- + + + +### CreateExternalSecrets01 + +#### Initializers + +```typescript +import { CreateExternalSecrets01 } from 'cdk8s-pipelines-lib' + +new CreateExternalSecrets01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmcloudSecretsManagerGet01 + +#### Initializers + +```typescript +import { IbmcloudSecretsManagerGet01 } from 'cdk8s-pipelines-lib' + +new IbmcloudSecretsManagerGet01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmLakehouseManage01 + +#### Initializers + +```typescript +import { IbmLakehouseManage01 } from 'cdk8s-pipelines-lib' + +new IbmLakehouseManage01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmPak01 + +#### Initializers + +```typescript +import { IbmPak01 } from 'cdk8s-pipelines-lib' + +new IbmPak01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmPak02 + +#### Initializers + +```typescript +import { IbmPak02 } from 'cdk8s-pipelines-lib' + +new IbmPak02(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmPak03 + +#### Initializers + +```typescript +import { IbmPak03 } from 'cdk8s-pipelines-lib' + +new IbmPak03(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmPakApplyCatalogSource01 + +#### Initializers + +```typescript +import { IbmPakApplyCatalogSource01 } from 'cdk8s-pipelines-lib' + +new IbmPakApplyCatalogSource01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### IbmPakInstallOperator01 + +#### Initializers + +```typescript +import { IbmPakInstallOperator01 } from 'cdk8s-pipelines-lib' + +new IbmPakInstallOperator01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- + +###### `value`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): TaskBuilder +``` + +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | + +--- + +##### `logicalID`Required + +```typescript +public readonly logicalID: string; +``` + +- *Type:* string + +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the `Task` built by the `TaskBuilder`. + +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] + +--- + +##### `workspaces`Optional + +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` + +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] + +Gets the workspaces for the `Task`. + +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +### InstallFromIBMOperatorPipeline + +A basic pipeline that starts with a subscription to the IBM operator catalog. + +The following steps are included in this pipeline, so you do not need to add +them. The pipeline: + +1. Creates the specified namespace. +1. Registers the IBM operator. +1. Creates an OperatorGroup. +1. Subscribes to the given `name` and `channel` + +#### Initializers + +```typescript +import { InstallFromIBMOperatorPipeline } from 'cdk8s-pipelines-lib' + +new InstallFromIBMOperatorPipeline(scope: Construct, id: string, ns: string, subscription: string, channel: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | The parent [Construct](https://cdk8s.io/docs/latest/basics/constructs/). | +| id | string | The `id` of the construct. | +| ns | string | The namespace to create and to use for subscribing to the product and channel. | +| subscription | string | The name of the subscription. | +| channel | string | The name of the channel (e.g., `v3.3`, `stable`). | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +The parent [Construct](https://cdk8s.io/docs/latest/basics/constructs/). + +--- + +##### `id`Required + +- *Type:* string + +The `id` of the construct. + +Must be unique for each one in a chart. + +--- + +##### `ns`Required + +- *Type:* string + +The namespace to create and to use for subscribing to the product and channel. + +--- + +##### `subscription`Required + +- *Type:* string + +The name of the subscription. + +For example, for IBM Event Streams is it `ibm-eventstreams`. For Red Hat Serverless, it is `serverless-operator`. + +--- + +##### `channel`Required + +- *Type:* string + +The name of the channel (e.g., `v3.3`, `stable`). + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildPipeline | Builds the actual [Pipeline](https://tekton.dev/docs/getting-started/pipelines/) from the settings configured using the fluid syntax. | +| withDescription | Provides the name for the pipeline task and will be rendered as the `name` property. | +| withName | Provides the name for the pipeline task and will be rendered as the `name` property. | +| withTask | *No description.* | + +--- + +##### `buildPipeline` + +```typescript +public buildPipeline(opts?: BuilderOptions): void +``` + +Builds the actual [Pipeline](https://tekton.dev/docs/getting-started/pipelines/) from the settings configured using the fluid syntax. + +###### `opts`Optional + +- *Type:* cdk8s-pipelines.BuilderOptions + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): PipelineBuilder +``` + +Provides the name for the pipeline task and will be rendered as the `name` property. + +###### `description`Required + +- *Type:* string + +--- + +##### `withName` + +```typescript +public withName(name: string): PipelineBuilder +``` + +Provides the name for the pipeline task and will be rendered as the `name` property. + +###### `name`Required + +- *Type:* string + +--- + +##### `withTask` + +```typescript +public withTask(taskB: TaskBuilder): PipelineBuilder +``` + +###### `taskB`Required + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| name | string | Gets the name of the pipeline. | +| params | cdk8s-pipelines.PipelineParam[] | Returns the array of `PipelineParam` objects that represent the parameters configured for the `Pipeline`. | +| workspaces | cdk8s-pipelines.PipelineWorkspace[] | Returns the array of `PipelineWorkspace` objects that represent the workspaces configured for the `Pipeline`. | + +--- + +##### `name`Required + +```typescript +public readonly name: string; +``` + +- *Type:* string + +Gets the name of the pipeline. + +--- + +##### `params`Required + +```typescript +public readonly params: PipelineParam[]; +``` + +- *Type:* cdk8s-pipelines.PipelineParam[] + +Returns the array of `PipelineParam` objects that represent the parameters configured for the `Pipeline`. + +Note this is an "expensive" get because it loops through the tasks in the +pipeline and checks for duplicates in the pipeline parameters for each task +parameter found. You should avoid calling this in a loop--instead, declare +a local variable before the loop and reference that instead. + +--- + +##### `workspaces`Required + +```typescript +public readonly workspaces: PipelineWorkspace[]; +``` + +- *Type:* cdk8s-pipelines.PipelineWorkspace[] + +Returns the array of `PipelineWorkspace` objects that represent the workspaces configured for the `Pipeline`. + +This is an "expensive" get because it loops through the workspaces in the +pipeline and checks for duplicates in the pipeline workspaces for each task +workspace found. You should avoid calling this in a loop--instead, declare +a local variable before the loop and reference that instead. + +--- + + +### KustomizeCli01 + +#### Initializers + +```typescript +import { KustomizeCli01 } from 'cdk8s-pipelines-lib' + +new KustomizeCli01(scope: Construct, id: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | + +--- + +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required + +- *Type:* string + +The annotation's key. + +--- + +###### `value`Required + +- *Type:* string + +The annotation's value. + +--- + +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required + +- *Type:* string + +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string + +--- -#### Initializers +###### `value`Required + +- *Type:* string + +--- + +##### `withName` ```typescript -import { AWSCDKPipeline } from 'cdk8s-pipelines-lib' +public withName(name: string): TaskBuilder +``` -new AWSCDKPipeline() +Sets the name of the `Task` being built. + +###### `name`Required + +- *Type:* string + +--- + +##### `withResult` + +```typescript +public withResult(name: string, description: string): TaskBuilder +``` + +Allows you to add an result to the Task. + +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required + +- *Type:* string + +The name of the result. + +--- + +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` + +```typescript +public withStep(step: TaskStepBuilder): TaskBuilder +``` + +Adds the given `step` (`TaskStepBuilder`) to the `Task`. + +###### `step`Required + +- *Type:* cdk8s-pipelines.TaskStepBuilder + +--- + +##### `withStringParam` + +```typescript +public withStringParam(param: ParameterBuilder): TaskBuilder +``` + +Adds a parameter of type string to the `Task`. + +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder ``` +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder + +--- + + +#### Properties + | **Name** | **Type** | **Description** | | --- | --- | --- | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | --- +##### `logicalID`Required -#### Static Functions +```typescript +public readonly logicalID: string; +``` -| **Name** | **Description** | -| --- | --- | -| createFrom | Generates the AWS CDK Pipeline (AWSCDKPipelineChart) based on the actual project located in GitHub and specified by the configuration. | +- *Type:* string --- -##### `createFrom` +##### `description`Optional ```typescript -import { AWSCDKPipeline } from 'cdk8s-pipelines-lib' +public readonly description: string; +``` -AWSCDKPipeline.createFrom(config: GitRepoConfig) +- *Type:* string + +Gets the `description` of the `Task`. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; ``` -Generates the AWS CDK Pipeline (AWSCDKPipelineChart) based on the actual project located in GitHub and specified by the configuration. +- *Type:* string -###### `config`Required +Gets the name of the `Task` built by the `TaskBuilder`. -- *Type:* GitRepoConfig +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] --- +##### `workspaces`Optional +```typescript +public readonly workspaces: WorkspaceBuilder[]; +``` -### InstallFromIBMOperatorPipeline +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] -A basic pipeline that starts with a subscription to the IBM operator catalog. +Gets the workspaces for the `Task`. -The following steps are included in this pipeline, so you do not need to add -them. The pipeline: +--- -1. Creates the specified namespace. -1. Registers the IBM operator. -1. Creates an OperatorGroup. -1. Subscribes to the given `name` and `channel` +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder + +--- -#### Initializers + +### OpenshiftClient02 + +#### Initializers ```typescript -import { InstallFromIBMOperatorPipeline } from 'cdk8s-pipelines-lib' +import { OpenshiftClient02 } from 'cdk8s-pipelines-lib' -new InstallFromIBMOperatorPipeline(scope: Construct, id: string, ns: string, subscription: string, channel: string) +new OpenshiftClient02(scope: Construct, id: string) ``` | **Name** | **Type** | **Description** | | --- | --- | --- | -| scope | constructs.Construct | The parent [Construct](https://cdk8s.io/docs/latest/basics/constructs/). | -| id | string | The `id` of the construct. | -| ns | string | The namespace to create and to use for subscribing to the product and channel. | -| subscription | string | The name of the subscription. | -| channel | string | The name of the channel (e.g., `v3.3`, `stable`). | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | --- -##### `scope`Required +##### `scope`Required - *Type:* constructs.Construct -The parent [Construct](https://cdk8s.io/docs/latest/basics/constructs/). - --- -##### `id`Required +##### `id`Required - *Type:* string -The `id` of the construct. +--- -Must be unique for each one in a chart. +#### Methods + +| **Name** | **Description** | +| --- | --- | +| buildTask | Builds the `Task`. | +| withAnnotation | Adds an annotation to the `Task` `metadata` with the provided key and value. | +| withDescription | Sets the `description` of the `Task` being built. | +| withLabel | Adds a label to the `Task` with the provided label key and value. | +| withName | Sets the name of the `Task` being built. | +| withResult | Allows you to add an result to the Task. | +| withStep | Adds the given `step` (`TaskStepBuilder`) to the `Task`. | +| withStringParam | Adds a parameter of type string to the `Task`. | +| withWorkspace | Adds the specified workspace to the `Task`. | --- -##### `ns`Required +##### `buildTask` + +```typescript +public buildTask(): void +``` + +Builds the `Task`. + +##### `withAnnotation` + +```typescript +public withAnnotation(key: string, value: string): TaskBuilder +``` + +Adds an annotation to the `Task` `metadata` with the provided key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) + +###### `key`Required - *Type:* string -The namespace to create and to use for subscribing to the product and channel. +The annotation's key. --- -##### `subscription`Required +###### `value`Required - *Type:* string -The name of the subscription. - -For example, for IBM Event Streams is it `ibm-eventstreams`. For Red Hat Serverless, it is `serverless-operator`. +The annotation's value. --- -##### `channel`Required +##### `withDescription` + +```typescript +public withDescription(description: string): TaskBuilder +``` + +Sets the `description` of the `Task` being built. + +###### `description`Required - *Type:* string -The name of the channel (e.g., `v3.3`, `stable`). +--- + +##### `withLabel` + +```typescript +public withLabel(key: string, value: string): TaskBuilder +``` + +Adds a label to the `Task` with the provided label key and value. + +> [https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) + +###### `key`Required + +- *Type:* string --- -#### Methods +###### `value`Required -| **Name** | **Description** | -| --- | --- | -| buildPipeline | Builds the actual [Pipeline](https://tekton.dev/docs/getting-started/pipelines/) from the settings configured using the fluid syntax. | -| withDescription | Provides the name for the pipeline task and will be rendered as the `name` property. | -| withName | Provides the name for the pipeline task and will be rendered as the `name` property. | -| withTask | *No description.* | +- *Type:* string --- -##### `buildPipeline` +##### `withName` ```typescript -public buildPipeline(opts?: BuilderOptions): void +public withName(name: string): TaskBuilder ``` -Builds the actual [Pipeline](https://tekton.dev/docs/getting-started/pipelines/) from the settings configured using the fluid syntax. +Sets the name of the `Task` being built. -###### `opts`Optional +###### `name`Required -- *Type:* cdk8s-pipelines.BuilderOptions +- *Type:* string --- -##### `withDescription` +##### `withResult` ```typescript -public withDescription(description: string): PipelineBuilder +public withResult(name: string, description: string): TaskBuilder ``` -Provides the name for the pipeline task and will be rendered as the `name` property. +Allows you to add an result to the Task. -###### `description`Required +> [https://tekton.dev/docs/pipelines/tasks/#emitting-results](https://tekton.dev/docs/pipelines/tasks/#emitting-results) + +###### `name`Required - *Type:* string +The name of the result. + --- -##### `withName` +###### `description`Required + +- *Type:* string + +The result's description. + +--- + +##### `withStep` ```typescript -public withName(name: string): PipelineBuilder +public withStep(step: TaskStepBuilder): TaskBuilder ``` -Provides the name for the pipeline task and will be rendered as the `name` property. +Adds the given `step` (`TaskStepBuilder`) to the `Task`. -###### `name`Required +###### `step`Required -- *Type:* string +- *Type:* cdk8s-pipelines.TaskStepBuilder --- -##### `withTask` +##### `withStringParam` ```typescript -public withTask(taskB: TaskBuilder): PipelineBuilder +public withStringParam(param: ParameterBuilder): TaskBuilder ``` -###### `taskB`Required +Adds a parameter of type string to the `Task`. -- *Type:* cdk8s-pipelines.TaskBuilder +###### `param`Required + +- *Type:* cdk8s-pipelines.ParameterBuilder + +--- + +##### `withWorkspace` + +```typescript +public withWorkspace(workspace: WorkspaceBuilder): TaskBuilder +``` + +Adds the specified workspace to the `Task`. + +###### `workspace`Required + +- *Type:* cdk8s-pipelines.WorkspaceBuilder --- @@ -735,55 +4048,78 @@ public withTask(taskB: TaskBuilder): PipelineBuilder | **Name** | **Type** | **Description** | | --- | --- | --- | -| name | string | Gets the name of the pipeline. | -| params | cdk8s-pipelines.PipelineParam[] | Returns the array of `PipelineParam` objects that represent the parameters configured for the `Pipeline`. | -| workspaces | cdk8s-pipelines.PipelineWorkspace[] | Returns the array of `PipelineWorkspace` objects that represent the workspaces configured for the `Pipeline`. | +| logicalID | string | *No description.* | +| description | string | Gets the `description` of the `Task`. | +| name | string | Gets the name of the `Task` built by the `TaskBuilder`. | +| parameters | cdk8s-pipelines.ParameterBuilder[] | *No description.* | +| workspaces | cdk8s-pipelines.WorkspaceBuilder[] | Gets the workspaces for the `Task`. | +| delegate | cdk8s-pipelines.TaskBuilder | *No description.* | --- -##### `name`Required +##### `logicalID`Required ```typescript -public readonly name: string; +public readonly logicalID: string; ``` - *Type:* string -Gets the name of the pipeline. +--- + +##### `description`Optional + +```typescript +public readonly description: string; +``` + +- *Type:* string + +Gets the `description` of the `Task`. --- -##### `params`Required +##### `name`Optional ```typescript -public readonly params: PipelineParam[]; +public readonly name: string; ``` -- *Type:* cdk8s-pipelines.PipelineParam[] +- *Type:* string -Returns the array of `PipelineParam` objects that represent the parameters configured for the `Pipeline`. +Gets the name of the `Task` built by the `TaskBuilder`. -Note this is an "expensive" get because it loops through the tasks in the -pipeline and checks for duplicates in the pipeline parameters for each task -parameter found. You should avoid calling this in a loop--instead, declare -a local variable before the loop and reference that instead. +--- + +##### `parameters`Optional + +```typescript +public readonly parameters: ParameterBuilder[]; +``` + +- *Type:* cdk8s-pipelines.ParameterBuilder[] --- -##### `workspaces`Required +##### `workspaces`Optional ```typescript -public readonly workspaces: PipelineWorkspace[]; +public readonly workspaces: WorkspaceBuilder[]; ``` -- *Type:* cdk8s-pipelines.PipelineWorkspace[] +- *Type:* cdk8s-pipelines.WorkspaceBuilder[] -Returns the array of `PipelineWorkspace` objects that represent the workspaces configured for the `Pipeline`. +Gets the workspaces for the `Task`. -This is an "expensive" get because it loops through the workspaces in the -pipeline and checks for duplicates in the pipeline workspaces for each task -workspace found. You should avoid calling this in a loop--instead, declare -a local variable before the loop and reference that instead. +--- + +##### `delegate`Required + +```typescript +public readonly delegate: TaskBuilder; +``` + +- *Type:* cdk8s-pipelines.TaskBuilder --- diff --git a/package.json b/package.json index 58d79fc..98b50f1 100644 --- a/package.json +++ b/package.json @@ -68,11 +68,15 @@ }, "dependencies": { "axios": "^1.5.0", - "octokit": "^3.1.0" + "handlebars": "^4.7.8", + "octokit": "^3.1.0", + "simple-git": "^3.23.0" }, "bundledDependencies": [ "axios", - "octokit" + "handlebars", + "octokit", + "simple-git" ], "keywords": [ "cdk", diff --git a/src/deployerTektonTasks/CreateDeployerRepoLink.ts b/src/deployerTektonTasks/CreateDeployerRepoLink.ts new file mode 100644 index 0000000..ba96e6c --- /dev/null +++ b/src/deployerTektonTasks/CreateDeployerRepoLink.ts @@ -0,0 +1,3 @@ +import { generateDeployerTasks } from './DeployerTaskGenerator'; +// Run the task +generateDeployerTasks(); diff --git a/src/deployerTektonTasks/DeployerTaskGenerator.ts b/src/deployerTektonTasks/DeployerTaskGenerator.ts new file mode 100644 index 0000000..3d35621 --- /dev/null +++ b/src/deployerTektonTasks/DeployerTaskGenerator.ts @@ -0,0 +1,264 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import { Yaml } from 'cdk8s'; +import { Task } from 'cdk8s-pipelines'; +import * as Handlebars from 'handlebars'; +import simpleGit from 'simple-git'; + +/** + * This function will take in a path name to a task YAML in the structure + * and do its best to format the task name in a Pascal-cased class name. + * Files such as /tasks/my-task/0.1/my-task-0.1.yaml should become + * MyTask01. + * @param taskPath The full path to the task YAML file. + */ +export function normalizedToPascalCase(taskPath: string): string { + const result: string[] = []; + const pathParts = taskPath.split(path.sep); + // For example, /path/to/ibm-pak/1.0/ibm-pak.yml + const nameAndVer = pathParts.slice(pathParts.length - 3, pathParts.length - 1); + nameAndVer.forEach(p => { + const words = p.split(/[-\.]/); + words.forEach(w => { + // Inspired by answer at https://stackoverflow.com/a/4068586 + result.push(w[0].toUpperCase() + w.slice(1).toLowerCase()); + }); + }); + return result.join(''); +} + +/** + * Clones the given git repository into the local path. + * @param gitUrl The URL of the git repository. + * @param localPath The local path into which the files are cloned. + */ +function gitClone(gitUrl: string, localPath: string): Promise { + return new Promise((resolve, reject) => { + console.info(`Cloning from ${gitUrl} into ${localPath}...`); + // If the folder already exists, just return it... + fs.stat(localPath, (err, stats) => { + if (!err && stats.isDirectory()) { + console.debug(`Cached tasks found at ${localPath}, using...`); + resolve(localPath); + } else { + // create the directory + console.debug(`No cached tasks found at ${localPath}, cloning from git ${gitUrl}`); + simpleGit().clone(gitUrl, localPath) + .then(() => { + resolve(localPath); + }) + .catch((e) => { + reject(e.message); + }); + } + }); + }); +} + +/** + * Gets the task directories under the given base directory. + * @param basedir The base directory. + * @return Promise including an array of the task directories. + */ +function getTaskDirs(basedir: string): Promise { + const tasksDir = path.join(basedir, 'tasks'); + return new Promise((resolve, reject) => { + console.info(`Getting tasks from dir ${tasksDir}...`); + const dirs: string[] = []; + fs.readdir(tasksDir, (err: NodeJS.ErrnoException | null, files: string[]) => { + if (err) { + reject(() => { + return new Error(err.message); + }); + } + files.forEach((f) => { + const taskFullPath = path.join(tasksDir, f); + if (fs.statSync(taskFullPath).isDirectory()) { + dirs.push(taskFullPath); + } + }); + resolve(dirs); + }); + }); +} + +/** + * Gets the version directories, which are subdirectories of the task directories. + * @param taskDirs A string array containing all the full paths to the version directories. + */ +function getVersionDirs(task: string): Promise { + const regexp = new RegExp('^[0-9]+\.[0-9]$'); + const allVerDirs: string[] = []; + return new Promise((resolve, reject) => { + console.debug(`Getting versions from task ${task}...`); + fs.readdir(task, (err: NodeJS.ErrnoException | null, files: string[]) => { + // TODO: Make sure the format of the version directory matches symantec versioning + if (err) { + reject(() => { + return new Error(err.message); + }); + } + files.forEach(verF => { + const verPath = path.join(task, verF); + const stats = fs.statSync(verPath); + if (stats.isDirectory() && regexp.test(verF)) { + allVerDirs.push(verPath); + } + }); + resolve(allVerDirs); + }); + }); +} + +/** + * TaskInfo contains more than just that task. + */ +class TaskInfo { + task: Task; + className: string; + + public constructor(className: string, task: Task) { + this.className = className; + this.task = task; + } +} + +/** + * Loads the YAML files into Tasks and returns the array of Tasks. + * @param paths The string full path names of the YAML files that contain the tasks. + * @return Promise of an array of Task + */ +function loadTaskYamls(paths: string[]): Promise { + return new Promise((resolve, reject) => { + const tasks: TaskInfo[] = []; + paths.forEach((p) => { + try { + const fn = firstYamlFileIn(p); + console.debug(`Trying to load task from YAML in ${fn}...`); + const t = Yaml.load(fn); + const task = t[0] as Task; + const taskClassName = normalizedToPascalCase(fn); + const info = new TaskInfo(taskClassName, task); + tasks.push(info); + } catch (e) { + const msg = (e as Error).message; + reject(`Error loading YAML from file ${p}: ${msg}`); + } + }); + resolve(tasks); + }); +} + +function firstYamlFileIn(dir: string): string { + const files = fs.readdirSync(dir); + let result = ''; + files.forEach((fn) => { + const fp = path.join(dir, fn); + if (fs.statSync(fp).isFile() && path.extname(fp) === '.yaml') { + // processing the correct YAML file now... + result = path.join(dir, fn); + return; + } + return; + }); + return result; +} + +/** + * Writes the Tasks as TaskBuilder classes using the provided template into the + * provided output file. + * @param tasks The array of Tasks to write. + * @param template The template file that is used to generate the TaskBuilder class code. + * @param outputFile The name of the generated file into which output is written. + */ +function writeClasses(tasks: TaskInfo[], template: any, outputFile: string): Promise { + return new Promise((resolve) => { + tasks.forEach((taskInfo) => { + // TODO: Make sure to replace this with the PascalCase version + const context = { + normalizedTaskName: taskInfo.className, + task: taskInfo.task, + }; + fs.appendFile(outputFile, template(context).toString() + '\n', { + encoding: 'utf8', + }, () => { + resolve(true); + }); + }); + resolve(true); + }); +}; + +function initializeTemplate(templateFile: string) { + const templateData = fs.readFileSync(templateFile, 'utf8'); + if (!templateData) { + throw new Error(`Could not load data from template file: ${templateFile}`); + } + Handlebars.registerHelper('variableEscape', (str) => { + if (!str) { + return; + } + return str.replace(/\${/g, '\\${').replace(/\`/g, '\\\`'); + }); + const template = Handlebars.compile(templateData); + return template; +} + +function writeFileHeader(outputFile: string): boolean { + const fileImports: string[] = []; + // fileImports.push('/* eslint-disable */'); + fileImports.push('/* this file is generated during the npx projen build process */'); + fileImports.push('import { ParameterBuilder, TaskBuilder, TaskStepBuilder, WorkspaceBuilder } from \'cdk8s-pipelines\';'); + fileImports.push('import { Construct } from \'constructs\';'); + fileImports.push(''); + try { + fs.writeFileSync(outputFile, fileImports.join('\n'), { + encoding: 'utf8', + }); + return true; + } catch (e) { + console.error(e); + return false; + } +} + +/** + * Generates the deployer tasks from the GitHub location into a local file that + * includes each task as a class that extends TaskBuilder. + */ +export function generateDeployerTasks() { + const gitUrl = 'https://github.com/cloud-native-toolkit/deployer-tekton-tasks.git'; + const cacheDir = path.join(__dirname, '..', '..', 'cache'); + const outputFile = path.join(__dirname, 'generatedDeployerTasks.ts'); + const templateFile = path.join(__dirname, 'taskbuilder.hbt'); + + const template = initializeTemplate(templateFile); + + if (writeFileHeader(outputFile)) { + gitClone(gitUrl, cacheDir) + .then(getTaskDirs) + .then((taskDirs: string[]) => { + taskDirs.forEach((t) => { + getVersionDirs(t) + .then(loadTaskYamls) + .then((tasks) => { + writeClasses(tasks, template, outputFile) + .then((result) => { + if (!result) { + console.error('Failed!'); + } + }) + .catch(() => { + console.log('Failed!'); + }); + }) + .catch(() => { + console.error('Failed!'); + }); + }); + }) + .catch((error) => { + console.error(error); + }); + } +} diff --git a/src/deployerTektonTasks/taskbuilder.hbt b/src/deployerTektonTasks/taskbuilder.hbt new file mode 100644 index 0000000..d67fdca --- /dev/null +++ b/src/deployerTektonTasks/taskbuilder.hbt @@ -0,0 +1,33 @@ +export class {{normalizedTaskName}} extends TaskBuilder { + delegate: TaskBuilder; + public constructor(scope: Construct, id: string) { + super(scope, id); + this.delegate = new TaskBuilder(scope, id); + this.delegate.withName('{{task.metadata.name}}'); + {{#each task.spec.workspaces}} + this.delegate.withWorkspace(new WorkspaceBuilder('{{this.name}}') + .withName('{{this.name}}') + .withDescription(`{{this.description}}`)); + {{/each}} + {{#each task.spec.params}} + this.delegate.withStringParam(new ParameterBuilder('{{this.name}}') + .withDescription(`{{this.description}}`) + .withDefaultValue(`{{{variableEscape this.default}}}`) + .withPiplineParameter('{{this.name}}', `{{{variableEscape this.default}}}`)); + {{/each}} + {{#each task.spec.steps}} + this.delegate.withStep(new TaskStepBuilder() + .withName('{{this.name}}') + .fromScriptData(`{{{variableEscape this.script}}}`) + .withWorkingDir('{{this.workingDir}}') + {{#if this.args}} + .withArgs(['{{this.args}}']) + {{/if}} + .withImage('{{this.image}}')); + {{/each}} + } + + public buildTask(): void { + this.delegate.buildTask(); + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index a6bced4..5b2a7cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,3 +2,4 @@ export * from './awscdkpipeline'; export * from './tektonHub/tektonHubTasks'; export * from './commontasks'; export * from './commonpipelines'; +export * from './deployerTektonTasks/generatedDeployerTasks'; diff --git a/src/tektonHub/tektonHubTasks.ts b/src/tektonHub/tektonHubTasks.ts index 0c1a235..bffe241 100644 --- a/src/tektonHub/tektonHubTasks.ts +++ b/src/tektonHub/tektonHubTasks.ts @@ -16,7 +16,7 @@ export const buildpacks = function(scope: Construct, id: string) : TaskBuilder { export const buildpacks_phases = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildpacks-phases/0.2/buildpacks-phases.yaml').build(); }; export const helm_upgrade_from_source = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/helm-upgrade-from-source/0.3/helm-upgrade-from-source.yaml').build(); }; export const kaniko = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/kaniko/0.6/kaniko.yaml').build(); }; -export const buildah = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.6/buildah.yaml').build(); }; +export const buildah = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.7/buildah.yaml').build(); }; export const jib_maven = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/jib-maven/0.5/jib-maven.yaml').build(); }; export const ansible_runner = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/ansible-runner/0.2/ansible-runner.yaml').build(); }; export const aws_ecr_login = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/aws-ecr-login/0.1/aws-ecr-login.yaml').build(); }; @@ -36,6 +36,7 @@ export const az = function(scope: Construct, id: string) : TaskBuilder { return export const conftest = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/conftest/0.1/conftest.yaml').build(); }; export const yaml_lint = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/yaml-lint/0.1/yaml-lint.yaml').build(); }; export const crunch_api_security_audit = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/42crunch-api-security-audit/0.2/42crunch-api-security-audit.yaml').build(); }; +export const anchore_cli = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/anchore-cli/0.1/anchore-cli.yaml').build(); }; export const ansible_builder = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/ansible-builder/0.1/ansible-builder.yaml').build(); }; export const argocd_task_connect_repo = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/argocd-task-connect-repo/0.1/argocd-task-connect-repo.yaml').build(); }; export const asciidoctor = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/asciidoctor/0.1/asciidoctor.yaml').build(); }; @@ -121,7 +122,7 @@ export const prometheus_gate = function(scope: Construct, id: string) : TaskBuil export const pylint = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/pylint/0.3/pylint.yaml').build(); }; export const pytest = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/pytest/0.2/pytest.yaml').build(); }; export const python_coverage = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/python-coverage/0.1/python-coverage.yaml').build(); }; -export const redhat_dependency_analytics = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/redhat-dependency-analytics/0.1/redhat-dependency-analytics.yaml').build(); }; +export const redhat_dependency_analytics = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/redhat-dependency-analytics/0.2/redhat-dependency-analytics.yaml').build(); }; export const replace_tokens = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/replace-tokens/0.1/replace-tokens.yaml').build(); }; export const rhacs_deployment_check = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/rhacs-deployment-check/3.71/rhacs-deployment-check.yaml').build(); }; export const rhacs_image_check = function(scope: Construct, id: string) : TaskBuilder { return new TektonHubTask(scope, id, 'https://raw.githubusercontent.com/tektoncd/catalog/main/task/rhacs-image-check/3.71/rhacs-image-check.yaml').build(); }; diff --git a/test/deployerTektonTasks/deployerTektonTasks.test.ts b/test/deployerTektonTasks/deployerTektonTasks.test.ts new file mode 100644 index 0000000..cd945ce --- /dev/null +++ b/test/deployerTektonTasks/deployerTektonTasks.test.ts @@ -0,0 +1,18 @@ +import { normalizedToPascalCase } from '../../src/deployerTektonTasks/DeployerTaskGenerator'; + +describe('testDeployerTektonTasks', () => { + + test('', async () => { + + }); + + test('testNormalizedName', async () => { + const fileName = '/Users/jexample/Code/cloud-native-toolkit/cdk8s-pipelines-libcache/tasks/ibm-pak/0.2/ibm-pak.yaml'; + const normalizedClassName = normalizedToPascalCase(fileName); + expect(normalizedClassName).toBe('IbmPak02'); + }); + + test('testGenerateDeployTasksHappyPath', async () => { + // generateDeployerTasks(); + }); +}); \ No newline at end of file diff --git a/test/deployerTektonTasks/ibm-pak-0.2.yaml b/test/deployerTektonTasks/ibm-pak-0.2.yaml new file mode 100644 index 0000000..cb69da8 --- /dev/null +++ b/test/deployerTektonTasks/ibm-pak-0.2.yaml @@ -0,0 +1,60 @@ +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + annotations: + tekton.dev/displayName: ibm-pak-0.2 + tekton.dev/pipelines.minVersion: 0.17.0 + tekton.dev/tags: cli + name: ibm-pak-0.2 + labels: + app.kubernetes.io/version: '0.2' + operator.tekton.dev/operand-name: openshift-pipelines-addons +spec: + description: >- + This task runs commands against the cluster provided by user and if not + provided then where the Task is being executed. + + `ibm-pak` provides the IBM Catalog Management plug-in for IBM Cloud Paks. + The plugin streamlines the deployment of IBM Cloud Paks in a disconnected + environment, which was done earlier using cloudctl. + params: + - default: oc ibm-pak help + description: The OpenShift CLI arguments to run + name: SCRIPT + type: string + steps: + - env: + - name: HOME + value: /tekton/home + image: >- + quay.io/ibmtz/ibm-pak-ubi:latest + name: oc + resources: {} + script: | + #!/usr/bin/env bash + + [[ "$(workspaces.manifest-dir.bound)" == "true" ]] && \ + cd $(workspaces.manifest-dir.path) + + [[ "$(workspaces.kubeconfig-dir.bound)" == "true" ]] && \ + [[ -f $(workspaces.kubeconfig-dir.path)/kubeconfig ]] && \ + export KUBECONFIG=$(workspaces.kubeconfig-dir.path)/kubeconfig + + $(params.SCRIPT) + securityContext: + runAsNonRoot: true + runAsUser: 65532 + results: + - name: output + description: The output of the task + workspaces: + - description: >- + The workspace which contains kubernetes manifests which we want to apply + on the cluster. + name: manifest-dir + optional: true + - description: >- + The workspace which contains the the kubeconfig file if in case we want + to run the oc command on another cluster. + name: kubeconfig-dir + optional: true diff --git a/yarn.lock b/yarn.lock index 84039aa..7bdc771 100644 --- a/yarn.lock +++ b/yarn.lock @@ -682,6 +682,18 @@ dependencies: ajv "^8.12.0" +"@kwsites/file-exists@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" + integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== + dependencies: + debug "^4.1.1" + +"@kwsites/promise-deferred@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" + integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -3606,7 +3618,7 @@ graphql@^16.5.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== -handlebars@^4.7.7: +handlebars@^4.7.7, handlebars@^4.7.8: version "4.7.8" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== @@ -6378,6 +6390,15 @@ sigstore@^1.3.0: "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" +simple-git@^3.23.0: + version "3.23.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.23.0.tgz#e91d2e8c1dec234c48c57c424aa32b8f44e5e9d4" + integrity sha512-P9ggTW8vb/21CAL/AmnACAhqBDfnqSSZVpV7WuFtsFR9HLunf5IqQvk+OXAQTfkcZep8pKnt3DV3o7w3TegEkQ== + dependencies: + "@kwsites/file-exists" "^1.1.1" + "@kwsites/promise-deferred" "^1.1.1" + debug "^4.3.4" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"