This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.3. クラスター上での機能の構築とデプロイ
関数をローカルでビルドする代わりに、クラスターで直接関数をビルドできます。このワークフローをローカル開発マシンで使用する場合は、関数のソースコードのみを操作する必要があります。これは、たとえば、docker や podman などのクラスター上の関数構築ツールをインストールできない場合に役立ちます。
6.3.1. クラスターでの関数のビルドとデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用して、関数プロジェクトのビルドを開始し、関数をクラスターに直接デプロイできます。この方法で関数プロジェクトをビルドするには、関数プロジェクトのソースコードが、クラスターにアクセスできる Git リポジトリーブランチに存在する必要があります。
前提条件
- Red Hat OpenShift パイプラインをクラスターにインストールする必要がある。
-
OpenShift CLI (
oc
) がインストールされている。 -
Knative (
kn
) CLI をインストールしている。
手順
パイプラインを実行して関数をデプロイする各 namespace で、次のリソースを作成する必要があります。
パイプラインで Source-to-Image を使用できるように
s2i
Tekton タスクを作成します。oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.28.0/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.28.0/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kn func
deploy Tekton タスクを作成して、パイプラインに関数をデプロイできるようにします。oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.28.0/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.28.0/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
Copy 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 リポジトリーに追加し、リポジトリーがクラスターで使用可能であることを確認する必要があります。この Git リポジトリーに関する情報は、次のステップで
func.yaml
ファイルを更新するために使用されます。 関数プロジェクトの
func.yaml
ファイルの設定を更新して、Git リポジトリーのクラスター上ビルドを有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 関数のビジネスロジックを実装します。次に、Git を使用して変更をコミットしてプッシュします。
関数をデプロイします。
kn func deploy --remote
$ kn func deploy --remote
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 関数設定で参照されているコンテナーレジストリーにログインしていない場合は、関数イメージをホストするリモートコンテナーレジストリーの資格情報を入力するように求められます。
出力例とプロンプト
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
関数を更新するには、Git を使用して新しい変更をコミットしてプッシュしてから、
kn func deploy --remote
コマンドを再度実行します。
6.3.2. 関数リビジョンの指定 リンクのコピーリンクがクリップボードにコピーされました!
関数をビルドしてクラスターにデプロイするときは、リポジトリー内の Git リポジトリー、ブランチ、およびサブディレクトリーを指定して、関数コードの場所を指定する必要があります。main
ブランチを使用する場合は、ブランチを指定する必要はありません。同様に、関数がリポジトリーのルートにある場合、サブディレクトリーを指定する必要はありません。これらのパラメーターは、func.yaml
設定ファイルで指定するか、kn func deploy
コマンドでフラグを使用して指定できます。
前提条件
- Red Hat OpenShift パイプラインをクラスターにインストールする必要がある。
-
OpenShift (
oc
) CLI がインストールされている。 -
Knative (
kn
) CLI をインストールしている。
手順
関数をデプロイします。
kn func deploy --remote \ --git-url <repo-url> \ [--git-branch <branch>] \ [--git-dir <function-dir>]
$ kn func deploy --remote \
1 --git-url <repo-url> \
2 [--git-branch <branch>] \
3 [--git-dir <function-dir>]
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
kn func deploy --remote \ --git-url https://example.com/alice/myfunc.git \ --git-branch my-feature \ --git-dir functions/example-func/
$ kn func deploy --remote \ --git-url https://example.com/alice/myfunc.git \ --git-branch my-feature \ --git-dir functions/example-func/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow