S2I-Openshift3の「Source-to-image」リソースがTLS Gitlabリポジトリに接続しようとすると、次のメッセージが表示されます。
どの認証局がそこで使用できるかをOpenshift3に指示するにはどうすればよいですか?このエラーをバイパスするための設定/オプションはありますか?
入力されたコマンドは次のとおりです。
oc new-app Tomcat~https://gitlab.xxx/test/test.git --name=test --strategy=docker
セキュリティ上の理由から、BuildConfigに 信頼できるCAソースシークレット を追加する必要があります。質問に答えるために、BuildConfigで環境変数GIT_SSL_NO_VERIFY
をfalse
に設定して、TLS検証を無効にすることができます。詳細については、 docs here を確認してください。
これをoc new-app
コマンドに直接渡すには、oc new-app --build-env GIT_SSL_NO_VERIFY=false
を実行します
または、TLS検証が機能するようにルートCAをインポートすることをお勧めします。これがmustである必要があるすべての理由について話そうとはしませんが、次のようにします。
内部Gitlabインスタンスを実行している場合、それを設定した人は誰でも使用しているルートCAを指すことができるはずです。
#oc secrets new [secret name] ca.crt=[local .crt file]
oc secrets new tls-root-ca ca.crt=my-it-ca.crt
#oc patch bc/[build config name] --patch '{ "spec": {"source": { "sourceSecret": { "name": "[secret name]" } } } }'
oc patch bc/my-build --patch '{ "spec": {"source": { "sourceSecret": { "name": "tls-root-ca" } } } }'
Patchコマンドに慣れていない場合は、次のように「sourceSecret」ブロックを追加するだけです。
source:
git:
uri: https://your.gitlab.org/your-app
sourceSecret:
name: tls-root-ca
入力シークレットの構築に関するオープンシフトガイド も参照してください。