2017-09-03 3 views
2

シーンを設定する: 私はマルチノードKubernetes clusterを設定し、Jenkins Kubernetes pluginJenkins Helm Chartを配備しました。エンタープライズGitHubインストールを社内で実行し、私たちは複数のプライベート・パブリック・リポジトリを持っています。ビルドは非宣言型Jenkins pipelinesmany features are missing in the plugin for declarative pipelines)を使用して実装されています。ビルドはJenkinsのマスターでは実行されませんが、すべてのジョブの実行では、podTemplates/containerTemplatesによって明らかな理由(最大スケールアウトと完全分離/副作用なし)で自分のポッドを消費します。パイプライン実行中にJenkins Kubernetes PluginによってPodTemplate/ContainerTemplateにmasterから引き出された資格情報/秘密はありませんか?

問題/質問: 私は、プライベートリポジトリから取得する方法ない方法や説明を見つからないか、より一般的に話され、私は維持したいとジェンキンスマスター(から任意の資格証明書/秘密を引っ張っする方法を発見しましたそれらを集中的に)プラグインが私の仕事のために作成するポッド/コンテナに入れます。すなわち、私はそれらのポッド/コンテナで間違っています。プライベートレポから引き出す秘密/秘密。動的に生成されたポッド/コンテナでこれらを使用できるようにするにはどうすればよいですか?それも可能ですか?

は、いくつかの追加情報:私は完全にプライベートなリポジトリから取得することができ、私のジェンキンスマスターで 、すべてのものへのアクセス権を持っているし、すべての罰金です。最近では、Kubernetesプラグインを使用してクラスタの数を増やそうとしていました。また、私は kubectl execをJNLPスレーブコンテナ(と私のcontainerTemplatesに基づく兄弟)に入れて何も見つけられませんでした。ファイルではなく、ENVにはありません。私の信任状/秘密がどのように注入されるのか、私がそれをどうする必要があるのか​​はわかりません。私はすでに使用しますが、私は交換したいと

汚いソリューション: 問題を克服するために、私はJenkinsFileに私の資格情報を入れて、私は今、私のレポを越え、それらを汚すので、それは残念だし、それが公共のためのソリューションませんいずれかのレポです。私がしたのは、ポッド/コンテナテンプレート用のイメージにそれらを焼くことでしたが、DockerFilesに直接(またはビルド中に間接的に)配置して同様の理由で見栄えが悪く、既製のイメージを使用することはできませんもはや私は公共のイメージリポジトリに私を入れることはできません。私はトップクラスのpodTemplate/containerTemplateを変更し、ENVヴァールに資格/秘密を手動で追加することも可能だと思いますが、これはJenkinsのマスター資格情報/秘密ストアを使用しなくても醜いです。

私は問題のクリーンなソリューションを探しています。 Jenkinsのマスターからの資格/秘密を、私が好むダイナミックに生成されたポッド/コンテナに持ち込むことも可能です(静的なスレーブはなく、各ジョブの実行ごとに動的なスレーブです)。

+0

あなたはどんな資格情報を取得することができませんか? [Kubernetes Pluginを使用するJenkinsfile](https://github.com/radu-matei/kube-bot/blob/master/Jenkinsfile)は、資格情報を引き出すことによって正常に動作します。 Jenkinsfileのサンプルを投稿することができれば助かりました –

答えて

0
git url: 'private-gitlab-address', 
    branch: 'master', 
    credentialsId : 'my_jenkins_credential_id' 

自分my_jenkins_credential_id利用可能グローバルにこのページによってを作成することができます。

jenkins-master-address/credentials/store/system/domain/_/newCredentials 
関連する問題