Skip to content

Commit cc59c3b

Browse files
committed
Fix missing TLS ServerName in ImageRepository
This commit updates the pkg/runtime dependency from v0.69.0 to v0.75.0 to address the TLS ServerName regression issue. The new version requires targetURL and insecure parameters for TLSConfigFromSecretRef to properly configure ServerName for virtual hosting environments. The image spec contains repository names without scheme (e.g., "127.0.0.1:5000/foo/bar"), but TLSConfigFromSecretRef now requires a proper URL for ServerName extraction. This change constructs the registry URL using go-containerregistry's existing name resolution logic to maintain consistency with the project's URL handling. Signed-off-by: cappyzawa <[email protected]>
1 parent 6a0f39a commit cc59c3b

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ require (
1212
github.com/fluxcd/image-reflector-controller/api v0.35.2
1313
github.com/fluxcd/pkg/apis/acl v0.8.0
1414
github.com/fluxcd/pkg/apis/event v0.18.0
15-
github.com/fluxcd/pkg/apis/meta v1.17.0
15+
github.com/fluxcd/pkg/apis/meta v1.18.0
1616
github.com/fluxcd/pkg/auth v0.21.0
1717
github.com/fluxcd/pkg/cache v0.10.0
18-
github.com/fluxcd/pkg/runtime v0.69.0
18+
github.com/fluxcd/pkg/runtime v0.75.0
1919
github.com/fluxcd/pkg/version v0.9.0
2020
github.com/go-logr/logr v1.4.3
2121
github.com/google/go-containerregistry v0.20.6

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,14 @@ github.com/fluxcd/pkg/apis/acl v0.8.0 h1:mZNl4mOQQf5/cdMCYgKcrZTZRndCtMtkI0BDfNO
175175
github.com/fluxcd/pkg/apis/acl v0.8.0/go.mod h1:uv7pXXR/gydiX4MUwlQa7vS8JONEDztynnjTvY3JxKQ=
176176
github.com/fluxcd/pkg/apis/event v0.18.0 h1:PNbWk9gvX8gMIi6VsJapnuDO+giLEeY+6olLVXvXFkk=
177177
github.com/fluxcd/pkg/apis/event v0.18.0/go.mod h1:7S/DGboLolfbZ6stO6dcDhG1SfkPWQ9foCULvbiYpiA=
178-
github.com/fluxcd/pkg/apis/meta v1.17.0 h1:KVMDyJQj1NYCsppsFUkbJGMnKxsqJVpnKBFolHf/q8E=
179-
github.com/fluxcd/pkg/apis/meta v1.17.0/go.mod h1:97l3hTwBpJbXBY+wetNbqrUsvES8B1jGioKcBUxmqd8=
178+
github.com/fluxcd/pkg/apis/meta v1.18.0 h1:ACHrMIjlcioE9GKS7NGk62KX4NshqNewr8sBwMcXABs=
179+
github.com/fluxcd/pkg/apis/meta v1.18.0/go.mod h1:97l3hTwBpJbXBY+wetNbqrUsvES8B1jGioKcBUxmqd8=
180180
github.com/fluxcd/pkg/auth v0.21.0 h1:ckAQqP12wuptXEkMY18SQKWEY09m9e6yI0mEMsDV15M=
181181
github.com/fluxcd/pkg/auth v0.21.0/go.mod h1:MXmpsXT97c874HCw5hnfqFUP7TsG8/Ss1vFrk8JccfM=
182182
github.com/fluxcd/pkg/cache v0.10.0 h1:M+OGDM4da1cnz7q+sZSBtkBJHpiJsLnKVmR9OdMWxEY=
183183
github.com/fluxcd/pkg/cache v0.10.0/go.mod h1:pPXRzQUDQagsCniuOolqVhnAkbNgYOg8d2cTliPs7ME=
184-
github.com/fluxcd/pkg/runtime v0.69.0 h1:5gPY95NSFI34GlQTj0+NHjOFpirSwviCUb9bM09b5nA=
185-
github.com/fluxcd/pkg/runtime v0.69.0/go.mod h1:ug+pat+I4wfOBuCy2E/pLmBNd3kOOo4cP2jxnxefPwY=
184+
github.com/fluxcd/pkg/runtime v0.75.0 h1:wIaODmU5D54nyrehTqA9oQDFoi6BbBj/24adLStXc0I=
185+
github.com/fluxcd/pkg/runtime v0.75.0/go.mod h1:iGhdaEq+lMJQTJNAFEPOU4gUJ7kt3yeDcJPZy7O9IUw=
186186
github.com/fluxcd/pkg/version v0.9.0 h1:pQBHMt9TbnnTUzj3EoMhRi5JUkNBqrTBSAaoLG1ovUA=
187187
github.com/fluxcd/pkg/version v0.9.0/go.mod h1:JU6/UwNbGeMm4gqeyUn/dxl+qwLTi2+X10xpfgWdt9I=
188188
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=

internal/registry/options.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,20 @@ func (r *AuthOptionsGetter) GetOptions(ctx context.Context, repo *imagev1.ImageR
125125
Name: certSecret.Name,
126126
Namespace: certSecret.Namespace,
127127
}
128-
tlsConfig, err := secrets.TLSConfigFromSecretRef(ctx, r.Client, certSecretRef)
128+
129+
// Build target URL for TLS server name validation.
130+
// The image spec contains repository name without scheme (e.g., "127.0.0.1:5000/foo/bar"),
131+
// but TLSConfigFromSecretRef requires a proper URL for ServerName extraction.
132+
ref, err := ParseImageReference(repo.Spec.Image, repo.Spec.Insecure)
133+
if err != nil {
134+
return nil, err
135+
}
136+
registry := ref.Context().Registry
137+
registryURL := &url.URL{
138+
Scheme: registry.Scheme(),
139+
Host: registry.Name(),
140+
}
141+
tlsConfig, err := secrets.TLSConfigFromSecretRef(ctx, r.Client, certSecretRef, registryURL.String(), repo.Spec.Insecure)
129142
if err != nil {
130143
return nil, err
131144
}

0 commit comments

Comments
 (0)