refactor(provisionerd): move provisionersdk.VersionCurrent -> provisionerdproto.VersionCurrent (#12225)

This commit is contained in:
Cian Johnston 2024-02-20 12:44:19 +00:00 committed by GitHub
parent c62a8b0bee
commit 643c3ee54b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 44 additions and 41 deletions

View File

@ -457,7 +457,7 @@ func New(options *Options) *API {
}, },
ProvisionerDaemons: healthcheck.ProvisionerDaemonsReportDeps{ ProvisionerDaemons: healthcheck.ProvisionerDaemonsReportDeps{
CurrentVersion: buildinfo.Version(), CurrentVersion: buildinfo.Version(),
CurrentAPIMajorVersion: provisionersdk.CurrentMajor, CurrentAPIMajorVersion: proto.CurrentMajor,
Store: options.Database, Store: options.Database,
// TimeNow and StaleInterval set to defaults, see healthcheck/provisioner.go // TimeNow and StaleInterval set to defaults, see healthcheck/provisioner.go
}, },
@ -1239,7 +1239,7 @@ func (api *API) CreateInMemoryProvisionerDaemon(dialCtx context.Context, name st
Tags: provisionersdk.MutateTags(uuid.Nil, nil), Tags: provisionersdk.MutateTags(uuid.Nil, nil),
LastSeenAt: sql.NullTime{Time: dbtime.Now(), Valid: true}, LastSeenAt: sql.NullTime{Time: dbtime.Now(), Valid: true},
Version: buildinfo.Version(), Version: buildinfo.Version(),
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
if err != nil { if err != nil {
return nil, xerrors.Errorf("failed to create in-memory provisioner daemon: %w", err) return nil, xerrors.Errorf("failed to create in-memory provisioner daemon: %w", err)

View File

@ -19,6 +19,7 @@ import (
"github.com/coder/coder/v2/coderd/database/dbpurge" "github.com/coder/coder/v2/coderd/database/dbpurge"
"github.com/coder/coder/v2/coderd/database/dbtestutil" "github.com/coder/coder/v2/coderd/database/dbtestutil"
"github.com/coder/coder/v2/coderd/database/dbtime" "github.com/coder/coder/v2/coderd/database/dbtime"
"github.com/coder/coder/v2/provisionerd/proto"
"github.com/coder/coder/v2/provisionersdk" "github.com/coder/coder/v2/provisionersdk"
"github.com/coder/coder/v2/testutil" "github.com/coder/coder/v2/testutil"
) )
@ -218,7 +219,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
CreatedAt: now.Add(-14 * 24 * time.Hour), CreatedAt: now.Add(-14 * 24 * time.Hour),
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)}, LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
Version: "1.0.0", Version: "1.0.0",
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
require.NoError(t, err) require.NoError(t, err)
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{ _, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@ -229,7 +230,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
CreatedAt: now.Add(-8 * 24 * time.Hour), CreatedAt: now.Add(-8 * 24 * time.Hour),
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)}, LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)},
Version: "1.0.0", Version: "1.0.0",
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
require.NoError(t, err) require.NoError(t, err)
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{ _, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@ -242,7 +243,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
}, },
CreatedAt: now.Add(-9 * 24 * time.Hour), CreatedAt: now.Add(-9 * 24 * time.Hour),
Version: "1.0.0", Version: "1.0.0",
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
require.NoError(t, err) require.NoError(t, err)
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{ _, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@ -256,7 +257,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
CreatedAt: now.Add(-6 * 24 * time.Hour), CreatedAt: now.Add(-6 * 24 * time.Hour),
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)}, LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
Version: "1.0.0", Version: "1.0.0",
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
require.NoError(t, err) require.NoError(t, err)

View File

