Skip to content

Commit

Permalink
Merge branch 'main' into enhancement/issue-1135-contributors-file
Browse files Browse the repository at this point in the history
  • Loading branch information
jjbustamante committed Feb 20, 2023
2 parents 983b63b + c428817 commit 040a663
Show file tree
Hide file tree
Showing 10 changed files with 102 additions and 11 deletions.
6 changes: 6 additions & 0 deletions cmd/build-init/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ func main() {
logger.Println(err)
}

logger.Println("Loading registry credentials from service account secrets")

logLoadingSecrets(logger, basicDockerCredentials)
creds, err := dockercreds.ParseBasicAuthSecrets(buildSecretsDir, basicDockerCredentials)
if err != nil {
Expand All @@ -112,6 +114,10 @@ func main() {
}
}

if len(creds) == 0 {
logger.Println("No registry credentials were loaded from service account secrets")
}

logger.Println("Loading cluster credential helpers")
k8sNodeKeychain, err := k8schain.NewNoClient(context.Background())
if err != nil {
Expand Down
5 changes: 2 additions & 3 deletions config/controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ spec:
resources:
requests:
cpu: 20m
memory: 100Mi
memory: 1Gi
limits:
cpu: 100m
memory: 500Mi
memory: 1Gi
2 changes: 1 addition & 1 deletion hack/lifecycle/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import (
const (
lifecycleMetadataLabel = "io.buildpacks.lifecycle.metadata"
lifecycleLocation = "/cnb/lifecycle/"
lifecycleVersion = "0.14.3"
lifecycleVersion = "0.16.0"
)

var (
Expand Down
1 change: 1 addition & 0 deletions pkg/apis/build/v1alpha2/builder_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ type BuilderResource interface {
BuildpackMetadata() corev1alpha1.BuildpackMetadataList
RunImage() string
GetKind() string
ConditionReadyMessage() string
}
4 changes: 4 additions & 0 deletions pkg/apis/build/v1alpha2/image_builds_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,10 @@ type TestBuilderResource struct {
Name string
}

func (t TestBuilderResource) ConditionReadyMessage() string {
return ""
}

func (t TestBuilderResource) BuildBuilderSpec() corev1alpha1.BuildBuilderSpec {
return corev1alpha1.BuildBuilderSpec{
Image: t.LatestImage,
Expand Down
9 changes: 9 additions & 0 deletions pkg/duckbuilder/duck_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,12 @@ func (b *DuckBuilder) BuildpackMetadata() corev1alpha1.BuildpackMetadataList {
func (b *DuckBuilder) RunImage() string {
return b.Status.Stack.RunImage
}

func (b *DuckBuilder) ConditionReadyMessage() string {
condition := b.Status.GetCondition(corev1alpha1.ConditionReady)
if condition == nil {
return ""
}

return condition.Message
}
4 changes: 4 additions & 0 deletions pkg/reconciler/image/build_required_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -833,3 +833,7 @@ func (t TestBuilderResource) GetName() string {
func (t TestBuilderResource) GetKind() string {
return t.Kind
}

func (t TestBuilderResource) ConditionReadyMessage() string {
return ""
}
2 changes: 1 addition & 1 deletion pkg/reconciler/image/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ func (c *Reconciler) reconcileImage(ctx context.Context, image *buildapi.Image)
return nil, err
} else if k8serrors.IsNotFound(err) {
image.Status.Conditions = image.BuilderNotFound()
image.Status.ObservedGeneration = image.Generation
return image, nil
}

Expand All @@ -153,6 +152,7 @@ func (c *Reconciler) reconcileImage(ctx context.Context, image *buildapi.Image)
}

if lastBuild.IsRunning() {
image.Status.Conditions = buildRunningCondition(lastBuild, builder)
return image, nil
}

Expand Down
53 changes: 48 additions & 5 deletions pkg/reconciler/image/image_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -768,11 +768,16 @@ func testImageReconciler(t *testing.T, when spec.G, it spec.S) {
})

it("does not schedule a build if the builder is not ready", func() {

rt.Test(rtesting.TableRow{
Key: key,
Objects: []runtime.Object{
imageWithBuilder,
notReadyBuilder(builder),
builderWithCondition(builder, corev1alpha1.Condition{
Type: corev1alpha1.ConditionReady,
Status: corev1.ConditionFalse,
Message: "something went wrong",
}),
resolvedSourceResolver(imageWithBuilder),
},
WantErr: false,
Expand All @@ -793,7 +798,7 @@ func testImageReconciler(t *testing.T, when spec.G, it spec.S) {
Type: buildapi.ConditionBuilderReady,
Status: corev1.ConditionFalse,
Reason: buildapi.BuilderNotReady,
Message: "Builder builder-name is not ready",
Message: "Builder builder-name is not ready: something went wrong",
},
},
},
Expand Down Expand Up @@ -2028,7 +2033,7 @@ func testImageReconciler(t *testing.T, when spec.G, it spec.S) {
})
})

it("does not schedule a build if the previous build is running", func() {
it("does not schedule a build if the previous build is running and updates image status with build status", func() {
imageWithBuilder.Status.BuildCounter = 1
imageWithBuilder.Status.LatestBuildRef = "image-name-build-1"

Expand Down Expand Up @@ -2068,15 +2073,43 @@ func testImageReconciler(t *testing.T, when spec.G, it spec.S) {
Status: corev1alpha1.Status{
Conditions: corev1alpha1.Conditions{
{
Type: corev1alpha1.ConditionSucceeded,
Status: corev1.ConditionUnknown,
Type: corev1alpha1.ConditionSucceeded,
Status: corev1.ConditionUnknown,
Message: "Some build message",
},
},
},
},
},
},
WantErr: false,
WantStatusUpdates: []clientgotesting.UpdateActionImpl{
{
Object: &buildapi.Image{
ObjectMeta: imageWithBuilder.ObjectMeta,
Spec: imageWithBuilder.Spec,
Status: buildapi.ImageStatus{
Status: corev1alpha1.Status{
ObservedGeneration: originalGeneration,
Conditions: corev1alpha1.Conditions{
{
Type: corev1alpha1.ConditionReady,
Status: corev1.ConditionUnknown,
Reason: "BuildRunning",
Message: "Some build message",
},
{
Type: buildapi.ConditionBuilderReady,
Status: corev1.ConditionTrue,
},
},
},
LatestBuildRef: "image-name-build-1",
BuildCounter: 1,
},
},
},
},
})
})

Expand Down Expand Up @@ -2479,6 +2512,16 @@ func notReadyBuilder(builder *buildapi.Builder) runtime.Object {
return builder
}

func builderWithCondition(builder *buildapi.Builder, conditions ...corev1alpha1.Condition) runtime.Object {
builder.Status.Conditions = corev1alpha1.Conditions{}

for _, condition := range conditions {
builder.Status.Conditions = append(builder.Status.Conditions, condition)
}

return builder
}

func failedBuilds(image *buildapi.Image, sourceResolver *buildapi.SourceResolver, count int) []runtime.Object {
return builds(image, sourceResolver, count, corev1alpha1.Condition{
Type: corev1alpha1.ConditionSucceeded,
Expand Down
27 changes: 26 additions & 1 deletion pkg/reconciler/image/reconcile_build.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
corev1alpha1 "github.com/pivotal/kpack/pkg/apis/core/v1alpha1"
)

const BuildRunningReason = "BuildRunning"

func (c *Reconciler) reconcileBuild(ctx context.Context, image *buildapi.Image, latestBuild *buildapi.Build, sourceResolver *buildapi.SourceResolver, builder buildapi.BuilderResource, buildCacheName string) (buildapi.ImageStatus, error) {
currentBuildNumber, err := buildCounter(latestBuild)
if err != nil {
Expand Down Expand Up @@ -112,7 +114,7 @@ func builderCondition(builder buildapi.BuilderResource) corev1alpha1.Condition {
Type: buildapi.ConditionBuilderReady,
Status: corev1.ConditionFalse,
Reason: buildapi.BuilderNotReady,
Message: fmt.Sprintf("Builder %s is not ready", builder.GetName()),
Message: builderError(builder),
LastTransitionTime: corev1alpha1.VolatileTime{Inner: metav1.Now()},
}
}
Expand All @@ -123,6 +125,16 @@ func builderCondition(builder buildapi.BuilderResource) corev1alpha1.Condition {
}
}

func builderError(builder buildapi.BuilderResource) string {
errorMessage := fmt.Sprintf("Builder %s is not ready", builder.GetName())

if message := builder.ConditionReadyMessage(); message != "" {
errorMessage = fmt.Sprintf("%s: %s", errorMessage, message)
}

return errorMessage
}

func scheduledBuildCondition(build *buildapi.Build) corev1alpha1.Conditions {
return corev1alpha1.Conditions{
{
Expand All @@ -147,3 +159,16 @@ func buildCounter(build *buildapi.Build) (int64, error) {
buildNumber := build.Labels[buildapi.BuildNumberLabel]
return strconv.ParseInt(buildNumber, 10, 64)
}

func buildRunningCondition(build *buildapi.Build, builder buildapi.BuilderResource) corev1alpha1.Conditions {
return corev1alpha1.Conditions{
{
Type: corev1alpha1.ConditionReady,
Status: corev1.ConditionUnknown,
Reason: BuildRunningReason,
Message: emptyMessageIfNil(build.Status.GetCondition(corev1alpha1.ConditionSucceeded)),
LastTransitionTime: corev1alpha1.VolatileTime{Inner: metav1.Now()},
},
builderCondition(builder),
}
}

0 comments on commit 040a663

Please sign in to comment.