Skip to content

Commit 9f2eeec

Browse files
smbeckerbrandond
authored andcommitted
Add support for docker registry secret
This allows OCI registries to inherit configuration from the configured docker-registry secret Signed-off-by: Shaun Becker <smbecker@gmail.com>
1 parent fcb8db8 commit 9f2eeec

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

pkg/apis/helm.cattle.io/v1/types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ type HelmChartSpec struct {
3636
FailurePolicy string `json:"failurePolicy,omitempty"`
3737
AuthSecret *corev1.LocalObjectReference `json:"authSecret,omitempty"`
3838

39-
AuthPassCredentials bool `json:"authPassCredentials,omitempty"`
39+
AuthPassCredentials bool `json:"authPassCredentials,omitempty"`
40+
DockerRegistrySecret *corev1.LocalObjectReference `json:"dockerRegistrySecret,omitempty"`
4041
}
4142

4243
type HelmChartStatus struct {

pkg/apis/helm.cattle.io/v1/zz_generated_deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/controllers/chart/chart.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,7 @@ func job(chart *v1.HelmChart) (*batch.Job, *corev1.Secret, *corev1.ConfigMap) {
490490

491491
setProxyEnv(job)
492492
setAuthSecret(job, chart)
493+
setDockerRegistrySecret(job, chart)
493494
setRepoCAConfigMap(job, chart)
494495
valuesSecret := setValuesSecret(job, chart)
495496
contentConfigMap := setContentConfigMap(job, chart)
@@ -746,6 +747,28 @@ func setAuthSecret(job *batch.Job, chart *v1.HelmChart) {
746747
}
747748
}
748749

750+
func setDockerRegistrySecret(job *batch.Job, chart *v1.HelmChart) {
751+
if secret := chart.Spec.DockerRegistrySecret; secret != nil {
752+
job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, corev1.Volume{
753+
Name: "dockerconfig",
754+
VolumeSource: corev1.VolumeSource{
755+
Secret: &corev1.SecretVolumeSource{
756+
SecretName: secret.Name,
757+
Items: []corev1.KeyToPath{{
758+
Key: ".dockerconfigjson",
759+
Path: "config.json",
760+
}},
761+
},
762+
},
763+
})
764+
765+
job.Spec.Template.Spec.Containers[0].VolumeMounts = append(job.Spec.Template.Spec.Containers[0].VolumeMounts, corev1.VolumeMount{
766+
MountPath: "/home/klipper-helm/.docker",
767+
Name: "dockerconfig",
768+
})
769+
}
770+
}
771+
749772
func setRepoCAConfigMap(job *batch.Job, chart *v1.HelmChart) {
750773
if cm := chart.Spec.RepoCAConfigMap; cm != nil {
751774
job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, corev1.Volume{

0 commit comments

Comments
 (0)