Tanzu Application Service(beta)にPacketo Python Buildpackを追加する(改訂版)

前回のやり方で、Tanzu Application Service(Beta)にPython Buildpackをインストールする方法を紹介しました。しかし、この方法だと、インストールスクリプト(kapp)を流す度に永続化されず、再実行する必要がある問題がありました。この記事では改訂版でBuildPackのインストールを永続化する方法を紹介します。

注意

引き続き正式な手順ではないのでご注意ください。

手順

1. 使用したいPythonのBuildPackをみつける

以下のURLにログインします。

https://console.cloud.google.com/gcr/images/paketo-community/GLOBAL/python?gcrImageListsize=30

そして、今回使いたいPython Buildpackを選択してURLを保存します。

この例では、version 0.0.3を前提にすすめます。

2. Pythonのビルドパックで使用したいバージョンにオーバーライド

以下のようなYamlファイル../configuration-values/python-buildpack.yamlとして用意します。image:以降の値を前手順でコピーしたものに置き換えます。

 1#@ load("@ytt:overlay", "overlay")
 2
 3#@overlay/match by=overlay.subset({"kind": "Store","metadata": {"name": "cf-buildpack-store"}})
 4---
 5spec:
 6  sources:
 7  #@overlay/match by=overlay.all
 8  #@overlay/match by=lambda x, y, z: y["image"].startswith("gcr.io/paketo-community/python"), expects="1+"
 9  #@overlay/replace
10  - image: gcr.io/paketo-community/python@sha256:e6546f3072c49336ce99a2d8297716b748a69da9128c5afb1606c2b73a18a317

さらに以下のファイルが存在した場合、config-optionalに写します。

1mv config/omit-community-buildpacks.yml config-optional/

3. インストールを再実行する

以下のInstallを再実行します。

https://docs.pivotal.io/tas-kubernetes/0-3/installing-tas-for-kubernetes.html#install-tas-for-k8s-from-network

確認

以下のようにStoreにpythonのビルドパックが表示されれば成功です。

 1$ kubectl get store cf-buildpack-store -o yaml
 2...
 3- api: "0.2"
 4	buildpackage:
 5		id: paketo-community/python
 6		version: 0.0.3
 7	diffId: sha256:10c2a652e1089dfc757f8041099ee287dbeb24645dc6810585e09c76cf7cf3be
 8	digest: sha256:a99f8b9f7854ebd520ce682aa23733dca6635b848fcaa61779fdfcd4b012ce22
 9	id: paketo-community/pip
10	size: 5023166
11	stacks:
12	- id: io.buildpacks.stacks.bionic
13	- id: org.cloudfoundry.stacks.cflinuxfs3
14	storeImage:
15		image: gcr.io/paketo-community/python@sha256:e6546f3072c49336ce99a2d8297716b748a69da9128c5afb1606c2b73a18a317
16	version: 0.0.139

まとめ

Pythonのビルドバックの永続化も行えます。