@ -17,7 +17,7 @@ import (
"github.com/coder/coder/v2/coderd/provisionerdserver" "github.com/coder/coder/v2/coderd/provisionerdserver"
"github.com/coder/coder/v2/coderd/util/ptr" "github.com/coder/coder/v2/coderd/util/ptr"
"github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/provisionersdk" "github.com/coder/coder/v2/provisionerd/proto"
) )
// @typescript-generate ProvisionerDaemonsReport // @typescript-generate ProvisionerDaemonsReport
@ -144,7 +144,7 @@ func (r *ProvisionerDaemonsReport) Run(ctx context.Context, opts *ProvisionerDae
r.Severity = health.SeverityWarning r.Severity = health.SeverityWarning
} }
r.Warnings = append(r.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Some provisioner daemons report deprecated major API versions. Consider upgrading!")) r.Warnings = append(r.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Some provisioner daemons report deprecated major API versions. Consider upgrading!"))
it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", provisionersdk.CurrentMajor)) it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", proto.CurrentMajor))
} }
r.Items = append(r.Items, it) r.Items = append(r.Items, it)

View File

@ -15,7 +15,7 @@ import (
"github.com/coder/coder/v2/coderd/healthcheck" "github.com/coder/coder/v2/coderd/healthcheck"
"github.com/coder/coder/v2/coderd/healthcheck/health" "github.com/coder/coder/v2/coderd/healthcheck/health"
"github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/provisionersdk" "github.com/coder/coder/v2/provisionerd/proto"
gomock "go.uber.org/mock/gomock" gomock "go.uber.org/mock/gomock"
) )
@ -46,7 +46,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "no daemons", name: "no daemons",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityError, expectedSeverity: health.SeverityError,
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{}, expectedItems: []healthcheck.ProvisionerDaemonsReportItem{},
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons, expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
@ -54,7 +54,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "error fetching daemons", name: "error fetching daemons",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
provisionerDaemonsErr: assert.AnError, provisionerDaemonsErr: assert.AnError,
expectedSeverity: health.SeverityError, expectedSeverity: health.SeverityError,
expectedError: assert.AnError.Error(), expectedError: assert.AnError.Error(),
@ -63,7 +63,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one daemon up to date", name: "one daemon up to date",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityOK, expectedSeverity: health.SeverityOK,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now)},
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{ expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
@ -85,7 +85,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one daemon out of date", name: "one daemon out of date",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityWarning, expectedSeverity: health.SeverityWarning,
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch, expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
@ -113,7 +113,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "invalid daemon version", name: "invalid daemon version",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityError, expectedSeverity: health.SeverityError,
expectedWarningCode: health.CodeUnknown, expectedWarningCode: health.CodeUnknown,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-version", "invalid", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-version", "invalid", "1.0", now)},
@ -141,7 +141,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "invalid daemon api version", name: "invalid daemon api version",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityError, expectedSeverity: health.SeverityError,
expectedWarningCode: health.CodeUnknown, expectedWarningCode: health.CodeUnknown,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-api", "v1.2.3", "invalid", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-api", "v1.2.3", "invalid", now)},
@ -197,7 +197,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one up to date, one out of date", name: "one up to date, one out of date",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityWarning, expectedSeverity: health.SeverityWarning,
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch, expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
@ -238,7 +238,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one up to date, one newer", name: "one up to date, one newer",
currentVersion: "v1.2.3", currentVersion: "v1.2.3",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityWarning, expectedSeverity: health.SeverityWarning,
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch, expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-new", "v2.3.4", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-new", "v2.3.4", "1.0", now)},
@ -279,7 +279,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one up to date, one stale older", name: "one up to date, one stale older",
currentVersion: "v2.3.4", currentVersion: "v2.3.4",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityOK, expectedSeverity: health.SeverityOK,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-stale", "v1.2.3", "0.9", now.Add(-5*time.Minute), now), fakeProvisionerDaemon(t, "pd-ok", "v2.3.4", "1.0", now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-stale", "v1.2.3", "0.9", now.Add(-5*time.Minute), now), fakeProvisionerDaemon(t, "pd-ok", "v2.3.4", "1.0", now)},
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{ expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
@ -301,7 +301,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
{ {
name: "one stale", name: "one stale",
currentVersion: "v2.3.4", currentVersion: "v2.3.4",
currentAPIMajorVersion: provisionersdk.CurrentMajor, currentAPIMajorVersion: proto.CurrentMajor,
expectedSeverity: health.SeverityError, expectedSeverity: health.SeverityError,
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons, expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-ok", "v1.2.3", "0.9", now.Add(-5*time.Minute), now)}, provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-ok", "v1.2.3", "0.9", now.Add(-5*time.Minute), now)},
@ -317,7 +317,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
deps.CurrentVersion = tt.currentVersion deps.CurrentVersion = tt.currentVersion
deps.CurrentAPIMajorVersion = tt.currentAPIMajorVersion deps.CurrentAPIMajorVersion = tt.currentAPIMajorVersion
if tt.currentAPIMajorVersion == 0 { if tt.currentAPIMajorVersion == 0 {
deps.CurrentAPIMajorVersion = provisionersdk.CurrentMajor deps.CurrentAPIMajorVersion = proto.CurrentMajor
} }
deps.TimeNow = func() time.Time { deps.TimeNow = func() time.Time {
return now return now

View File

@ -1776,7 +1776,7 @@ func setup(t *testing.T, ignoreLogErrors bool, ov *overrides) (proto.DRPCProvisi
Tags: database.StringMap{}, Tags: database.StringMap{},
LastSeenAt: sql.NullTime{}, LastSeenAt: sql.NullTime{},
Version: buildinfo.Version(), Version: buildinfo.Version(),
APIVersion: provisionersdk.VersionCurrent.String(), APIVersion: proto.VersionCurrent.String(),
}) })
require.NoError(t, err) require.NoError(t, err)

