Build an LRA-Coordinator in the Workbench for the SAGA Feature
You want to implement LRA-Coordinator and use it within a Saga application composition project. In this how-to, you will learn how to import the LRA-Coordinator asset into IBM Solution Designer and build the LRA coordinator project with custom tekton pipelines.
1. Import the LRA-Coordinator asset into -solutionDesignerโ
Descriptionโ
To use the LRA-Coordinator service within saga application composition projects, you have to import the given asset and create a project within the Solution Designer.
Preconditionsโ
- You have configured an Asset Catalog within Solution Designer.
Stepsโ
- Open Swagger-UI of the K5 Asset Manager. The URL can be found within the k8s route 'k5-asset-manager-route'.
- Open the Method
/{catalogAlias}/assets/importAssetand upload the given zip file.- file: NLRAC-2.1.3.
- gitProviderAlias: the git provider alias, to import the project sources into.
- groupKey: group within the git, to store the project into.
- repositoryKey: name of the git repository, to store the project sources into.
- After the successful upload, you can find the project sources within the git repository as well as a new entry within your asset catalog.
- Open the Solution Designer and start 'create project from asset'
- Select the asset catalog, you imported the given zip file into.
- Select project 'Narayana LRA Coordinator'.
- Use the acronym 'NLRAC' and specify the git provider data to store your project into.
You can go through How-To: Import an external asset and use it in the Workbench..
2. Build the LRA-Coordinator project with custom tekton pipelines (-solutionDesigner 4.1.0 only)โ
Descriptionโ
To use the LRA-Coordinator service within saga application composition projects, you have to build and release the project to use within the Solution Designer.
Preconditionsโ
- The project was successfully imported into the Solution Designer.
Stepsโ
- Import a new custom tekton task to build and release the project (see also Product Documentation: Pipeline Customization).
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: buildpacks-release-java
spec:
params:
- name: solutionacronym
type: string
- name: k5project
type: string
- name: publish
type: string
- name: stack
type: string
- name: dddfeature
type: string
- name: bawfeature
type: string
- name: unittestfeature
type: string
- name: prereleaseuniqueness
type: string
- name: uniquesemvercheck
type: string
- name: enforceuniqueness
type: string
- default: ''
description: The name of where to store the app image.
name: APP_IMAGE
type: string
- default: 'paketobuildpacks/builder:base'
description: >-
The image on which builds will run (must include lifecycle and
compatible buildpacks).
name: BUILDER_IMAGE
type: string
- default: ''
description: >-
A subpath within the `source` input where the source to build is
located.
name: SOURCE_SUBPATH
type: string
- default: []
description: Environment variables to set during _build-time_.
name: ENV_VARS
type: array
- default: web
description: The default process type to set on the image.
name: PROCESS_TYPE
type: string
- default: ''
description: Reference to a run image to use.
name: RUN_IMAGE
type: string
- default: ''
description: >-
The name of the persistent app cache image (if no cache workspace is
provided).
name: CACHE_IMAGE
type: string
- default: 'false'
description: Do not write layer metadata or restore cached layers.
name: SKIP_RESTORE
type: string
- default: '1000'
description: The user ID of the builder image user.
name: USER_ID
type: string
- default: '1000'
description: The group ID of the builder image user.
name: GROUP_ID
type: string
- default: empty-dir
description: The name of the platform directory.
name: PLATFORM_DIR
type: string
resources:
inputs:
- name: source
type: git
- name: cluster
type: cluster
stepTemplate:
env:
- name: CNB_PLATFORM_API
value: '0.9'
name: ''
resources: {}
securityContext:
runAsNonRoot: false
runAsUser: 0
steps:
- command:
- /opt/open-banking-platform/scripts/v1/step-handle-version.sh
env:
- name: NODE_ENV
value: production
- name: PRE_RELEASE_UNIQUENESS
value: $(params.prereleaseuniqueness)
- name: UNIQUE_SEMVER_CHECK
value: $(params.uniquesemvercheck)
- name: STACK
value: $(params.stack)
- name: SOLUTION_ACRONYM
value: $(params.solutionacronym)
- name: ENFORCE_UNIQUENESS
value: $(params.enforceuniqueness)
- name: HELM_REPO_URL
valueFrom:
secretKeyRef:
key: url
name: k5-helm-repo-binding
optional: false
- name: HELM_REPO_USERNAME
valueFrom:
secretKeyRef:
key: username
name: k5-helm-repo-binding
optional: false
- name: HELM_REPO_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: k5-helm-repo-binding
optional: false
image: >-
de.icr.io/isw_release/step-handle-version@sha256:12dddd334f7a8fb58733fe1ad987d72f69d7a7b22da22b2f4da6262edef0a27c
name: handle-version
resources: {}
volumeMounts:
- mountPath: /workspace/source/artifacts/handle-version
name: handle-version
workingDir: /workspace/source
- args:
- '--env-vars'
- '$(params.ENV_VARS[*])'
image: >-
docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6
name: prepare
resources: {}
script: |
#!/usr/bin/env bash
set -e
for path in "/tekton/home" "/layers" "/workspace/source"; do
echo "> Setting permissions on '$path'..."
chown -R "$(params.USER_ID):$(params.GROUP_ID)" "$path"
if [[ "$path" == "/workspace/source" ]]; then
chmod 775 "/workspace/source"
fi
done
echo "> Parsing additional configuration..."
parsing_flag=""
envs=()
for arg in "$@"; do
if [[ "$arg" == "--env-vars" ]]; then
echo "-> Parsing env variables..."
parsing_flag="env-vars"
elif [[ "$parsing_flag" == "env-vars" ]]; then
envs+=("$arg")
fi
done
echo "> Processing any environment variables..."
ENV_DIR="/platform/env"
echo "--> Creating 'env' directory: $ENV_DIR"
mkdir -p "$ENV_DIR"
for env in "${envs[@]}"; do
IFS='=' read -r key value <<< "$env"
if [[ "$key" != "" && "$value" != "" ]]; then
path="${ENV_DIR}/${key}"
echo "--> Writing ${path}..."
echo -n "$value" > "$path"
fi
done
volumeMounts:
- mountPath: /layers
name: layers-dir
- mountPath: /platform
name: $(params.PLATFORM_DIR)
- resources: {}
name: create
command:
- /cnb/lifecycle/creator
env:
- name: K5_IMAGE_REGISTRY
valueFrom:
secretKeyRef:
key: url
name: k5-image-registry-binding
optional: true
securityContext:
runAsGroup: 1000
runAsUser: 1000
imagePullPolicy: Always
volumeMounts:
- mountPath: /layers
name: layers-dir
- mountPath: /platform
name: $(params.PLATFORM_DIR)
image: $(params.BUILDER_IMAGE)
args:
- '-app=/workspace/source/$(params.solutionacronym)-application'
- '-cache-image=$(params.CACHE_IMAGE)'
- '-uid=$(params.USER_ID)'
- '-gid=$(params.GROUP_ID)'
- '-layers=/layers'
- '-platform=/platform'
- '-report=/layers/report.toml'
- '-process-type=$(params.PROCESS_TYPE)'
- '-skip-restore=$(params.SKIP_RESTORE)'
- '-previous-image=$(params.APP_IMAGE)'
- '-run-image=$(params.RUN_IMAGE)'
- $(K5_IMAGE_REGISTRY)/solution-$(params.solutionacronym)
- image: >-
docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6
name: results
resources: {}
script: >
#!/usr/bin/env bash
set -e
DIGEST_PATH=/workspace/source/artifacts/pack-solution-docker
DIGEST_FILE=image-digest
mkdir -p ${DIGEST_PATH}
grep "digest" /layers/report.toml | cut -d'"' -f2 | cut -d'"' -f2 | tr
-d '\n' | tee "${DIGEST_PATH}/${DIGEST_FILE}"
volumeMounts:
- mountPath: /layers
name: layers-dir
- mountPath: /workspace/source/artifacts/pack-solution-docker
name: build-publish-docker
workingDir: /workspace/source
- command:
- /opt/open-banking-platform/scripts/v1/step-helm-chart.sh
env:
- name: NODE_ENV
value: production
- name: SOLUTION_ACRONYM
value: $(params.solutionacronym)
- name: STACK
value: $(params.stack)
- name: DDD_FEATURE
value: $(params.dddfeature)
- name: BAW_FEATURE
value: $(params.bawfeature)
- name: PUBLISH
value: $(params.publish)
- name: PIPELINE_RUN_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: SERVICE_PROJECT_IMAGE_REGISTRY
valueFrom:
secretKeyRef:
key: url
name: k5-image-registry-binding
optional: true
- name: HELM_REPO_URL
valueFrom:
secretKeyRef:
key: url
name: k5-helm-repo-binding
optional: true
- name: HELM_REPO_USERNAME
valueFrom:
secretKeyRef:
key: username
name: k5-helm-repo-binding
optional: true
- name: HELM_REPO_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: k5-helm-repo-binding
optional: true
- name: HELM_REPO_UPLOAD_URL
valueFrom:
secretKeyRef:
key: uploadUrl
name: k5-helm-repo-binding
optional: true
- name: HELM_REPO_REQUEST_TYPE
valueFrom:
secretKeyRef:
key: uploadRequestType
name: k5-helm-repo-binding
optional: true
- name: HELM_REPO_UPLOAD_FILE_PATTERN
valueFrom:
secretKeyRef:
key: uploadFilePattern
name: k5-helm-repo-binding
optional: true
image: >-
de.icr.io/isw_release/step-pack-helm-chart@sha256:d5e044aaeef673a8ae17b7208e922ca82e2a03a01f8558808f377ee49df141a5
name: pack-helm-chart
resources: {}
volumeMounts:
- mountPath: /workspace/source/artifacts/helm-chart
name: helm-chart
- mountPath: /workspace/source/artifacts/handle-version
name: handle-version
- mountPath: /workspace/source/artifacts/prepare-denormalize-domain-model
name: prepare-denorm-model
- mountPath: /workspace/source/artifacts/build-bpm-toolkit
name: bpm-toolkit
workingDir: /workspace/source
- command:
- /opt/open-banking-platform/scripts/v1/step-deploy-solution.sh
env:
- name: NODE_ENV
value: production
- name: SOLUTION_ACRONYM
value: $(params.solutionacronym)
- name: K5_PROJECT
value: $(params.k5project)
- name: PIPELINE_RUN_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: PIPELINE_RUN
valueFrom:
fieldRef:
fieldPath: 'metadata.labels[''tekton.dev/pipelineRun'']'
- name: CONFIG_MANAGEMENT_INTERNAL_HOST
value: 'https://k5-configuration-management.isw-test.svc'
- name: CONFIG_MANAGEMENT_NAMESPACE
value: isw-test
- name: CONFIG_MANAGEMENT_INTERNAL_COMMUNICATION
value: 'true'
- name: KEYCLOAK_HOST
valueFrom:
secretKeyRef:
key: hostname
name: configuration-management-client-secret
- name: ENVIRONMENT_CLIENT
valueFrom:
secretKeyRef:
key: client.id
name: configuration-management-client-secret
- name: ENVIRONMENT_CLIENT_SECRET
valueFrom:
secretKeyRef:
key: client.secret
name: configuration-management-client-secret
- name: KEYCLOAK_TARGET_REALM
valueFrom:
secretKeyRef:
key: realm
name: configuration-management-client-secret
- name: CA_CERT_FOLDER
value: /workspace/source/artifacts/security
image: >-
de.icr.io/isw_release/step-deploy-solution@sha256:71b49341c553081f2ba97fbaec57669077c7abdaa6c14cdf0bfa1d74039fd166
name: deploy-solution
resources: {}
volumeMounts:
- mountPath: /workspace/source/artifacts/handle-version
name: handle-version
- mountPath: /workspace/source/artifacts/helm-chart
name: helm-chart
- mountPath: /workspace/source/artifacts/pack-solution-docker
name: build-publish-docker
- mountPath: /workspace/source/artifacts/prepare-denormalize-domain-model
name: prepare-denorm-model
- mountPath: /workspace/source/artifacts/security/k5-hub-truststore
name: k5-hub-truststore
- mountPath: >-
/workspace/source/artifacts/security/k5-configuration-management-service-cert
name: k5-configuration-management-service-cert
workingDir: /workspace/source
volumes:
- emptyDir: {}
name: empty-dir
- emptyDir: {}
name: layers-dir
- emptyDir: {}
name: validate-design-model
- emptyDir: {}
name: prepare-denorm-model
- emptyDir: {}
name: bpm-toolkit
- emptyDir: {}
name: handle-version
- emptyDir: {}
name: generate-code
- emptyDir: {}
name: build-code
- emptyDir: {}
name: unit-test
- emptyDir: {}
name: build-publish-docker
- emptyDir: {}
name: helm-chart
- name: k5-hub-truststore
secret:
optional: true
secretName: k5-hub-truststore
- name: k5-configuration-management-service-cert
secret:
optional: true
secretName: k5-configuration-management-service-cert
- Create a new deploy and release pipeline within Solution Designer for your project (the first pipeline run will fail).
- Open both pipeline definitions in OpenShift and adjust the referenced task from:
taskRef:
kind: Task
name: k5-release-java
to:
taskRef:
kind: Task
name: buildpacks-release-java
- Start the pipelines within Solution Designer for your project again.
3. Build the LRA-Coordinator project with custom tekton pipelines (-solutionDesigner 4.1.1-FP1 and later)โ
Descriptionโ
To use the LRA-Coordinator service within saga application composition projects, you have to build and release the project within the Solution Designer.
Preconditionsโ
- The project was successfully imported into the Solution Designer.
Stepsโ
- Import new custom deploy and release pipeline template (see also Product Documentation: Pipeline Customization)
Custom deploy pipeline:
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
annotations:
k5-display-name: Buildpacks Java Deploy Pipeline
k5-supported-stacks: java
labels:
k5-pipeline-template: 'true'
k5-pipeline-type: deploy
name: k5-template-buildpacks-java-deploy
spec:
params:
- description: Defines the repository url
name: repo-url
type: string
- description: Defines the revision of the git repository
name: revision
type: string
- description: Defines the k5project
name: k5project
type: string
- description: Defines the solution acronym
name: solutionacronym
type: string
- description: Defines if the artifacts should be published
name: publish
type: string
- description: Defines the stack
name: stack
type: string
- description: Defines whether it needs to be a unique pre-release
name: prereleaseuniqueness
type: string
- description: Defines where uniqueness needs to be enforced
name: enforceuniqueness
type: string
- description: Defines whether a unique semVer check is executed
name: uniquesemvercheck
type: string
tasks:
- name: k5-git-clone
params:
- name: repo-url
value: $(params.repo-url)
- name: revision
value: $(params.revision)
taskRef:
kind: Task
name: k5-git-clone
workspaces:
- name: output
workspace: source
- name: basic-auth
workspace: basic-auth
- name: k5-validate
params:
- name: solutionacronym
value: $(params.solutionacronym)
- name: stack
value: $(params.stack)
- name: dddfeature
value: 'false'
- name: prereleaseuniqueness
value: $(params.prereleaseuniqueness)
- name: uniquesemvercheck
value: $(params.uniquesemvercheck)
- name: enforceuniqueness
value: $(params.enforceuniqueness)
runAfter:
- k5-git-clone
taskRef:
kind: Task
name: k5-validate
workspaces:
- name: source
workspace: source
- name: get-image-registry
params:
- name: pipelinenamespace
value: $(context.pipelineRun.namespace)
runAfter:
- k5-validate
taskSpec:
metadata: {}
params:
- description: The current namespace of the pipeline.
name: pipelinenamespace
type: string
results:
- description: The image container image registry.
name: SERVICE_PROJECT_IMAGE_REGISTRY
type: string
- description: The image container tag.
name: SERVICE_PROJECT_IMAGE_TAG
type: string
spec: null
steps:
- computeResources: {}
env:
- name: K5_IMAGE_REGISTRY
valueFrom:
secretKeyRef:
key: url
name: k5-image-registry-binding
optional: true
image: 'docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6'
name: print
script: |
#!/usr/bin/env bash
if [ -z "${K5_IMAGE_REGISTRY}" ]; then
echo "image registry from secret 'k5-image-registry-binding' not found, using default"
K5_IMAGE_REGISTRY="image-registry.openshift-image-registry.svc:5000/$(params.pipelinenamespace)"
fi
K5_IMAGE_TAG=`cat /workspace/source/artifacts/handle-version/.version`
echo -n "${K5_IMAGE_REGISTRY}" > "$(results.SERVICE_PROJECT_IMAGE_REGISTRY.path)"
echo -n "${K5_IMAGE_TAG}" > "$(results.SERVICE_PROJECT_IMAGE_TAG.path)"
echo "configured image registry: ${K5_IMAGE_REGISTRY}"
echo "configured image tag: ${K5_IMAGE_TAG}"
workspaces:
- name: source
workspace: source
- name: buildpacks
params:
- name: APP_IMAGE
value: '$(tasks.get-image-registry.results.SERVICE_PROJECT_IMAGE_REGISTRY)/solution-$(params.solutionacronym):$(tasks.get-image-registry.results.SERVICE_PROJECT_IMAGE_TAG)'
- name: SOURCE_SUBPATH
value: $(params.solutionacronym)-application
- name: BUILDER_IMAGE
value: 'paketobuildpacks/builder:base'
runAfter:
- get-image-registry
taskRef:
kind: Task
name: buildpacks
workspaces:
- name: source
workspace: source
- name: get-digest
params:
- name: DIGEST
value: $(tasks.buildpacks.results.APP_IMAGE_DIGEST)
runAfter:
- buildpacks
taskSpec:
metadata: {}
params:
- name: DIGEST
type: string
spec: null
steps:
- computeResources: {}
image: 'docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6'
name: getdigest
script: |
#!/usr/bin/env bash
set -e
DIGEST_PATH=/workspace/source/artifacts/pack-solution-docker DIGEST_FILE=image-digest
echo "Writing digest of created app image: $(params.DIGEST) to ${DIGEST_PATH}/${DIGEST_FILE}"
mkdir -p ${DIGEST_PATH}
echo -n "$(params.DIGEST)" > ${DIGEST_PATH}/${DIGEST_FILE}
workspaces:
- description: Directory where application source is located.
name: source
workspaces:
- name: source
workspace: source
- name: k5-build-publish-chart-java
params:
- name: solutionacronym
value: $(params.solutionacronym)
- name: publish
value: $(params.publish)
- name: stack
value: $(params.stack)
- name: dddfeature
value: 'false'
- name: bawfeature
value: 'false'
runAfter:
- get-digest
taskRef:
kind: Task
name: k5-build-publish-chart-java
workspaces:
- name: source
workspace: source
- name: k5-deploy
params:
- name: solutionacronym
value: $(params.solutionacronym)
- name: k5project
value: $(params.k5project)
runAfter:
- k5-build-publish-chart-java
taskRef:
kind: Task
name: k5-deploy
workspaces:
- name: source
workspace: source
workspaces:
- name: source
- name: basic-auth
Custom release pipeline:
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
annotations:
k5-display-name: Buildpacks Java Release Pipeline
k5-supported-stacks: java
labels:
k5-pipeline-template: 'true'
k5-pipeline-type: release
name: k5-template-buildpacks-java-release
spec:
params:
- description: Defines the repository url
name: repo-url
type: string
- description: Defines the revision of the git repository
name: revision
type: string
- description: Defines the k5project
name: k5project
type: string
- description: Defines the solution acronym
name: solutionacronym
type: string
- description: Defines if the artifacts should be published
name: publish
type: string
- description: Defines the stack
name: stack
type: string
- description: Defines whether it needs to be a unique pre-release
name: prereleaseuniqueness
type: string
- description: Defines where uniqueness needs to be enforced
name: enforceuniqueness
type: string
- description: Defines whether a unique semVer check is executed
name: uniquesemvercheck
type: string
tasks:
- name: k5-git-clone
params:
- name: repo-url
value: $(params.repo-url)
- name: revision
value: $(params.revision)
taskRef:
kind: Task
name: k5-git-clone
workspaces:
- name: output
workspace: source
- name: basic-auth
workspace: basic-auth
- name: k5-validate
params:
- name: solutionacronym
value: $(params.solutionacronym)
- name: stack
value: $(params.stack)
- name: dddfeature
value: 'false'
- name: prereleaseuniqueness
value: $(params.prereleaseuniqueness)
- name: uniquesemvercheck
value: $(params.uniquesemvercheck)
- name: enforceuniqueness
value: $(params.enforceuniqueness)
runAfter:
- k5-git-clone
taskRef:
kind: Task
name: k5-validate
workspaces:
- name: source
workspace: source
- name: get-image-registry
params:
- name: pipelinenamespace
value: $(context.pipelineRun.namespace)
runAfter:
- k5-validate
taskSpec:
metadata: {}
params:
- description: The current namespace of the pipeline.
name: pipelinenamespace
type: string
results:
- description: The image container image registry.
name: SERVICE_PROJECT_IMAGE_REGISTRY
type: string
- description: The image container tag.
name: SERVICE_PROJECT_IMAGE_TAG
type: string
spec: null
steps:
- computeResources: {}
env:
- name: K5_IMAGE_REGISTRY
valueFrom:
secretKeyRef:
key: url
name: k5-image-registry-binding
optional: true
image: 'docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6'
name: print
script: |
#!/usr/bin/env bash
if [ -z "${K5_IMAGE_REGISTRY}" ]; then
echo "image registry from secret 'k5-image-registry-binding' not found, using default"
K5_IMAGE_REGISTRY="image-registry.openshift-image-registry.svc:5000/$(params.pipelinenamespace)"
fi
K5_IMAGE_TAG=`cat /workspace/source/artifacts/handle-version/.version`
echo -n "${K5_IMAGE_REGISTRY}" > "$(results.SERVICE_PROJECT_IMAGE_REGISTRY.path)"
echo -n "${K5_IMAGE_TAG}" > "$(results.SERVICE_PROJECT_IMAGE_TAG.path)"
echo "configured image registry: ${K5_IMAGE_REGISTRY}"
echo "configured image tag: ${K5_IMAGE_TAG}"
workspaces:
- name: source
workspace: source
- name: buildpacks
params:
- name: APP_IMAGE
value: '$(tasks.get-image-registry.results.SERVICE_PROJECT_IMAGE_REGISTRY)/solution-$(params.solutionacronym):$(tasks.get-image-registry.results.SERVICE_PROJECT_IMAGE_TAG)'
- name: SOURCE_SUBPATH
value: $(params.solutionacronym)-application
- name: BUILDER_IMAGE
value: 'paketobuildpacks/builder:base'
runAfter:
- get-image-registry
taskRef:
kind: Task
name: buildpacks
workspaces:
- name: source
workspace: source
- name: get-digest
params:
- name: DIGEST
value: $(tasks.buildpacks.results.APP_IMAGE_DIGEST)
runAfter:
- buildpacks
taskSpec:
metadata: {}
params:
- name: DIGEST
type: string
spec: null
steps:
- computeResources: {}
image: 'docker.io/library/bash:5.1.4@sha256:b208215a4655538be652b2769d82e576bc4d0a2bb132144c060efc5be8c3f5d6'
name: getdigest
script: |
#!/usr/bin/env bash
set -e
DIGEST_PATH=/workspace/source/artifacts/pack-solution-docker DIGEST_FILE=image-digest
echo "Writing digest of created app image: $(params.DIGEST) to ${DIGEST_PATH}/${DIGEST_FILE}"
mkdir -p ${DIGEST_PATH}
echo -n "$(params.DIGEST)" > ${DIGEST_PATH}/${DIGEST_FILE}
workspaces:
- description: Directory where application source is located.
name: source
workspaces:
- name: source
workspace: source
- name: k5-build-publish-chart-java
params:
- name: solutionacronym
value: $(params.solutionacronym)
- name: publish
value: $(params.publish)
- name: stack
value: $(params.stack)
- name: dddfeature
value: 'false'
- name: bawfeature
value: 'false'
runAfter:
- get-digest
taskRef:
kind: Task
name: k5-build-publish-chart-java
workspaces:
- name: source
workspace: source
workspaces:
- name: source
- name: basic-auth
- Import buildpacks tekton pipline step from official tekton catalog:
oc apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/task/buildpacks/0.6/buildpacks.yaml
- Create new build and release pipeline within Solution Designer based on imported templates Buildpacks Java Deploy Pipeline and Buildpacks Java Deploy Pipeline.
You have successfully imported and implemented the LRA-Coordinator into Solution Designer.