Skip to content

Commit afbc69e

Browse files
committed
chore(builder): minio/minio#14331
1 parent 50c620a commit afbc69e

8 files changed

Lines changed: 85 additions & 28 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Builder currently supports the following off-cluster storage backends:
3535
* AWS/S3
3636
* Azure
3737
* Swift
38+
* Alibaba OSS
3839

3940
# Development
4041

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- define "builder.envs" -}}
2+
env:
3+
# NOTE(bacongobbler): use drycc/registry_proxy to work around Docker --insecure-registry requirements
4+
- name: "DRYCC_REGISTRY_PROXY_HOST"
5+
value: "127.0.0.1"
6+
- name: "DRYCC_REGISTRY_PROXY_PORT"
7+
value: "{{ .Values.global.registryProxyPort }}"
8+
- name: "HEALTH_SERVER_PORT"
9+
value: "8092"
10+
- name: "EXTERNAL_PORT"
11+
value: "2223"
12+
- name: BUILDER_STORAGE
13+
value: "{{ .Values.global.storage }}"
14+
- name: "DRYCC_REGISTRY_LOCATION"
15+
value: "{{ .Values.global.registryLocation }}"
16+
- name: "TTL_SECONDS_AFTER_FINISHED"
17+
value: "{{ .Values.global.ttlSecondsAfterFinished }}"
18+
# Set GIT_LOCK_TIMEOUT to number of minutes you want to wait to git push again to the same repository
19+
- name: "GIT_LOCK_TIMEOUT"
20+
value: "30"
21+
- name: IMAGEBUILDER_IMAGE_PULL_POLICY
22+
valueFrom:
23+
configMapKeyRef:
24+
name: imagebuilder-config
25+
key: imagePullPolicy
26+
- name: "DRYCC_DEBUG"
27+
value: "false"
28+
- name: "POD_NAMESPACE"
29+
valueFrom:
30+
fieldRef:
31+
fieldPath: metadata.namespace
32+
- name: DRYCC_BUILDER_KEY
33+
valueFrom:
34+
secretKeyRef:
35+
name: builder-key-auth
36+
key: builder-key
37+
{{- if (.Values.builder_pod_node_selector) }}
38+
- name: BUILDER_POD_NODE_SELECTOR
39+
value: {{.Values.builder_pod_node_selector}}
40+
{{- if eq .Values.global.minioLocation "on-cluster" }}
41+
- name: "DRYCC_MINIO_ENDPOINT"
42+
value: ${DRYCC_MINIO_SERVICE_HOST}:${DRYCC_MINIO_SERVICE_PORT}
43+
{{- else }}
44+
- name: "DRYCC_MINIO_ENDPOINT"
45+
value: "{{ .Values.minio.endpoint }}"
46+
{{- end }}
47+
{{- end }}
48+
49+
{{/* Generate builder deployment limits */}}
50+
{{- define "builder.limits" -}}
51+
{{- if or (.Values.limitsCpu) (.Values.limitsMemory) }}
52+
resources:
53+
limits:
54+
{{- if (.Values.limitsCpu) }}
55+
cpu: {{.Values.limitsCpu}}
56+
{{- end }}
57+
{{- if (.Values.limitsMemory) }}
58+
memory: {{.Values.limitsMemory}}
59+
{{- end }}
60+
{{- end }}
61+
{{- end }}

charts/builder/templates/builder-deployment.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ spec:
6363
- name: builder-ssh-private-keys
6464
mountPath: /var/run/secrets/drycc/builder/ssh
6565
readOnly: true
66-
- name: objectstore-creds
67-
mountPath: /var/run/secrets/drycc/objectstore/creds
66+
- name: minio-creds
67+
mountPath: /var/run/secrets/drycc/minio/creds
6868
readOnly: true
6969
- name: imagebuilder-config
7070
mountPath: /etc/imagebuilder
@@ -76,9 +76,9 @@ spec:
7676
- name: builder-ssh-private-keys
7777
secret:
7878
secretName: builder-ssh-private-keys
79-
- name: objectstore-creds
79+
- name: minio-creds
8080
secret:
81-
secretName: objectstorage-keyfile
81+
secretName: minio-creds
8282
- name: imagebuilder-config
8383
configMap:
8484
name: imagebuilder-config

pkg/cleaner/cleaner.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func dirHasGitSuffix(dir string) bool {
8888
return strings.HasSuffix(dir, dotGitSuffix)
8989
}
9090

