Skip to content

Commit 6100c55

Browse files
committed
telemetry: add FIPS-specific channel
Previously, all official builds were reporting using the same telemetry channel. This PR adds an new telemetry channel for the FIPS build target. Fixes: CC-24110 Epic: DEVINF-478 Release note: None
1 parent 97fee54 commit 6100c55

7 files changed

Lines changed: 48 additions & 17 deletions

File tree

pkg/build/info.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ var (
4545
binaryVersion = computeBinaryVersion(cockroachVersion, rev)
4646
)
4747

48+
const (
49+
DefaultTelemetryChannel = "official-binary"
50+
FIPSTelemetryChannel = "official-fips-binary"
51+
)
52+
4853
// IsRelease returns true if the binary was produced by a "release" build.
4954
func IsRelease() bool {
5055
return typ == "release"
@@ -53,7 +58,7 @@ func IsRelease() bool {
5358
// SeemsOfficial reports whether this binary is likely to have come from an
5459
// official release channel.
5560
func SeemsOfficial() bool {
56-
return channel == "official-binary"
61+
return channel == DefaultTelemetryChannel || channel == FIPSTelemetryChannel
5762
}
5863

5964
func computeBinaryVersion(versionTxt, revision string) string {

pkg/cmd/publish-artifacts/main.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ func run(providers []release.ObjectPutGetter, flags runFlags, execFn release.Exe
9696
o.VersionStr = flags.sha
9797
o.AbsolutePath = filepath.Join(flags.pkgDir, "cockroach"+release.SuffixFromPlatform(platform))
9898
o.CockroachSQLAbsolutePath = filepath.Join(flags.pkgDir, "cockroach-sql"+release.SuffixFromPlatform(platform))
99+
o.Channel = release.ChannelFromPlatform(platform)
99100

100101
log.Printf("building %s", pretty.Sprint(o))
101102
buildOneCockroach(providers, o, execFn)
@@ -111,7 +112,11 @@ func run(providers []release.ObjectPutGetter, flags runFlags, execFn release.Exe
111112

112113
func buildOneCockroach(providers []release.ObjectPutGetter, o opts, execFn release.ExecFn) {
113114
log.Printf("building cockroach %s", pretty.Sprint(o))
114-
if err := release.MakeRelease(o.Platform, release.BuildOptions{ExecFn: execFn}, o.PkgDir); err != nil {
115+
buildOpts := release.BuildOptions{
116+
ExecFn: execFn,
117+
Channel: o.Channel,
118+
}
119+
if err := release.MakeRelease(o.Platform, buildOpts, o.PkgDir); err != nil {
115120
log.Fatal(err)
116121
}
117122
for _, provider := range providers {
@@ -160,4 +165,5 @@ type opts struct {
160165
AbsolutePath string
161166
CockroachSQLAbsolutePath string
162167
PkgDir string
168+
Channel string
163169
}

pkg/cmd/publish-artifacts/main_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func TestPublish(t *testing.T) {
171171
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64 version",
172172
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64",
173173
"env=[] args=bazel run @go_sdk//:bin/go -- tool nm ./cockroach.linux-2.6.32-gnu-amd64",
174-
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
174+
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
175175
"env=[] args=bazel info bazel-bin -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
176176
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64-fips version",
177177
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64-fips",
@@ -211,22 +211,22 @@ func TestPublish(t *testing.T) {
211211
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos_c.linux-gnu-amd64.1234567890abcdef.so",
212212
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-amd64-fips.1234567890abcdef CONTENTS env=[] args=bazel build " +
213213
"//pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +
214-
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' " +
214+
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' " +
215215
"-c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
216216
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-amd64-fips.LATEST/no-cache REDIRECT /cockroach/cockroach.linux-gnu-amd64-fips.1234567890abcdef",
217217
"gs://edge-binaries-bucket/cockroach/cockroach-sql.linux-gnu-amd64-fips.1234567890abcdef CONTENTS env=[] args=bazel build " +
218218
"//pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +
219-
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' " +
219+
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' " +
220220
"-c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
221221
"gs://edge-binaries-bucket/cockroach/cockroach-sql.linux-gnu-amd64-fips.LATEST/no-cache REDIRECT /cockroach/cockroach-sql.linux-gnu-amd64-fips.1234567890abcdef",
222222
"gs://edge-binaries-bucket/cockroach/lib/libgeos.linux-gnu-amd64-fips.1234567890abcdef.so CONTENTS env=[] args=bazel build " +
223223
"//pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +
224-
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' " +
224+
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' " +
225225
"-c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
226226
"gs://edge-binaries-bucket/cockroach/lib/libgeos.linux-gnu-amd64-fips.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos.linux-gnu-amd64-fips.1234567890abcdef.so",
227227
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64-fips.1234567890abcdef.so CONTENTS env=[] args=bazel build " +
228228
"//pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +
229-
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' " +
229+
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' " +
230230
"-c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
231231
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64-fips.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos_c.linux-gnu-amd64-fips.1234567890abcdef.so",
232232
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-arm64.1234567890abcdef CONTENTS env=[] args=bazel build " +

pkg/cmd/publish-provisional-artifacts/main.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ func run(providers []release.ObjectPutGetter, flags runFlags, execFn release.Exe
157157
o.VersionStr = versionStr
158158
o.AbsolutePath = filepath.Join(flags.pkgDir, "cockroach"+release.SuffixFromPlatform(platform))
159159
o.CockroachSQLAbsolutePath = filepath.Join(flags.pkgDir, "cockroach-sql"+release.SuffixFromPlatform(platform))
160+
o.Channel = release.ChannelFromPlatform(platform)
160161
cockroachBuildOpts = append(cockroachBuildOpts, o)
161162
}
162163

@@ -234,8 +235,10 @@ func buildCockroach(flags runFlags, o opts, execFn release.ExecFn) {
234235
log.Printf("done building cockroach: %s", pretty.Sprint(o))
235236
}()
236237

237-
var buildOpts release.BuildOptions
238-
buildOpts.ExecFn = execFn
238+
buildOpts := release.BuildOptions{
239+
ExecFn: execFn,
240+
Channel: release.ChannelFromPlatform(o.Platform),
241+
}
239242
if flags.isRelease {
240243
buildOpts.Release = true
241244
buildOpts.BuildTag = o.VersionStr
@@ -253,6 +256,7 @@ type opts struct {
253256
AbsolutePath string
254257
CockroachSQLAbsolutePath string
255258
PkgDir string
259+
Channel string
256260
}
257261

258262
func markLatestRelease(svc release.ObjectPutGetter, o opts) {

pkg/cmd/publish-provisional-artifacts/main_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ func TestProvisional(t *testing.T) {
179179
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64 version",
180180
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64",
181181
"env=[] args=bazel run @go_sdk//:bin/go -- tool nm ./cockroach.linux-2.6.32-gnu-amd64",
182-
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary release' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
182+
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary release' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
183183
"env=[] args=bazel info bazel-bin -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
184184
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64-fips version",
185185
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64-fips",
@@ -241,7 +241,7 @@ func TestProvisional(t *testing.T) {
241241
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64 version",
242242
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64",
243243
"env=[] args=bazel run @go_sdk//:bin/go -- tool nm ./cockroach.linux-2.6.32-gnu-amd64",
244-
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
244+
"env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
245245
"env=[] args=bazel info bazel-bin -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
246246
"env=[MALLOC_CONF=prof:true] args=./cockroach.linux-2.6.32-gnu-amd64-fips version",
247247
"env=[] args=ldd ./cockroach.linux-2.6.32-gnu-amd64-fips",
@@ -277,13 +277,13 @@ func TestProvisional(t *testing.T) {
277277
"so CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +
278278
"'--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxbase",
279279
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos_c.linux-gnu-amd64.00SHA00.so",
280-
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-amd64-fips.00SHA00 CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
280+
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-amd64-fips.00SHA00 CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
281281
"gs://edge-binaries-bucket/cockroach/cockroach.linux-gnu-amd64-fips.LATEST/no-cache REDIRECT /cockroach/cockroach.linux-gnu-amd64-fips.00SHA00",
282-
"gs://edge-binaries-bucket/cockroach/cockroach-sql.linux-gnu-amd64-fips.00SHA00 CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
282+
"gs://edge-binaries-bucket/cockroach/cockroach-sql.linux-gnu-amd64-fips.00SHA00 CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
283283
"gs://edge-binaries-bucket/cockroach/cockroach-sql.linux-gnu-amd64-fips.LATEST/no-cache REDIRECT /cockroach/cockroach-sql.linux-gnu-amd64-fips.00SHA00",
284-
"gs://edge-binaries-bucket/cockroach/lib/libgeos.linux-gnu-amd64-fips.00SHA00.so CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
284+
"gs://edge-binaries-bucket/cockroach/lib/libgeos.linux-gnu-amd64-fips.00SHA00.so CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
285285
"gs://edge-binaries-bucket/cockroach/lib/libgeos.linux-gnu-amd64-fips.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos.linux-gnu-amd64-fips.00SHA00.so",
286-
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64-fips.00SHA00.so CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
286+
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64-fips.00SHA00.so CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos '--workspace_status_command=./build/bazelutil/stamp.sh x86_64-pc-linux-gnu official-fips-binary' -c opt --config=ci --config=force_build_cdeps --config=with_ui --config=crosslinuxfipsbase",
287287
"gs://edge-binaries-bucket/cockroach/lib/libgeos_c.linux-gnu-amd64-fips.so.LATEST/no-cache REDIRECT /cockroach/lib/libgeos_c.linux-gnu-amd64-fips.00SHA00.so",
288288
"gs://edge-binaries-bucket/cockroach/cockroach.darwin-amd64.00SHA00 " +
289289
"CONTENTS env=[] args=bazel build //pkg/cmd/cockroach //pkg/cmd/cockroach-sql //c-deps:libgeos " +

pkg/release/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ go_library(
1212
importpath = "github.com/cockroachdb/cockroach/pkg/release",
1313
visibility = ["//visibility:public"],
1414
deps = [
15+
"//pkg/build",
1516
"//pkg/build/util",
1617
"@com_github_cockroachdb_errors//:errors",
1718
"@com_google_cloud_go_storage//:storage",

pkg/release/build.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"regexp"
2323
"strings"
2424

25+
"github.com/cockroachdb/cockroach/pkg/build"
2526
"github.com/cockroachdb/cockroach/pkg/build/util"
2627
"github.com/cockroachdb/errors"
2728
)
@@ -37,6 +38,17 @@ type BuildOptions struct {
3738
// The zero value is appropriate in "real" scenarios but for
3839
// tests you can update ExecFn.MockExecFn.
3940
ExecFn ExecFn
41+
42+
// Channel represents the telemetry channel
43+
Channel string
44+
}
45+
46+
// ChannelFromPlatform retrurns the telemetry channel used for a particular platform.
47+
func ChannelFromPlatform(platform Platform) string {
48+
if platform == PlatformLinuxFIPS {
49+
return build.FIPSTelemetryChannel
50+
}
51+
return build.DefaultTelemetryChannel
4052
}
4153

4254
// SuffixFromPlatform returns the suffix that will be appended to the
@@ -143,6 +155,9 @@ func MakeWorkload(opts BuildOptions, pkgDir string) error {
143155

144156
// MakeRelease makes the release binary and associated files.
145157
func MakeRelease(platform Platform, opts BuildOptions, pkgDir string) error {
158+
if !(opts.Channel == build.DefaultTelemetryChannel || opts.Channel == build.FIPSTelemetryChannel) {
159+
return errors.Newf("cannot set the telemetry channel to %s, supported channels: %s and %s", opts.Channel, build.DefaultTelemetryChannel, build.FIPSTelemetryChannel)
160+
}
146161
buildArgs := []string{"build", "//pkg/cmd/cockroach", "//pkg/cmd/cockroach-sql"}
147162
if platform != PlatformMacOSArm {
148163
buildArgs = append(buildArgs, "//c-deps:libgeos")
@@ -152,12 +167,12 @@ func MakeRelease(platform Platform, opts BuildOptions, pkgDir string) error {
152167
if opts.BuildTag == "" {
153168
return errors.Newf("must set BuildTag if Release is set")
154169
}
155-
buildArgs = append(buildArgs, fmt.Sprintf("--workspace_status_command=./build/bazelutil/stamp.sh %s official-binary release", targetTriple))
170+
buildArgs = append(buildArgs, fmt.Sprintf("--workspace_status_command=./build/bazelutil/stamp.sh %s %s release", targetTriple, opts.Channel))
156171
} else {
157172
if opts.BuildTag != "" {
158173
return errors.Newf("cannot set BuildTag if Release is not set")
159174
}
160-
buildArgs = append(buildArgs, fmt.Sprintf("--workspace_status_command=./build/bazelutil/stamp.sh %s official-binary", targetTriple))
175+
buildArgs = append(buildArgs, fmt.Sprintf("--workspace_status_command=./build/bazelutil/stamp.sh %s %s", targetTriple, opts.Channel))
161176
}
162177
configs := []string{"-c", "opt", "--config=ci", "--config=force_build_cdeps", "--config=with_ui", fmt.Sprintf("--config=%s", CrossConfigFromPlatform(platform))}
163178
buildArgs = append(buildArgs, configs...)

0 commit comments

Comments
 (0)