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"