91-
func deleteFromObjectStore(app string, storageDriver storagedriver.StorageDriver) error {
91+
func deleteFromMinio(app string, storageDriver storagedriver.StorageDriver) error {
9292

9393
// delete all files matching app
9494
objs, err := storageDriver.List(context.Background(), "home")
@@ -138,7 +138,7 @@ func Run(gitHome string, nsLister k8s.NamespaceLister, fs sys.FS, pollSleepDurat
138138
if err := fs.RemoveAll(dirToDelete); err != nil {
139139
log.Err("Cleaner error removing local files for deleted app %s (%s)", dirToDelete, err)
140140
}
141-
if err := deleteFromObjectStore(appToDelete, storageDriver); err != nil {
141+
if err := deleteFromMinio(appToDelete, storageDriver); err != nil {
142142
log.Err("Cleaner error removing object store files for deleted app %s (%s)", appToDelete, err)
143143
}
144144
}

pkg/conf/config.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ import (
99
)
1010

1111
const (
12-
storageCredLocation = "/var/run/secrets/drycc/objectstore/creds/"
13-
minioHostEnvVar = "DRYCC_MINIO_ENDPOINT"
14-
gcsKey = "key.json"
12+
storageCredLocation = "/var/run/secrets/drycc/minio/creds/"
13+
minioEndpointVar = "DRYCC_MINIO_ENDPOINT"
1514
)
1615

1716
// BuilderKeyLocation holds the path of the builder key secret.
@@ -33,6 +32,7 @@ func GetBuilderKey() (string, error) {
3332
// GetStorageParams returns the credentials required for connecting to object storage
3433
func GetStorageParams(env sys.Env) (Parameters, error) {
3534
params := make(map[string]interface{})
35+
params["builder-bucket"] = "builder" // default
3636
files, err := ioutil.ReadDir(storageCredLocation)
3737
if err != nil {
3838
return nil, err
@@ -46,18 +46,13 @@ func GetStorageParams(env sys.Env) (Parameters, error) {
4646
if err != nil {
4747
return nil, err
4848
}
49-
//GCS expect the to have the location of the service account credential json file
50-
if file.Name() == gcsKey {
51-
params["keyfile"] = storageCredLocation + file.Name()
52-
} else {
53-
params[file.Name()] = string(data)
54-
}
49+
50+
params[file.Name()] = string(data)
5551
}
5652
params["bucket"] = params["builder-bucket"]
57-
mHost := env.Get(minioHostEnvVar)
58-
mPort := env.Get(minioPortEnvVar)
53+
mEndpointVar := env.Get(minioEndpointVar)
5954
params["region"] = "us-east-1"
60-
params["regionendpoint"] = fmt.Sprintf("http://%s:%s", mHost, mPort)
55+
params["regionendpoint"] = fmt.Sprintf("http://%s", mEndpointVar)
6156
params["secure"] = false
6257
return params, nil
6358
}

pkg/conf/config_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func TestGetStorageParams(t *testing.T) {
7878
assert.Equal(t, params["regionendpoint"], "http://localhost:8088", "region endpoint")
7979
assert.Equal(t, params["secure"], false, "secure")
8080
assert.Equal(t, params["region"], "us-east-1", "region")
81-
assert.Equal(t, params["bucket"], nil, "bucket")
81+
assert.Equal(t, params["bucket"], "builder", "bucket")
8282
}
8383

8484
func TestGetControllerClient(t *testing.T) {

pkg/gitreceive/k8s_util.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ const (
2323
tarPath = "TAR_PATH"
2424
debugKey = "DRYCC_DEBUG"
2525
sourceVersion = "SOURCE_VERSION"
26-
objectStore = "objectstorage-keyfile"
26+
minioCreds = "minio-creds"
2727
builderStorage = "BUILDER_STORAGE"
28-
objectStorePath = "/var/run/secrets/drycc/objectstore/creds"
28+
minioCredsPath = "/var/run/secrets/drycc/minio/creds"
2929
imagebuilderConfig = "imagebuilder-config"
3030
imagebuilderConfigPath = "/etc/imagebuilder"
3131
)
@@ -144,18 +144,18 @@ func buildJob(
144144
job.Spec.Template.Spec.Containers[0].ImagePullPolicy = pullPolicy
145145
job.Spec.Template.Spec.Containers[0].SecurityContext = &securityContext
146146
job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, corev1.Volume{
147-
Name: objectStore,
147+
Name: minioCreds,
148148
VolumeSource: corev1.VolumeSource{
149149
Secret: &corev1.SecretVolumeSource{
150-
SecretName: objectStore,
150+
SecretName: minioCreds,
151151
},
152152
},
153153
})
154154

155155
job.Spec.Template.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{
156156
{
157-
Name: objectStore,
158-
MountPath: objectStorePath,
157+
Name: minioCreds,
158+
MountPath: minioCredsPath,
159159
ReadOnly: true,
160160
},
161161
}

rootfs/bin/normalize_storage

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env bash
2-
BUCKET_FILE="/var/run/secrets/drycc/objectstore/creds/builder-bucket"
3-
ACCESS_KEY_FILE="/var/run/secrets/drycc/objectstore/creds/accesskey"
4-
SECRET_KEY_FILE="/var/run/secrets/drycc/objectstore/creds/secretkey"
2+
BUCKET_FILE="/var/run/secrets/drycc/minio/creds/builderBucket"
3+
ACCESS_KEY_FILE="/var/run/secrets/drycc/minio/creds/accesskey"
4+
SECRET_KEY_FILE="/var/run/secrets/drycc/minio/creds/secretkey"
55

66
if [ -f $BUCKET_FILE ]; then
77
MINIO_BUCKET=$(cat "$BUCKET_FILE")

0 commit comments

Comments
 (0)