Skip to content

Commit 0d0232b

Browse files
committed
chore(builder): use imagebuilder replace dockerbuilder
1 parent dcccfdc commit 0d0232b

9 files changed

Lines changed: 52 additions & 52 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The builder is primarily a git server that responds to `git push`es by executing
2323
- If the `BUILDER_STORAGE` environment variable is other than `minio`, attempts to create the appropriate storage driver and saves using this driver.
2424
- Otherwise, if `BUILDER_STORAGE` is `minio` and the `DRYCC_MINIO_SERVICE_HOST` and `DRYCC_MINIO_SERVICE_PORT` environment variables exist (these are standard [Kubernetes service discovery environment variables](http://kubernetes.io/docs/user-guide/services/#environment-variables)), saves to the [S3 API][s3-api-ref] compatible server at `http://$DRYCC_MINIO_SERVICE_HOST:$DRYCC_MINIO_SERVICE_HOST`
2525
3. Starts a new [Kubernetes Pod](http://kubernetes.io/docs/user-guide/pods/) to build the code, according to the following rules:
26-
- If a `Dockerfile` is present in the codebase, starts a [`dockerbuilder`](https://github.com/drycc/dockerbuilder) pod, configured to download the code to build from the URL computed in the previous step.
26+
- If a `Dockerfile` is present in the codebase, starts a [`imagebuilder`](https://github.com/drycc/imagebuilder) pod, configured to download the code to build from the URL computed in the previous step.
2727
- Otherwise, starts a [`slugbuilder`](https://github.com/drycc/slugbuilder) pod, configured to download the code to build from the URL computed in the previous step.
2828

2929
# Supported Off-Cluster Storage Backends

charts/builder/templates/builder-deployment.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ spec:
6363
configMapKeyRef:
6464
name: slugbuilder-config
6565
key: image_pull_policy
66-
- name: DOCKERBUILDER_IMAGE_PULL_POLICY
66+
- name: IMAGEBUILDER_IMAGE_PULL_POLICY
6767
valueFrom:
6868
configMapKeyRef:
69-
name: dockerbuilder-config
69+
name: imagebuilder-config
7070
key: image_pull_policy
7171
# This var needs to be passed so that the minio client (https://github.com/minio/mc) will work in Alpine linux
7272
- name: "DOCKERIMAGE"
@@ -111,8 +111,8 @@ spec:
111111
- name: slugbuilder-config
112112
mountPath: /etc/slugbuilder
113113
readOnly: true
114-
- name: dockerbuilder-config
115-
mountPath: /etc/dockerbuilder
114+
- name: imagebuilder-config
115+
mountPath: /etc/imagebuilder
116116
readOnly: true
117117
volumes:
118118
- name: builder-key-auth
@@ -127,6 +127,6 @@ spec:
127127
- name: slugbuilder-config
128128
configMap:
129129
name: slugbuilder-config
130-
- name: dockerbuilder-config
130+
- name: imagebuilder-config
131131
configMap:
132-
name: dockerbuilder-config
132+
name: imagebuilder-config

pkg/gitreceive/build.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func build(
6262
// Rewrite regular expression, compatible with slug type
6363
storagedriver.PathRegexp = regexp.MustCompile(`^([A-Za-z0-9._:-]*(/[A-Za-z0-9._:-]+)*)+$`)
6464

65-
dockerBuilderImagePullPolicy, err := k8s.PullPolicyFromString(conf.DockerBuilderImagePullPolicy)
65+
imagebuilderImagePullPolicy, err := k8s.PullPolicyFromString(conf.ImagebuilderImagePullPolicy)
6666
if err != nil {
6767
return err
6868
}
@@ -164,7 +164,7 @@ func build(
164164
}
165165

166166
if strings.Contains(stack["name"], "container") {
167-
buildPodName = dockerBuilderPodName(appName, gitSha.Short())
167+
buildPodName = imagebuilderPodName(appName, gitSha.Short())
168168
registryLocation := conf.RegistryLocation
169169
registryEnv := make(map[string]string)
170170
if registryLocation != "on-cluster" {
@@ -176,7 +176,7 @@ func build(
176176
}
177177
registryEnv["DRYCC_REGISTRY_LOCATION"] = registryLocation
178178

179-
pod = dockerBuilderPod(
179+
pod = imagebuilderPod(
180180
conf.Debug,
181181
buildPodName,
182182
conf.PodNamespace,
@@ -189,7 +189,7 @@ func build(
189189
conf.RegistryHost,
190190
conf.RegistryPort,
191191
registryEnv,
192-
dockerBuilderImagePullPolicy,
192+
imagebuilderImagePullPolicy,
193193
builderPodNodeSelector,
194194
)
195195
} else {

pkg/gitreceive/build_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ func TestBuild(t *testing.T) {
6161
}
6262

6363
if err := build(config, storageDriver, nil, fs, env, "foo", sha); err == nil {
64-
t.Error("expected running build() without setting config.DockerBuilderImagePullPolicy to fail")
64+
t.Error("expected running build() without setting config.ImagebuilderImagePullPolicy to fail")
6565
}
6666

67-
config.DockerBuilderImagePullPolicy = "Always"
67+
config.ImagebuilderImagePullPolicy = "Always"
6868
if err := build(config, storageDriver, nil, fs, env, "foo", sha); err == nil {
6969
t.Error("expected running build() without setting config.SlugBuilderImagePullPolicy to fail")
7070
}

pkg/gitreceive/build_type.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ func initStack() error {
3737
var stacksSlugbuilder []map[string]string
3838
err = json.Unmarshal(data, &stacksSlugbuilder)
3939
if err == nil {
40-
data, err = ioutil.ReadFile("/etc/dockerbuilder/images.json")
40+
data, err = ioutil.ReadFile("/etc/imagebuilder/images.json")
4141
if err == nil {
42-
var stacksDockerbuilder []map[string]string
43-
err = json.Unmarshal(data, &stacksDockerbuilder)
42+
var stacksImagebuilder []map[string]string
43+
err = json.Unmarshal(data, &stacksImagebuilder)
4444
if err == nil {
4545
// Stacks order represents priority
46-
Stacks = stacksDockerbuilder
46+
Stacks = stacksImagebuilder
4747
Stacks = append(Stacks, stacksSlugbuilder...)
4848
}
4949
return nil

pkg/gitreceive/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type Config struct {
3535
ObjectStorageWaitDurationMSec int `envconfig:"OBJECT_STORAGE_WAIT_DURATION" default:"300000"` // 5 minutes
3636
SessionIdleIntervalMsec int `envconfig:"SESSION_IDLE_INTERVAL" default:"10000"` // 10 seconds
3737
SlugBuilderImagePullPolicy string `envconfig:"SLUGBUILDER_IMAGE_PULL_POLICY" default:"Always"`
38-
DockerBuilderImagePullPolicy string `envconfig:"DOCKERBUILDER_IMAGE_PULL_POLICY" default:"Always"`
38+
ImagebuilderImagePullPolicy string `envconfig:"IMAGEBUILDER_IMAGE_PULL_POLICY" default:"Always"`
3939
StorageType string `envconfig:"BUILDER_STORAGE" default:"minio"`
4040
BuilderPodNodeSelector string `envconfig:"BUILDER_POD_NODE_SELECTOR" default:""`
4141
}

pkg/gitreceive/k8s_util.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818

1919
const (
2020
slugBuilderName = "drycc-slugbuilder"
21-
dockerBuilderName = "drycc-dockerbuilder"
21+
imagebuilderName = "drycc-imagebuilder"
2222

2323
tarPath = "TAR_PATH"
2424
putPath = "PUT_PATH"
@@ -31,14 +31,14 @@ const (
3131
envRoot = "/tmp/env"
3232
)
3333

34-
func dockerBuilderPodName(appName, shortSha string) string {
34+
func imagebuilderPodName(appName, shortSha string) string {
3535
uid := uuid.New()[:8]
3636
// NOTE(bacongobbler): pod names cannot exceed 63 characters in length, so we truncate
3737
// the application name to stay under that limit when adding all the extra metadata to the name
3838
if len(appName) > 33 {
3939
appName = appName[:33]
4040
}
41-
return fmt.Sprintf("dockerbuild-%s-%s-%s", appName, shortSha, uid)
41+
return fmt.Sprintf("imagebuild-%s-%s-%s", appName, shortSha, uid)
4242
}
4343

4444
func slugBuilderPodName(appName, shortSha string) string {
@@ -51,7 +51,7 @@ func slugBuilderPodName(appName, shortSha string) string {
5151
return fmt.Sprintf("slugbuild-%s-%s-%s", appName, shortSha, uid)
5252
}
5353

54-
func dockerBuilderPod(
54+
func imagebuilderPod(
5555
debug bool,
5656
name,
5757
namespace string,
@@ -71,27 +71,27 @@ func dockerBuilderPod(
7171

7272
pod := buildPod(debug, name, namespace, pullPolicy, nodeSelector, env)
7373

74-
// inject application envvars as a special envvar which will be handled by dockerbuilder to
74+
// inject application envvars as a special envvar which will be handled by imagebuilder to
7575
// inject them as build-time variables.
76-
// NOTE(bacongobbler): docker-py takes buildargs as a json string in the form of
76+
// NOTE(bacongobbler): image-py takes buildargs as a json string in the form of
7777
//
7878
// {"KEY": "value"}
7979
//
8080
// So we need to translate the map into json.
8181
if _, ok := env["DRYCC_DOCKER_BUILD_ARGS_ENABLED"]; ok {
82-
dockerBuildArgs, _ := json.Marshal(env)
83-
addEnvToPod(pod, "DOCKER_BUILD_ARGS", string(dockerBuildArgs))
82+
imageBuildArgs, _ := json.Marshal(env)
83+
addEnvToPod(pod, "DOCKER_BUILD_ARGS", string(imageBuildArgs))
8484
}
8585

86-
pod.Spec.Containers[0].Name = dockerBuilderName
86+
pod.Spec.Containers[0].Name = imagebuilderName
8787
pod.Spec.Containers[0].Image = image
8888

8989
addEnvToPod(pod, tarPath, tarKey)
9090
addEnvToPod(pod, sourceVersion, gitShortHash)
9191
addEnvToPod(pod, "IMG_NAME", imageName)
9292
addEnvToPod(pod, builderStorage, storageType)
93-
// inject existing DRYCC_REGISTRY_PROXY_HOST and PORT info to dockerbuilder
94-
// see https://github.com/drycc/dockerbuilder/issues/83
93+
// inject existing DRYCC_REGISTRY_PROXY_HOST and PORT info to imagebuilder
94+
// see https://github.com/drycc/imagebuilder/issues/83
9595
addEnvToPod(pod, "DRYCC_REGISTRY_PROXY_HOST", registryHost)
9696
addEnvToPod(pod, "DRYCC_REGISTRY_PROXY_PORT", registryPort)
9797

pkg/gitreceive/k8s_util_test.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ import (
1212
apierrors "k8s.io/apimachinery/pkg/api/errors"
1313
)
1414

15-
func TestDockerBuilderPodName(t *testing.T) {
16-
name := dockerBuilderPodName("demo", "12345678")
17-
if !strings.HasPrefix(name, "dockerbuild-demo-12345678-") {
18-
t.Errorf("expected pod name dockerbuild-demo-12345678-*, got %s", name)
15+
func TestImagebuilderPodName(t *testing.T) {
16+
name := imagebuilderPodName("demo", "12345678")
17+
if !strings.HasPrefix(name, "imagebuild-demo-12345678-") {
18+
t.Errorf("expected pod name imagebuild-demo-12345678-*, got %s", name)
1919
}
2020

21-
name = dockerBuilderPodName("this-name-has-more-than-24-characters-in-length", "12345678")
22-
if !strings.HasPrefix(name, "dockerbuild-this-name-has-more-than-24-charac-12345678-") {
23-
t.Errorf("expected pod name dockerbuild-this-name-has-more-than-24-charac-12345678-*, got %s", name)
21+
name = imagebuilderPodName("this-name-has-more-than-24-characters-in-length", "12345678")
22+
if !strings.HasPrefix(name, "imagebuild-this-name-has-more-than-24-charac-12345678-") {
23+
t.Errorf("expected pod name imagebuild-this-name-has-more-than-24-charac-12345678-*, got %s", name)
2424
}
2525
if len(name) > 63 {
26-
t.Errorf("expected dockerbuilder pod name length to be <= 63 characters in length, got %d", len(name))
26+
t.Errorf("expected imagebuilder pod name length to be <= 63 characters in length, got %d", len(name))
2727
}
2828
}
2929

@@ -58,16 +58,16 @@ type slugBuildCase struct {
5858
builderPodNodeSelector map[string]string
5959
}
6060

61-
type dockerBuildCase struct {
61+
type imageBuildCase struct {
6262
debug bool
6363
name string
6464
namespace string
6565
env map[string]interface{}
6666
tarKey string
6767
gitShortHash string
6868
imgName string
69-
dockerBuilderImage string
70-
dockerBuilderImagePullPolicy corev1.PullPolicy
69+
imagebuilderImage string
70+
imagebuilderImagePullPolicy corev1.PullPolicy
7171
storageType string
7272
builderPodNodeSelector map[string]string
7373
}
@@ -157,7 +157,7 @@ func TestBuildPod(t *testing.T) {
157157
}
158158
}
159159

160-
dockerBuilds := []dockerBuildCase{
160+
imageBuilds := []imageBuildCase{
161161
{true, "test", "default", emptyEnv, "tar", "deadbeef", "", "", corev1.PullAlways, "", nodeSelector1},
162162
{true, "test", "default", env, "tar", "deadbeef", "", "", corev1.PullAlways, "", nodeSelector2},
163163
{true, "test", "default", emptyEnv, "tar", "deadbeef", "img", "", corev1.PullAlways, "", emptyNodeSelector},
@@ -168,8 +168,8 @@ func TestBuildPod(t *testing.T) {
168168
{true, "test", "default", buildArgsEnv, "tar", "deadbeef", "img", "customimage", corev1.PullIfNotPresent, "", emptyNodeSelector},
169169
}
170170
regEnv := map[string]string{"REG_LOC": "on-cluster"}
171-
for _, build := range dockerBuilds {
172-
pod = dockerBuilderPod(
171+
for _, build := range imageBuilds {
172+
pod = imagebuilderPod(
173173
build.debug,
174174
build.name,
175175
build.namespace,
@@ -178,11 +178,11 @@ func TestBuildPod(t *testing.T) {
178178
build.gitShortHash,
179179
build.imgName,
180180
build.storageType,
181-
build.dockerBuilderImage,
181+
build.imagebuilderImage,
182182
"localhost",
183183
"5555",
184184
regEnv,
185-
build.dockerBuilderImagePullPolicy,
185+
build.imagebuilderImagePullPolicy,
186186
build.builderPodNodeSelector,
187187
)
188188

@@ -200,15 +200,15 @@ func TestBuildPod(t *testing.T) {
200200
if _, ok := build.env["DRYCC_DOCKER_BUILD_ARGS_ENABLED"]; ok {
201201
checkForEnv(t, pod, "DOCKER_BUILD_ARGS", `{"DRYCC_DOCKER_BUILD_ARGS_ENABLED":"1","KEY":"VALUE"}`)
202202
}
203-
if build.dockerBuilderImage != "" {
204-
if pod.Spec.Containers[0].Image != build.dockerBuilderImage {
205-
t.Errorf("expected %v but returned %v", build.dockerBuilderImage, pod.Spec.Containers[0].Image)
203+
if build.imagebuilderImage != "" {
204+
if pod.Spec.Containers[0].Image != build.imagebuilderImage {
205+
t.Errorf("expected %v but returned %v", build.imagebuilderImage, pod.Spec.Containers[0].Image)
206206
}
207207
}
208-
if build.dockerBuilderImagePullPolicy != "" {
208+
if build.imagebuilderImagePullPolicy != "" {
209209
if pod.Spec.Containers[0].ImagePullPolicy != "" {
210-
if pod.Spec.Containers[0].ImagePullPolicy != build.dockerBuilderImagePullPolicy {
211-
t.Errorf("expected %v but returned %v", build.dockerBuilderImagePullPolicy, pod.Spec.Containers[0].ImagePullPolicy)
210+
if pod.Spec.Containers[0].ImagePullPolicy != build.imagebuilderImagePullPolicy {
211+
t.Errorf("expected %v but returned %v", build.imagebuilderImagePullPolicy, pod.Spec.Containers[0].ImagePullPolicy)
212212
}
213213
}
214214
}

pkg/sshd/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type Config struct {
1515
CleanerPollSleepDurationSec int `envconfig:"CLEANER_POLL_SLEEP_DURATION_SEC" default:"5"`
1616
StorageType string `envconfig:"BUILDER_STORAGE" default:"minio"`
1717
SlugBuilderImagePullPolicy string `envconfig:"SLUGBUILDER_IMAGE_PULL_POLICY" default:"Always"`
18-
DockerBuilderImagePullPolicy string `envconfig:"DOCKERBUILDER_IMAGE_PULL_POLICY" default:"Always"`
18+
ImagebuilderImagePullPolicy string `envconfig:"IMAGEBUILDER_IMAGE_PULL_POLICY" default:"Always"`
1919
LockTimeout int `envconfig:"GIT_LOCK_TIMEOUT" default:"10"`
2020
}
2121

0 commit comments

Comments
 (0)