第7章 ワークフローの永続性の管理
			SonataFlow インスタンスを設定して、永続性を使用し、ワークフローコンテキストをリレーショナルデータベースに保存することができます。
		
設計上、Kubernetes Pod はステートレスです。この動作は、Pod の再起動後もアプリケーションの状態を維持する必要があるワークロードに関する課題が生じる可能性があります。OpenShift Serverless Logic の場合、Pod がデフォルトで再起動するとワークフローコンテキストが失われます。
			このようなシナリオでワークフローリカバリーを確保するには、ワークフローのランタイムの永続性を設定する必要があります。SonataFlowPlatform カスタムリソース (CR) または SonataFlow CR を使用してこの設定を指定します。設定のスコープは使用するリソースによって異なります。
		
7.1. SonataFlowPlatform CR を使用した永続性の設定 リンクのコピーリンクがクリップボードにコピーされました!
				SonataFlowPlatform カスタムリソース (CR) は、namespace レベルでの永続性設定を有効にします。このアプローチでは、namespace にデプロイされたすべてのワークフローに永続性設定が自動的に適用されます。これにより、特に namespace 内の複数のワークフローが同じアプリケーションに属する場合に、リソース設定が簡素化されます。この設定はデフォルトで適用されますが、namespace 内の個々のワークフローは SonataFlow CR を使用してこれをオーバーライドできます。
			
OpenShift Serverless Logic Operator は、この設定を使用してサポートサービスの永続性もセットアップします。
					永続性設定は、ワークフローのデプロイメント時にのみ適用されます。SonataFlowPlatform CR への変更は、すでにデプロイされているワークフローには影響しません。
				
手順
- 
						
SonataFlowPlatformCR を定義します。 SonataFlowPlatformCR 仕様の下にあるpersistenceフィールドに永続性設定を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - PostgreSQL データベースに接続する Kubernetes Service の名前。
 - 2
 - オプション: PostgreSQL Service の namespace。デフォルトは
SonataFlowPlatformの namespace です。 - 3
 - ワークフローデータを格納する PostgreSQL データベースの名前。
 - 4
 - オプション: PostgreSQL Service に接続するためのポート番号。デフォルトは
5432です。 - 5
 - データベース認証情報が含まれる Kubernetes シークレットの名前。
 - 6
 - データベースのユーザー名が含まれる
Secretオブジェクトのキー。 - 7
 - データベースのパスワードが含まれる
Secretオブジェクトのキー。 
ワークフロー用に生成された環境変数を表示します。
次の例は、以前の
SonataFlowPlatform設定でデプロイされたexample-workflowという名前のワークフロー用に生成された環境変数を示しています。これらの設定は永続性に特化したもので、OpenShift Serverless Logic Operator によって管理されます。これらの設定は、適用後は変更できません。
					SonataFlowPlatform の永続性を使用する場合、すべてのワークフローは、ワークフロー名と同じ PostgreSQL スキーマ名を使用するように設定されています。
				
				この永続性設定が適用されると、OpenShift Serverless Logic Operator は preview または gitops プロファイルを使用して、この namespace にデプロイされたすべてのワークフローを設定し、関連する JDBC 接続パラメーターを環境変数として注入して PostgreSQL データベースに接続します。
			
現在、PostgreSQL は唯一永続性向けにサポートされているデータベースです。
				preview プロファイルを使用した SonataFlow CR デプロイメントの場合、OpenShift Serverless Logic ビルドシステムには、永続性の有効化に必要な特定の Quarkus エクステンションが自動的に含まれます。これにより、永続性メカニズムとの互換性が確保され、ワークフローのデプロイメントプロセスが合理化されます。