View File

@ -18,7 +18,6 @@ import (
"github.com/coder/coder/v2/codersdk/drpc" "github.com/coder/coder/v2/codersdk/drpc"
"github.com/coder/coder/v2/provisionerd/proto" "github.com/coder/coder/v2/provisionerd/proto"
"github.com/coder/coder/v2/provisionerd/runner" "github.com/coder/coder/v2/provisionerd/runner"
"github.com/coder/coder/v2/provisionersdk"
) )
type LogSource string type LogSource string
@ -202,7 +201,7 @@ func (c *Client) ServeProvisionerDaemon(ctx context.Context, req ServeProvisione
query := serverURL.Query() query := serverURL.Query()
query.Add("id", req.ID.String()) query.Add("id", req.ID.String())
query.Add("name", req.Name) query.Add("name", req.Name)
query.Add("version", provisionersdk.VersionCurrent.String()) query.Add("version", proto.VersionCurrent.String())
for _, provisioner := range req.Provisioners { for _, provisioner := range req.Provisioners {
query.Add("provisioner", string(provisioner)) query.Add("provisioner", string(provisioner))

View File

@ -14,6 +14,7 @@ import (
"github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest" "github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
"github.com/coder/coder/v2/enterprise/coderd/license" "github.com/coder/coder/v2/enterprise/coderd/license"
"github.com/coder/coder/v2/provisionerd/proto"
"github.com/coder/coder/v2/provisionersdk" "github.com/coder/coder/v2/provisionersdk"
"github.com/coder/coder/v2/pty/ptytest" "github.com/coder/coder/v2/pty/ptytest"
"github.com/coder/coder/v2/testutil" "github.com/coder/coder/v2/testutil"
@ -51,7 +52,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
require.Equal(t, "matt-daemon", daemons[0].Name) require.Equal(t, "matt-daemon", daemons[0].Name)
require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope]) require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
require.Equal(t, buildinfo.Version(), daemons[0].Version) require.Equal(t, buildinfo.Version(), daemons[0].Version)
require.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion) require.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
} }
func TestProvisionerDaemon_SessionToken(t *testing.T) { func TestProvisionerDaemon_SessionToken(t *testing.T) {
@ -88,7 +89,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
assert.Equal(t, provisionersdk.ScopeUser, daemons[0].Tags[provisionersdk.TagScope]) assert.Equal(t, provisionersdk.ScopeUser, daemons[0].Tags[provisionersdk.TagScope])
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner]) assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
assert.Equal(t, buildinfo.Version(), daemons[0].Version) assert.Equal(t, buildinfo.Version(), daemons[0].Version)
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion) assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
}) })
t.Run("ScopeAnotherUser", func(t *testing.T) { t.Run("ScopeAnotherUser", func(t *testing.T) {
@ -124,7 +125,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
// This should get clobbered to the user who started the daemon. // This should get clobbered to the user who started the daemon.
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner]) assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
assert.Equal(t, buildinfo.Version(), daemons[0].Version) assert.Equal(t, buildinfo.Version(), daemons[0].Version)
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion) assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
}) })
t.Run("ScopeOrg", func(t *testing.T) { t.Run("ScopeOrg", func(t *testing.T) {
@ -158,6 +159,6 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
assert.Equal(t, "org-daemon", daemons[0].Name) assert.Equal(t, "org-daemon", daemons[0].Name)
assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope]) assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
assert.Equal(t, buildinfo.Version(), daemons[0].Version) assert.Equal(t, buildinfo.Version(), daemons[0].Version)
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion) assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
}) })
} }

