Skip to content

Commit 7af6269

Browse files
Build images and dependencies upgrade (#1087)
<!-- Include the issue number below --> ## Proposed Changes * Pin image version in create-release buildfile to ensure that docker is available * Upgraded ASM and Tekton dependencies * Changed pod selectors in ssh and logs commands so that they work with new Tekton versions
2 parents 601bada + 14b6fad commit 7af6269

File tree

7 files changed

+38
-13
lines changed

7 files changed

+38
-13
lines changed

cmd/generate-release/cloudbuild.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ substitutions:
3030
_EXTRA_TAG: '' # Defaults to _VERSION
3131
_RELEASE_BUCKET: '' # Required
3232
_RELEASE_FOLDER: '' # Defaults to _VERSION
33-
_CLOUDSDK_IMAGE: 'gcr.io/google.com/cloudsdktool/cloud-sdk:alpine'
34-
_GOLANG_IMAGE: 'golang:1.24'
35-
_BUILDPACK_WRAPPER_GOLANG_IMAGE: 'golang:1.15'
33+
_CLOUDSDK_IMAGE: 'gcr.io/google.com/cloudsdktool/cloud-sdk:528.0.0-alpine'
34+
_GOLANG_IMAGE: 'golang:1.25'
35+
_BUILDPACK_WRAPPER_GOLANG_IMAGE: 'golang:1.17'
3636
_KO_VERSION: 'github.com/google/ko@latest'
3737

3838
timeout: '1800s'

pkg/apis/kf/v1alpha1/app_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ const (
3434
NameLabel = "app.kubernetes.io/name"
3535
// ManagedByLabel holds the standard label key for Kubernetes app managers.
3636
ManagedByLabel = "app.kubernetes.io/managed-by"
37+
// Value set on Pods by legacy Tekton versions
38+
ManagedByKfValue = "kf"
39+
// Value set on Pods by current GA Tekton versions
40+
ManagedByTektonValue = "tekton-pipelines"
3741
// ComponentLabel holds the standard label key for Kubernetes app component
3842
// types.
3943
ComponentLabel = "app.kubernetes.io/component"

pkg/kf/commands/apps/ssh.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
corev1 "k8s.io/api/core/v1"
2828
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2929
"k8s.io/apimachinery/pkg/fields"
30-
"k8s.io/apimachinery/pkg/labels"
3130
"k8s.io/client-go/tools/remotecommand"
3231
)
3332

@@ -85,8 +84,7 @@ func NewSSHCommand(p *config.KfParams) *cobra.Command {
8584
podName := strings.TrimPrefix(appName, podPrefix)
8685
podSelector.FieldSelector = fields.OneTermEqualSelector("metadata.name", podName).String()
8786
} else {
88-
appLabels := v1alpha1.AppComponentLabels(appName, "app-server")
89-
podSelector.LabelSelector = labels.SelectorFromSet(appLabels).String()
87+
podSelector.LabelSelector = metav1.FormatLabelSelector(labelSelectorForAppPods(appName, "app-server"))
9088
}
9189

9290
execOpts := corev1.PodExecOptions{
@@ -153,3 +151,16 @@ func NewSSHCommand(p *config.KfParams) *cobra.Command {
153151

154152
return cmd
155153
}
154+
155+
func labelSelectorForAppPods(appName, component string) *metav1.LabelSelector {
156+
appLabels := v1alpha1.AppComponentLabels(appName, component)
157+
delete(appLabels, v1alpha1.ManagedByLabel)
158+
labelSelector := metav1.SetAsLabelSelector(appLabels)
159+
// Due to https://github.com/tektoncd/pipeline/issues/8827 Kf pods wil have
160+
// managed by label value hardcoded to "tekton-pipelines". Previous
161+
// value "kf" left for backward compatibility
162+
managedByRequirement := metav1.LabelSelectorRequirement{Key: v1alpha1.ManagedByLabel,
163+
Operator: metav1.LabelSelectorOpIn, Values: []string{v1alpha1.ManagedByKfValue, v1alpha1.ManagedByTektonValue}}
164+
labelSelector.MatchExpressions = []metav1.LabelSelectorRequirement{managedByRequirement}
165+
return labelSelector
166+
}

pkg/kf/commands/apps/ssh_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func TestNewSSHCommand(t *testing.T) {
8181
wantExec: true,
8282
wantSpace: "my-space",
8383
wantSelector: metav1.ListOptions{
84-
LabelSelector: "app.kubernetes.io/component=app-server,app.kubernetes.io/managed-by=kf,app.kubernetes.io/name=my-app",
84+
LabelSelector: "app.kubernetes.io/component=app-server,app.kubernetes.io/managed-by in (kf,tekton-pipelines),app.kubernetes.io/name=my-app",
8585
},
8686
wantExecOpts: corev1.PodExecOptions{
8787
Command: []string{"/bin/bash"},

pkg/kf/doctor/cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func diagnoseKfComponents(ctx context.Context, d *Diagnostic, vc discovery.Serve
118118
},
119119
"Tekton": {
120120
groupVersion: "tekton.dev/v1beta1",
121-
expectedResources: []string{"taskruns", "tasks", "clustertasks"},
121+
expectedResources: []string{"taskruns", "tasks"},
122122
},
123123
}
124124

pkg/kf/logs/tailer.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,25 @@ func (t *tailer) Tail(ctx context.Context, appName string, out io.Writer, opts .
9292
return nil
9393
}
9494

95-
func (t *tailer) watchForPods(ctx context.Context, namespace, appName string, writer *LineWriter, opts corev1.PodLogOptions, cfg tailConfig) error {
96-
95+
func (t *tailer) labelSelectorForPodLogs(appName string, cfg tailConfig) *metav1.LabelSelector {
9796
appLabels := v1alpha1.AppComponentLabels(appName, cfg.ComponentName)
9897

9998
selectors := v1alpha1.UnionMaps(appLabels, cfg.Labels)
99+
delete(selectors, v1alpha1.ManagedByLabel)
100+
labelSelectors := metav1.SetAsLabelSelector(selectors)
101+
// Due to https://github.com/tektoncd/pipeline/issues/8827 Kf pods wil have
102+
// managed by label value hardcoded to "tekton-pipelines". Previous
103+
// value "kf" left for backward compatibility
104+
managedByRequirement := metav1.LabelSelectorRequirement{Key: v1alpha1.ManagedByLabel,
105+
Operator: metav1.LabelSelectorOpIn, Values: []string{v1alpha1.ManagedByKfValue, v1alpha1.ManagedByTektonValue}}
106+
labelSelectors.MatchExpressions = []metav1.LabelSelectorRequirement{managedByRequirement}
107+
return labelSelectors
108+
}
100109

110+
func (t *tailer) watchForPods(ctx context.Context, namespace, appName string, writer *LineWriter, opts corev1.PodLogOptions, cfg tailConfig) error {
111+
labelSelector := t.labelSelectorForPodLogs(appName, cfg)
101112
w, err := t.client.CoreV1().Pods(namespace).Watch(ctx, metav1.ListOptions{
102-
LabelSelector: metav1.FormatLabelSelector(metav1.SetAsLabelSelector(selectors)),
113+
LabelSelector: metav1.FormatLabelSelector(labelSelector),
103114
})
104115
if err != nil {
105116
return err

pkg/kf/logs/tailer_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"testing"
2222
time "time"
2323

24-
"github.com/google/kf/v2/pkg/apis/kf/v1alpha1"
2524
"github.com/google/kf/v2/pkg/kf/logs"
2625
"github.com/google/kf/v2/pkg/kf/testutil"
2726
corev1 "k8s.io/api/core/v1"
@@ -146,7 +145,7 @@ func TestTailer_Tail(t *testing.T) {
146145
logs.WithTailComponentName("app-server"),
147146
},
148147
setup: func(t *testing.T, cs *fake.Clientset) context.Context {
149-
expectedSelector := labels.SelectorFromSet(v1alpha1.AppComponentLabels(defaultAppName, "app-server"))
148+
expectedSelector, _ := labels.Parse("app.kubernetes.io/component=app-server,app.kubernetes.io/managed-by in (kf,tekton-pipelines),app.kubernetes.io/name=some-app")
150149
cs.PrependWatchReactor("pods", labelSelectorWatchReactor(t, expectedSelector))
151150
return context.Background()
152151
},

0 commit comments

Comments
 (0)