1.2. 워크플로우 배포
Dev 모드 및 프리뷰 모드의 두 가지 모드로 Serverless Logic 워크플로를 클러스터에 배포할 수 있습니다.
1.2.1. Dev 모드에서 워크플로 배포
Dev 모드에서 OpenShift Container Platform에 로컬 워크플로를 배포할 수 있습니다. 이 배포를 사용하여 클러스터에서 직접 워크플로우를 실험 및 수정하고 변경 사항이 거의 즉시 표시됩니다. dev 모드는 개발 및 테스트 목적으로 설계되었습니다. 초기 개발 단계와 새로운 변경 사항을 테스트하는 데 이상적입니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
워크플로우 구성 YAML 파일을 생성합니다.
workflow-dev.yaml
파일 예apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting 1 annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev 2 spec: flow: start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: "${ .language == \"English\" }" transition: GreetInEnglish - condition: "${ .language == \"Spanish\" }" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: "Hello from JSON Workflow, " transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: "Saludos desde JSON Workflow, " transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: ".greeting + .name" end: true
애플리케이션을 배포하려면 다음 명령을 입력하여 YAML 파일을 적용합니다.
$ oc apply -f <filename> -n <your_namespace>
다음 명령을 입력하여 배포를 확인하고 배포된 워크플로우의 상태를 확인합니다.
$ oc get workflow -n <your_namespace> -w
워크플로우가 나열되고 상태가
Running
또는Completed
인지 확인합니다.다음 명령을 입력하여 클러스터에서 직접 워크플로를 편집합니다.
$ oc edit sonataflow <workflow_name> -n <your_namespace>
- 편집 후 변경 사항을 저장합니다. OpenShift Serverless Logic Operator는 변경 사항을 감지하고 그에 따라 워크플로우를 업데이트합니다.
검증
변경 사항이 올바르게 적용되도록 하려면 다음 명령을 입력하여 워크플로우의 상태 및 로그를 확인합니다.
다음 명령을 실행하여 워크플로우의 상태를 확인합니다.
$ oc get sonataflows -n <your_namespace>
다음 명령을 실행하여 워크플로우 로그를 확인합니다.
$ oc logs <workflow_pod_name> -n <your_namespace>
다음 단계
테스트를 완료한 후 다음 명령을 실행하여 불필요한 사용을 방지하기 위해 리소스를 삭제합니다.
$ oc delete sonataflow <workflow_name> -n <your_namespace>
1.2.2. 프리뷰 모드에서 워크플로우 배포
프리뷰 모드에서 OpenShift Container Platform에 로컬 워크플로를 배포할 수 있습니다. 이를 통해 클러스터에서 직접 워크플로우를 실험 및 수정하여 거의 즉시 변경 사항이 표시됩니다. 프리뷰 모드는 프로덕션에 배포하기 전에 최종 테스트 및 검증에 사용됩니다. 또한 프로덕션과 같은 설정에서 워크플로우가 원활하게 실행되도록 합니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프리뷰 모드에서 워크플로를 배포하기 위해 OpenShift Serverless Logic Operator는 OpenShift Container Platform에서 빌드 시스템을 사용하여 워크플로우 배포 이미지를 자동으로 생성합니다.
다음 섹션에서는 SonataFlow
사용자 정의 리소스가 있는 OpenShift Serverless Logic Operator를 사용하여 클러스터에 워크플로를 빌드하고 배포하는 방법을 설명합니다.
1.2.2.1. 프리뷰 모드에서 워크플로우 구성
1.2.2.1.1. 워크플로우 기본 빌더 이미지 구성
시나리오에 보안 또는 강화 제약 조건과 같은 이미지 사용에 대한 엄격한 정책이 필요한 경우 OpenShift Serverless Logic Operator에서 최종 워크플로우 컨테이너 이미지를 빌드하는 데 사용하는 기본 이미지를 교체합니다.
기본적으로 OpenShift Serverless Logic Operator는 공식 Red Hat Registry에 배포된 이미지를 사용하여 워크플로우를 빌드합니다. 시나리오에 보안 또는 강화 제약 조건 등 이미지 사용을 위한 엄격한 정책이 필요한 경우 기본 이미지를 교체할 수 있습니다.
이 이미지를 변경하려면 워크플로우를 배포한 네임스페이스에서 SonataFlowPlatform
CR(사용자 정의 리소스)을 편집합니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여 네임스페이스의
SonataFlowPlatform
리소스를 나열합니다.$ oc get sonataflowplatform -n <your_namespace> 1
- 1
- &
lt;your_namespace
>를 네임스페이스 이름으로 바꿉니다.
다음 명령을 실행하여 새 빌더 이미지로
SonataFlowPlatform
리소스를 패치합니다.$ oc patch sonataflowplatform <name> --patch 'spec:\n build:\n config:\n baseImage: <your_new_image_full_name_with_tag>' -n <your_namespace>
검증
다음 명령을 실행하여
SonataFlowPlatform
CR이 올바르게 패치되었는지 확인합니다.$ oc describe sonataflowplatform <name> -n <your_namespace> 1
- 1
- &
lt;name
>을SonataFlowPlatform
리소스의 이름으로 바꾸고 <your_namespace
>를 네임스페이스 이름으로 바꿉니다.
spec.build.config
의baseImage
필드가 새 이미지를 반영하는지 확인합니다.
1.2.2.1.2. 기본 빌더 Dockerfile 사용자 정의
OpenShift Serverless Logic Operator는 openshift-serverless-logic
OpenShift Serverless Logic Operator 설치 네임스페이스에서 logic-operator-rhel8-builder-config
구성 맵 CR(사용자 정의 리소스)을 사용하여 워크플로우 빌드 프로세스를 구성하고 실행합니다. 이 구성 맵에서 Dockerfile 항목을 변경하여 필요에 따라 Dockerfile을 조정할 수 있습니다.
Dockerfile을 수정하면 빌드 프로세스가 중단될 수 있습니다.
이 예제는 참조용으로만 사용됩니다. 실제 버전은 약간 다를 수 있습니다. 설치에 이 예제를 사용하지 마십시오.
logic-operator-rhel8-builder-config
구성 맵 CR의 예
apiVersion: v1 data: DEFAULT_WORKFLOW_EXTENSION: .sw.json Dockerfile: | FROM registry.redhat.io/openshift-serverless-1/logic-swf-builder-rhel8:1.33.0 AS builder # Variables that can be overridden by the builder # To add a Quarkus extension to your application ARG QUARKUS_EXTENSIONS # Args to pass to the Quarkus CLI add extension command ARG QUARKUS_ADD_EXTENSION_ARGS # Additional java/mvn arguments to pass to the builder ARG MAVEN_ARGS_APPEND # Copy from build context to skeleton resources project COPY --chown=1001 . ./resources RUN /home/kogito/launch/build-app.sh ./resources #============================= # Runtime Run #============================= FROM registry.access.redhat.com/ubi9/openjdk-17:latest ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' # We make four distinct layers so if there are application changes, the library layers can be re-used COPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/ /deployments/lib/ COPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar /deployments/ COPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/ /deployments/app/ COPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/ /deployments/quarkus/ EXPOSE 8080 USER 185 ENV AB_JOLOKIA_OFF="" ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" kind: ConfigMap metadata: name: sonataflow-operator-builder-config namespace: sonataflow-operator-system
1.2.2.1.3. 리소스 요구 사항 변경
워크플로우 네임스페이스에서 SonataFlowPlatform
리소스를 생성하거나 편집하여 내부 빌더 Pod에 대한 리소스 요구 사항을 지정할 수 있습니다.
SonataFlowPlatform
리소스의 예
apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: template: resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"
네임스페이스당 하나의 SonataFlowPlatform
리소스만 허용됩니다. 다른 리소스를 생성하는 대신 OpenShift Serverless Logic Operator가 생성한 리소스를 가져와서 편집합니다.
특정 워크플로우에 대한 리소스 요구 사항을 미세 조정할 수 있습니다. 각 워크플로우 인스턴스에는 워크플로우와 동일한 이름으로 생성된 SonataFlowBuild
인스턴스가 있습니다. SonataFlowBuild
CR(사용자 정의 리소스)을 편집하고 매개변수를 다음과 같이 지정할 수 있습니다.
SonataFlowBuild
CR의 예
apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: my-workflow spec: resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"
이러한 매개변수는 새 빌드 인스턴스에만 적용됩니다.
1.2.2.1.4. 내부 빌더에 인수 전달
빌드 인수를 SonataFlowBuild
인스턴스에 전달하거나 SonataFlowPlatform
리소스에서 기본 빌드 인수를 설정하여 빌드 프로세스를 사용자 지정할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여 기존
SonataFlowBuild
인스턴스를 확인합니다.$ oc get sonataflowbuild <name> -n <namespace> 1
- 1
- <
;name
>을SonataFlowBuild
인스턴스의 이름으로 바꾸고 <namespace
>를 네임스페이스로 바꿉니다.
다음 명령을 실행하여
SonataFlowBuild
인스턴스에 빌드 인수를 추가합니다.$ oc edit sonataflowbuild <name> -n <namespace>
SonataFlowBuild
인스턴스의.spec.buildArgs
필드에 원하는 빌드 인수를 추가합니다.apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: <name> 1 spec: buildArgs: - name: <argument_1> value: <value_1> - name: <argument_2> value: <value_2>
- 1
- 기존
SonataFlowBuild
인스턴스의 이름입니다.
파일을 저장하고 종료합니다.
업데이트된 구성이 포함된 새 빌드가 시작됩니다.
다음 명령을 실행하여
SonataFlowPlatform
리소스에서 기본 빌드 인수를 설정합니다.$ oc edit sonataflowplatform <name> -n <namespace>
SonataFlowPlatform
리소스의.spec.buildArgs
필드에 원하는 빌드 인수를 추가합니다.apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: <name> 1 spec: build: template: buildArgs: - name: <argument_1> value: <value_1> - name: <argument_2> value: <value_2>
- 1
- 기존
SonataFlowPlatform
리소스의 이름입니다.
- 파일을 저장하고 종료합니다.
1.2.2.1.5. 내부 빌더에서 환경 변수 설정
환경 변수를 SonataFlowBuild
내부 빌더 Pod로 설정할 수 있습니다. 이러한 변수는 빌드 컨텍스트에만 유효하며 최종 빌드된 워크플로우 이미지에 설정되지 않습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여 기존
SonataFlowBuild
인스턴스를 확인합니다.$ oc get sonataflowbuild <name> -n <namespace>
<
;name
>을SonataFlowBuild
인스턴스의 이름으로 바꾸고 <namespace
>를 네임스페이스로 바꿉니다.다음 명령을 실행하여
SonataFlowBuild
인스턴스를 편집합니다.$ oc edit sonataflowbuild <name> -n <namespace>
SonataFlowBuild
인스턴스 예apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: <name> spec: envs: - name: <env_variable_1> value: <value_1> - name: <env_variable_2> value: <value_2>
파일을 저장하고 종료합니다.
업데이트된 구성이 새로 시작됩니다.
또는
SonataFlowPlatform
에서 enviroments를 설정하여 모든 새 빌드 인스턴스에서 템플릿으로 사용할 수 있습니다.SonataFlowPlatform
인스턴스 예apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: <name> spec: build: template: envs: - name: <env_variable_1> value: <value_1> - name: <env_variable_2> value: <value_2>
1.2.2.1.6. 기본 빌더 이미지 변경
logic-operator-rhel8-builder-config
구성 맵을 편집하여 OpenShift Serverless Logic Operator에서 사용하는 기본 빌더 이미지를 수정할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여
logic-operator-rhel8-builder-config
구성 맵을 편집합니다.$ oc edit cm/logic-operator-rhel8-builder-config -n openshift-serverless-logic
dockerfile 항목을 수정합니다.
편집기에서 Dockerfile 항목을 찾아 첫 번째 행을 원하는 이미지로 변경합니다.
예
data: Dockerfile: | FROM registry.redhat.io/openshift-serverless-1/logic-swf-builder-rhel8:1.33.0 # Change the image to the desired one
- 변경 사항을 저장합니다.
1.2.2.2. 워크플로우 빌드 및 배포
OpenShift Container Platform 및 OpenShift Serverless Logic Operator에서 SonataFlow
CR(사용자 정의 리소스)을 생성하여 워크플로우를 빌드하고 배포할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음과 유사한 워크플로우 YAML 파일을 생성합니다.
apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 spec: flow: start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: "${ .language == \"English\" }" transition: GreetInEnglish - condition: "${ .language == \"Spanish\" }" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: "Hello from JSON Workflow, " transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: "Saludos desde JSON Workflow, " transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: ".greeting+.name" end: true
다음 명령을 실행하여
SonataFlow
워크플로우 정의를 OpenShift Container Platform 네임스페이스에 적용합니다.$ oc apply -f <workflow-name>.yaml -n <your_namespace>
welcomes
-workflow.yaml
파일에 대한 명령의 예:$ oc apply -f greetings-workflow.yaml -n workflows
다음 명령을 실행하여 모든 빌드 구성을 나열합니다.
$ oc get buildconfigs -n workflows
다음 명령을 실행하여 빌드 프로세스의 로그를 가져옵니다.
$ oc logs buildconfig/<workflow-name> -n <your_namespace>
welcomes
-workflow.yaml
파일에 대한 명령의 예:$ oc logs buildconfig/greeting -n workflows
검증
배포를 확인하려면 다음 명령을 실행하여 모든 Pod를 나열합니다.
$ oc get pods -n <your_namespace>
워크플로우에 해당하는 Pod가 실행 중인지 확인합니다.
다음 명령을 실행하여 실행 중인 Pod 및 해당 로그를 확인합니다.
$ oc logs pod/<pod-name> -n workflows
1.2.2.3. 워크플로우 배포 확인
워크플로우 Pod에서 테스트 HTTP 호출을 수행하여 OpenShift Serverless Logic 워크플로가 실행 중인지 확인할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음과 유사한 워크플로우
YAML
파일을 생성합니다.apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 spec: flow: start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: "${ .language == \"English\" }" transition: GreetInEnglish - condition: "${ .language == \"Spanish\" }" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: "Hello from JSON Workflow, " transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: "Saludos desde JSON Workflow, " transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: ".greeting+.name" end: true
다음 명령을 실행하여 워크플로우 서비스의 경로를 생성합니다.
$ oc expose svc/<workflow-service-name> -n workflows
이 명령은 워크플로우 서비스에 액세스할 공용 URL을 생성합니다.
다음 명령을 실행하여 공용 URL의 환경 변수를 설정합니다.
$ WORKFLOW_SVC=$(oc get route/<workflow-service-name> -n <namespace> --template='{{.spec.host}}')
다음 명령을 실행하여 서비스에 POST 요청을 보내 워크플로우에 HTTP를 호출합니다.
$ curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{<"your": "json_payload">}' http://$WORKFLOW_SVC/<endpoint>
출력 예
{ "id": "b5fbfaa3-b125-4e6c-9311-fe5a3577efdd", "workflowdata": { "name": "John", "language": "English", "greeting": "Hello from JSON Workflow, " } }
이 출력은 워크플로우가 실행 중인 경우 예상되는 응답의 예를 보여줍니다.
1.2.2.4. 빌드 재시작
빌드를 다시 시작하려면 SonataFlowBuild
인스턴스에서 sonataflow.org/restartBuild: true
주석을 추가하거나 편집할 수 있습니다. 워크플로우 또는 초기 빌드 버전에 문제가 있는 경우 빌드를 다시 시작해야 합니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여
SonataFlowBuild
인스턴스가 있는지 확인합니다.$ oc get sonataflowbuild <name> -n <namespace>
다음 명령을 실행하여
SonataFlowBuild
인스턴스를 편집합니다.$ oc edit sonataflowbuild/<name> -n <namespace>
&
lt;name
>을SonataFlowBuild
인스턴스의 이름으로 바꾸고 <namespace
>를 워크플로우가 배포된 네임스페이스로 바꿉니다.sonataflow.org/restartBuild: true
주석을 추가하여 빌드를 다시 시작합니다.apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: <name> annotations: sonataflow.org/restartBuild: true
이 작업을 수행하면 OpenShift Serverless Logic Operator가 워크플로우의 새 빌드를 시작합니다.
빌드 프로세스를 모니터링하려면 다음 명령을 실행하여 빌드 로그를 확인합니다.
$ oc logs buildconfig/<name> -n <namespace>
&
lt;name
>을SonataFlowBuild
인스턴스의 이름으로 바꾸고 <namespace
>를 워크플로우가 배포된 네임스페이스로 바꿉니다.
1.2.3. 워크플로우 편집
OpenShift Serverless Logic Operator는 워크플로우 서비스를 배포할 때 런타임 속성을 저장하기 위해 두 개의 구성 맵을 생성합니다.
-
사용자 속성: 접미사
-props
를 사용하여SonataFlow
오브젝트 뒤에 이름이 지정된ConfigMap
에 정의됩니다. 예를 들어 워크플로우 이름이인사말
인 경우ConfigMap
이름은greeting-props
입니다. -
관리 속성: 접미사
-managed-props
를 사용하여SonataFlow
오브젝트 뒤에 이름이 지정된ConfigMap
에 정의됩니다. 예를 들어 워크플로우 이름이인사말
인 경우ConfigMap
이름은인사말-관리형입니다
.
관리 되는 속성은 항상 동일한 키 이름으로 사용자 속성을 재정의 하며 사용자가 편집할 수 없습니다.Managed properties always override any user property with the same key name and cannot be edited by the user. 다음 조정 사이클에서 Operator가 변경 사항을 덮어씁니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여
ConfigMap
을 열고 편집합니다.$ oc edit cm <workflow_name>-props -n <namespace>
&
lt;workflow_name
>을 워크플로우 이름으로 바꾸고 <namespace
>를 워크플로우가 배포된 네임스페이스로 바꿉니다.application.properties
섹션에 속성을 추가합니다.ConfigMap
내에 저장된 워크플로우 속성의 예:apiVersion: v1 kind: ConfigMap metadata: labels: app: greeting name: greeting-props namespace: default data: application.properties: | my.properties.key = any-value
Operator가 구성을 기본 설정으로 교체하지 못하도록 속성이 올바르게 포맷되었는지 확인합니다.
- 필요한 변경을 수행한 후 파일을 저장하고 편집기를 종료합니다.
1.2.4. 워크플로우 테스트
OpenShift Serverless Logic 워크플로가 올바르게 실행 중인지 확인하려면 관련 Pod에서 테스트 HTTP 호출을 수행할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여 네임스페이스에 지정된 서비스의 경로를 생성하려면 다음을 수행합니다.
$ oc expose svc <service_name> -n <namespace>
다음 명령을 실행하여 새로 노출된 서비스의 URL을 가져오려면 다음을 수행합니다.
$ WORKFLOW_SVC=$(oc get route/<service_name> --template='{{.spec.host}}')
테스트 HTTP 호출을 수행하고 다음 명령을 실행하여
POST
요청을 보냅니다.$ curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '<request_body>' http://$WORKFLOW_SVC/<endpoint>
- 응답을 확인하여 워크플로우가 예상대로 작동하는지 확인합니다.
1.2.5. 워크플로우 문제 해결
OpenShift Serverless Logic Operator는 상태 점검 프로브와 함께 Pod를 배포하여 워크플로우가 정상 상태로 실행되도록 합니다. 변경으로 인해 이러한 상태 점검이 실패하면 Pod가 응답하지 않습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
다음 명령을 실행하여 워크플로우 상태를 확인합니다.
$ oc get workflow <name> -o jsonpath={.status.conditions} | jq .
워크플로우 배포에서 로그를 가져와서 분석하려면 다음 명령을 실행합니다.
$ oc logs deployment/<workflow_name> -f
1.2.6. 워크플로우 삭제
oc delete
명령을 사용하여 현재 디렉터리에서 OpenShift Serverless Logic 워크플로를 삭제할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Logic Operator가 클러스터에 설치되어 있어야 합니다.
- OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한으로 OpenShift Serverless Logic 프로젝트에 액세스할 수 있습니다.
-
OpenShift CLI
(oc)
를 설치했습니다.
프로세스
-
삭제할 워크플로우를 정의하는 올바른 파일이 있는지 확인합니다. 예:
workflow.yaml
. oc delete
명령을 실행하여 지정된 네임스페이스에서 워크플로우를 제거합니다.$ oc delete -f <your_file> -n <your_namespace>
<
;your_file
>을 워크플로우 파일의 이름으로 바꾸고 <your_namespace
>를 네임스페이스로 바꿉니다.