View File

@ -239,7 +239,7 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
apiVersion = qv apiVersion = qv
} }
if err := provisionersdk.VersionCurrent.Validate(apiVersion); err != nil { if err := proto.VersionCurrent.Validate(apiVersion); err != nil {
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
Message: "Incompatible or unparsable version", Message: "Incompatible or unparsable version",
Validations: []codersdk.ValidationError{ Validations: []codersdk.ValidationError{

View File

@ -62,7 +62,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
if assert.Len(t, daemons, 1) { if assert.Len(t, daemons, 1) {
assert.Equal(t, daemonName, daemons[0].Name) assert.Equal(t, daemonName, daemons[0].Name)
assert.Equal(t, buildinfo.Version(), daemons[0].Version) assert.Equal(t, buildinfo.Version(), daemons[0].Version)
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion) assert.Equal(t, provisionerdproto.VersionCurrent.String(), daemons[0].APIVersion)
} }
}) })
@ -149,7 +149,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
q.Add("provisioner", "echo") q.Add("provisioner", "echo")
// Set a different (newer) version than the current. // Set a different (newer) version than the current.
v := apiversion.New(provisionersdk.CurrentMajor+1, provisionersdk.CurrentMinor+1) v := apiversion.New(provisionerdproto.CurrentMajor+1, provisionerdproto.CurrentMinor+1)
q.Add("version", v.String()) q.Add("version", v.String())
srvURL.RawQuery = q.Encode() srvURL.RawQuery = q.Encode()

13
provisionerd/proto/version.go generated Normal file
View File

@ -0,0 +1,13 @@
package proto
import "github.com/coder/coder/v2/apiversion"
const (
CurrentMajor = 1
CurrentMinor = 0
)
// VersionCurrent is the current provisionerd API version.
// Breaking changes to the provisionerd API **MUST** increment
// CurrentMajor above.
var VersionCurrent = apiversion.New(CurrentMajor, CurrentMinor)

View File

@ -16,21 +16,10 @@ import (
"cdr.dev/slog" "cdr.dev/slog"
"github.com/coder/coder/v2/apiversion"
"github.com/coder/coder/v2/coderd/tracing" "github.com/coder/coder/v2/coderd/tracing"
"github.com/coder/coder/v2/provisionersdk/proto" "github.com/coder/coder/v2/provisionersdk/proto"
) )
const (
CurrentMajor = 1
CurrentMinor = 0
)
// VersionCurrent is the current provisionerd API version.
// Breaking changes to the provisionerd API **MUST** increment
// CurrentMajor above.
var VersionCurrent = apiversion.New(CurrentMajor, CurrentMinor)
// ServeOptions are configurations to serve a provisioner. // ServeOptions are configurations to serve a provisioner.
type ServeOptions struct { type ServeOptions struct {
// Listener serves multiple connections. Cannot be combined with Conn. // Listener serves multiple connections. Cannot be combined with Conn.