Skip to content

Commit f656cb1

Browse files
authored
Merge pull request #1905 from fluxcd/backport-1904-to-release/v1.7.x
[release/v1.7.x] Fix HelmChart reconciler appending login options when they do not exist
2 parents e9992e3 + 89497b4 commit f656cb1

File tree

2 files changed

+9
-63
lines changed

2 files changed

+9
-63
lines changed

hack/ci/e2e.sh

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,10 @@ CREATE_CLUSTER="${CREATE_CLUSTER:-true}"
66
KIND_CLUSTER_NAME="${KIND_CLUSTER_NAME:-kind}"
77
LOAD_IMG_INTO_KIND="${LOAD_IMG_INTO_KIND:-true}"
88
BUILD_PLATFORM="${BUILD_PLATFORM:-linux/amd64}"
9-
MINIO_HELM_VER="${MINIO_HELM_VER:-12.10.3}"
109

1110
IMG=test/source-controller
1211
TAG=latest
1312

14-
MC_RELEASE=mc.RELEASE.2023-11-20T16-30-59Z
15-
MC_AMD64_SHA256=fdd901a5169d676f32483f9a2de977b7ff3a4fe83e254dcbc35e7a1545591565
16-
MC_ARM64_SHA256=09816180f560875d344dc436ed4ec1348b3ff0c836ae9cf0415fef602489cc11
17-
1813
ROOT_DIR="$(git rev-parse --show-toplevel)"
1914
BUILD_DIR="${ROOT_DIR}/build"
2015

@@ -39,8 +34,6 @@ function cleanup(){
3934
kubectl -n source-system get helmcharts -oyaml
4035
kubectl -n source-system get all
4136
kubectl -n source-system logs deploy/source-controller
42-
kubectl -n minio get all
43-
kubectl -n minio describe pods
4437
else
4538
echo "All E2E tests passed!"
4639
fi
@@ -83,58 +76,6 @@ kubectl -n source-system wait helmchart/podinfo --for=condition=ready --timeout=
8376
kubectl -n source-system wait helmchart/podinfo-git --for=condition=ready --timeout=5m
8477
kubectl -n source-system delete -f "${ROOT_DIR}/config/testdata/helmchart-valuesfile"
8578

86-
echo "Setup Minio"
87-
kubectl create ns minio
88-
helm upgrade minio oci://registry-1.docker.io/bitnamicharts/minio --wait -i \
89-
--version "${MINIO_HELM_VER}" \
90-
--timeout 10m0s \
91-
--namespace minio \
92-
--set auth.rootUser=myaccesskey \
93-
--set auth.rootPassword=mysecretkey \
94-
--set resources.requests.memory=128Mi \
95-
--set persistence.enable=false
96-
kubectl -n minio port-forward svc/minio 9000:9000 &>/dev/null &
97-
98-
sleep 2
99-
100-
if [ ! -f "${BUILD_DIR}/mc" ]; then
101-
MC_SHA256="${MC_AMD64_SHA256}"
102-
ARCH="amd64"
103-
if [ "${BUILD_PLATFORM}" = "linux/arm64" ]; then
104-
MC_SHA256="${MC_ARM64_SHA256}"
105-
ARCH="arm64"
106-
fi
107-
108-
mkdir -p "${BUILD_DIR}"
109-
curl -o "${BUILD_DIR}/mc" -LO "https://dl.min.io/client/mc/release/linux-${ARCH}/archive/${MC_RELEASE}"
110-
if ! echo "${MC_SHA256} ${BUILD_DIR}/mc" | sha256sum --check; then
111-
echo "Checksum failed for mc."
112-
rm "${BUILD_DIR}/mc"
113-
exit 1
114-
fi
115-
116-
chmod +x "${BUILD_DIR}/mc"
117-
fi
118-
119-
"${BUILD_DIR}/mc" alias set minio http://localhost:9000 myaccesskey mysecretkey --api S3v4
120-
kubectl -n source-system apply -f "${ROOT_DIR}/config/testdata/minio/secret.yaml"
121-
122-
echo "Run Bucket tests"
123-
"${BUILD_DIR}/mc" mb minio/podinfo
124-
"${BUILD_DIR}/mc" mirror "${ROOT_DIR}/config/testdata/minio/manifests/" minio/podinfo
125-
126-
kubectl -n source-system apply -f "${ROOT_DIR}/config/testdata/bucket/source.yaml"
127-
kubectl -n source-system wait bucket/podinfo --for=condition=ready --timeout=1m
128-
129-
130-
echo "Run HelmChart from Bucket tests"
131-
"${BUILD_DIR}/mc" mb minio/charts
132-
"${BUILD_DIR}/mc" mirror "${ROOT_DIR}/internal/controller/testdata/charts/helmchart/" minio/charts/helmchart
133-
134-
kubectl -n source-system apply -f "${ROOT_DIR}/config/testdata/helmchart-from-bucket/source.yaml"
135-
kubectl -n source-system wait bucket/charts --for=condition=ready --timeout=1m
136-
kubectl -n source-system wait helmchart/helmchart-bucket --for=condition=ready --timeout=1m
137-
13879
echo "Run large Git repo tests"
13980
kubectl -n source-system apply -f "${ROOT_DIR}/config/testdata/git/large-repo.yaml"
14081
kubectl -n source-system wait gitrepository/large-repo --for=condition=ready --timeout=2m15s

internal/helm/getter/client_opts.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,19 @@ func configureOCIRegistryWithSecrets(ctx context.Context, obj *sourcev1.HelmRepo
195195
if err != nil {
196196
return "", err
197197
}
198-
199-
if loginOpt != nil {
200-
opts.RegLoginOpts = []helmreg.LoginOption{loginOpt, helmreg.LoginOptInsecure(obj.Spec.Insecure)}
198+
if loginOpt == nil {
199+
return "", nil
201200
}
201+
opts.RegLoginOpts = []helmreg.LoginOption{loginOpt, helmreg.LoginOptInsecure(obj.Spec.Insecure)}
202202

203-
// Handle TLS certificate files for OCI
203+
// Handle TLS for login options
204204
var tempCertDir string
205205
if opts.TlsConfig != nil {
206+
// Until Helm 3.19 only a file-based login option for TLS is supported.
207+
// In Helm 4 (or in Helm 3.20+ if it ever gets released), a simpler
208+
// in-memory login option for TLS will be available:
209+
// https://github.com/helm/helm/pull/31076
210+
206211
tempCertDir, err = os.MkdirTemp("", "helm-repo-oci-certs")
207212
if err != nil {
208213
return "", fmt.Errorf("cannot create temporary directory: %w", err)

0 commit comments

Comments
 (0)