第9章 クラスターでの関数のビルドとデプロイ
関数をローカルでビルドする代わりに、クラスターで直接関数をビルドできます。このワークフローをローカル開発マシンで使用する場合は、関数のソースコードのみを操作する必要があります。これは、たとえば、docker や podman などのクラスター上の関数構築ツールをインストールできない場合に役立ちます。
9.1. クラスター上での関数の構築とデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn) CLI を使用して、関数プロジェクトのビルドを開始し、関数をクラスターに直接デプロイできます。この方法で関数プロジェクトをビルドするには、関数プロジェクトのソースコードが、クラスターにアクセスできる Git リポジトリーブランチに存在する必要があります。
前提条件
- Red Hat OpenShift パイプラインがクラスターにインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
Knative (
kn) CLI がインストールされている。
手順
次のリソースを作成します。
パイプラインで Source-to-Image を使用できるように
s2iTekton タスクを作成します。oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow kn funcdeploy Tekton タスクを作成して、パイプラインに関数をデプロイできるようにします。oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.29.0/pkg/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関数を作成します。
kn func create <function_name> -l <runtime>
$ kn func create <function_name> -l <runtime>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 関数のビジネスロジックを実装します。次に、Git を使用して変更をコミットしてプッシュします。
関数をデプロイします。
kn func deploy --remote
$ kn func deploy --remoteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 関数設定で参照されているコンテナーレジストリーにログインしていない場合は、関数イメージをホストするリモートコンテナーレジストリーの認証情報を入力するように求められます。
出力例とプロンプト
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
関数を更新するには、Git を使用して新しい変更をコミットしてプッシュしてから、
kn func deploy --remoteコマンドを再度実行します。 オプション: Pipelines-as-code を使用して、Git プッシュのたびにクラスター上に関数が構築されるように設定できます。
関数の Tekton
PipelinesおよびPipelineRuns設定を生成します。kn func config git set
$ kn func config git setCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、設定ファイルの生成とは別に、クラスターに接続し、パイプラインがインストールされていることを検証します。このトークンを使用して、ユーザーの代わりに関数リポジトリーの Webhook も作成します。この Webhook は、変更がリポジトリーにプッシュされるたびに、クラスター上のパイプラインをトリガーします。
このコマンドを使用するには、リポジトリーへのアクセス権を持つ有効な GitHub 個人アクセストークンが必要です。
生成された
.tekton/pipeline.yamlおよび.tekton/pipeline-run.yamlファイルをコミットしてプッシュします。git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml git commit -m 'Add the Pipelines and PipelineRuns configuration' git push
$ git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml $ git commit -m 'Add the Pipelines and PipelineRuns configuration' $ git pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 関数に変更を加えた後、それをコミットしてプッシュします。作成されたパイプラインを使用して関数が自動的に再構築されます。