Iron Bank
=========

Kubernetes(PG4K)のEDB Postgresは `Iron Bank <https://p1.dso.mil/services/iron-bank>`_  で入手できます。
`overview page <https://docs-ironbank.dso.mil/overview/>`_ で読めるように

   Iron Bankは、国防総省の強化コンテナのソースです。 > > […中略…] >>
   Iron
   Bankは最終的には誰でも消費または貢献できます。ただし、特に次のペルソナをターゲットとしています。
   > > -
   強化されたコンテナと各コンテナのアイアンバンクBoE証拠本文を使用したい国防総省組織
   > - コンテナへのコントリビューションを支援したい国防総省組織例
   バグ修正、新しいアプリケーション、更新) > -
   アプリケーションに関連するリスクを理解したい国防総省承認職員 > -
   アプリケーションを国防総省に持ち込みたい商用ベンダー

Iron Bankは、国防総省の `Platform One <https://p1.dso.mil/>`_ の一部です。

`EDB Postgres for Kubernetes <https://repo1.dso.mil/dsop/enterprisedb/edb-pg4k-operator>`_ のIron Bankページにアクセスするには、Iron
Bankの資格情報が必要です。

Iron BankからEDB PG4Kとオペランドイメージをプルする
---------------------------------------------------

画像は別の `Iron Bank container registry <https://registry1.dso.mil/>`_  から取得されます。 Iron
Bankレジストリからイメージをプルできるようにするには、 `instructions from Iron Bank <https://docs-ironbank.dso.mil/tutorials/image-pull/>`_ 
に従ってください。

具体的には、 `registry1 <https://registry1.dso.mil/harbor/projects>`_ を使用する必要があります

イメージをプルするための資格情報。

目的の演算子またはオペランドイメージを見つけるには、画像に示すように、検索ツールを使用して文字列\ ``enterprisedb``
で検索し、\ ``Tags`` でフィルターして\ ``stable``
を探すことをお勧めします。そこから、イメージをプルする指示を取得できます。

.. figure:: /images/ironbank/pulling-the-image.png
   :width: 70% 
   :alt: pulling-ironbank-images

   pulling-ironbank-images

たとえば、IronbankからEPAS16オペランドをプルするには、次のコマンドを実行できます。

.. code:: bash

   docker pull registry1.dso.mil/ironbank/enterprisedb/edb-postgres-advanced-16:16

より具体的なタグを選択するか、特定のSHAを使用する場合は、
`Harbor page <https://registry1.dso.mil/harbor/projects/3/repositories/enterprisedb%2Fedb-postgres-advanced-16/artifacts-tab>`_ からそれを見つける必要があります。

Iron Bankイメージを使用したPG4Kオペレーターのインストール
---------------------------------------------------------

インストールするには、Iron
Bankイメージをポイントする展開マニフェストが必要です。
:ref:`installation instructions for EDB PG4K <Installation and upgrades>` から展開マニフェストを取得できます。たとえば、1.22.0リリースの場合、マニフェストは\ ``https://get.enterprisedb.io/cnp/postgresql-operator-1.22.0.yaml``
で入手できます。
IronBankイメージのイメージパスを設定する必要がある場所がいくつかあります。

.. code:: yaml

   apiVersion: apps/v1
   kind: Deployment
   metadata:
     labels:
       app.kubernetes.io/name: cloud-native-postgresql
     name: postgresql-operator-controller-manager
     namespace: postgresql-operator-system
   spec:
     [… snipped …]
     template:
       metadata:
         labels:
           app.kubernetes.io/name: cloud-native-postgresql
       spec:
         containers:
         - args:
           - controller
             [… snipped …]
           env:
           - name: PULL_SECRET_NAME
             value: postgresql-operator-pull-secret
           - name: OPERATOR_IMAGE_NAME
             value: <INSERT-YOUR-OPERATOR-IMAGE>

           [… snipped …]
           image: <INSERT-YOUR-OPERATOR-IMAGE>

オペレーターをIron
Bankから直接展開する場合は、上記のように、レジストリへの資格情報を使用してプルシークレットを作成および設定する必要があります。

サイトの手順を使用してIron
Bankからイメージを取得し、そこから再タグ付けしてローカルレジストリに公開するか、Kubernetesノードに直接プッシュする方が簡単な場合があります。

これを配置すると、 :ref:`installation instructions <Installation and upgrades>` で説明しているように、
``kubectl apply -f`` を使用して通常にマニフェストを適用できます。

IronBankイメージを使用したEPASオペランドを使用したクラスターの展開
------------------------------------------------------------------

EPAS `operand <https://www.enterprisedb.com/docs/postgres_for_kubernetes/latest/private_edb_registries/#operand-images>`_ を使用してクラスターを展開するには、 ``Cluster``
リソースYAMLでIronbankオペランドイメージを適切に参照する必要があります。たとえば、EPAS
16オペランドを使用してPG4Kクラスターを展開するには

1. 次の内容を使用して\ ``Cluster``
   リソースYAMLファイルを作成または編集します。

.. code:: yaml

   apiVersion: postgresql.k8s.enterprisedb.io/v1
   kind: Cluster
   metadata:
     name: cluster-example-full
   spec:
     imageName: registry1.dso.mil/ironbank/enterprisedb/edb-postgres-advanced-17:17
     imagePullSecrets:
       - name: my_ironbank_secret

2. YAMLを適用します。

::

   kubectl apply -f <filename>

3. リソースのステータスを確認します。

::

   kubectl get clusters
