6.3. イメージプルシークレットの作成
組織の OpenShift Dev Spaces インスタンスの OpenShift クラスター内の Dev Workspace
Pod が、認証を必要とするコンテナーレジストリーにアクセスできるようにするには、イメージプルシークレットを作成します。
oc
、.dockercfg
ファイル、または config.json
ファイルを使用して、イメージプルシークレットを作成できます。
6.3.1. oc
でシークレットをプルするイメージを作成する
前提条件
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照してください。
手順
ユーザープロジェクトで、プライベートコンテナーレジストリーの詳細とクレデンシャルを使用してイメージプルシークレットを作成します。
$ oc create secret docker-registry <Secret_name> \ --docker-server=<registry_server> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>
次のラベルをイメージプルシークレットに追加します。
$ oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=true
6.3.2. .dockercfg
ファイルからイメージプルシークレットを作成する
プライベートコンテナーレジストリーのクレデンシャルを .dockercfg
ファイルにすでに保存している場合は、そのファイルを使用してイメージプルシークレットを作成できます。
前提条件
手順
.dockercfg
ファイルを Base64 にエンコードします。$ cat .dockercfg | base64 | tr -d '\n'
ユーザープロジェクトに新しい OpenShift シークレットを作成します。
apiVersion: v1 kind: Secret metadata: name: <Secret_name> labels: controller.devfile.io/devworkspace_pullsecret: 'true' controller.devfile.io/watch-secret: 'true' data: .dockercfg: <Base64_content_of_.dockercfg> type: kubernetes.io/dockercfg
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
6.3.3. config.json
ファイルからイメージプルシークレットを作成する
プライベートコンテナーレジストリーのクレデンシャルを $HOME/.docker/config.json
ファイルに既に保存している場合は、そのファイルを使用してイメージプルシークレットを作成できます。
前提条件
手順
$HOME/.docker/config.json
ファイルを Base64 にエンコードします。$ cat config.json | base64 | tr -d '\n'
ユーザープロジェクトに新しい OpenShift シークレットを作成します。
apiVersion: v1 kind: Secret metadata: name: <Secret_name> labels: controller.devfile.io/devworkspace_pullsecret: 'true' controller.devfile.io/watch-secret: 'true' data: .dockerconfigjson: <Base64_content_of_config.json> type: kubernetes.io/dockerconfigjson
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF