mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-12 02:15:01 +00:00
Update version to 13.0.0-dev (#20372)
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
# Stable releases: "1.0.0"
|
||||
# Pre-releases: "1.0.0-alpha.1", "1.0.0-beta.2", "1.0.0-rc.3"
|
||||
# Master/dev branch: "1.0.0-dev"
|
||||
VERSION=12.0.0-dev
|
||||
VERSION=13.0.0-dev
|
||||
|
||||
DOCKER_IMAGE ?= teleport
|
||||
|
||||
@@ -940,23 +940,6 @@ version: $(VERSRC)
|
||||
# This rule triggers re-generation of version files specified if Makefile changes.
|
||||
$(VERSRC): Makefile
|
||||
VERSION=$(VERSION) $(MAKE) -f version.mk setver
|
||||
# Update api module path, but don't fail on error.
|
||||
$(MAKE) update-api-import-path || true
|
||||
|
||||
# This rule updates the api module path to be in sync with the current api release version.
|
||||
# e.g. github.com/gravitational/teleport/api/vX -> github.com/gravitational/teleport/api/vY
|
||||
#
|
||||
# It will immediately fail if:
|
||||
# 1. A suffix is present in the version - e.g. "v7.0.0-alpha"
|
||||
# 2. The major version suffix in the api module path hasn't changed. e.g:
|
||||
# - v7.0.0 -> v7.1.0 - both use version suffix "/v7" - github.com/gravitational/teleport/api/v7
|
||||
# - v0.0.0 -> v1.0.0 - both have no version suffix - github.com/gravitational/teleport/api
|
||||
#
|
||||
# Note: any build flags needed to compile go files (such as build tags) should be provided below.
|
||||
.PHONY: update-api-import-path
|
||||
update-api-import-path:
|
||||
go run build.assets/gomod/update-api-import-path/main.go -tags "bpf fips pam desktop_access_rdp linux"
|
||||
$(MAKE) grpc
|
||||
|
||||
# make tag - prints a tag to use with git for the current version
|
||||
# To put a new release on Github:
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
// Code generated by "make version". DO NOT EDIT.
|
||||
package api
|
||||
|
||||
const Version = "12.0.0-dev"
|
||||
const Version = "13.0.0-dev"
|
||||
|
||||
// Gitref is set to the output of "git describe" during the build process.
|
||||
var Gitref string
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
// Copyright 2022 Gravitational, Inc
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package gomod
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/gravitational/trace"
|
||||
"golang.org/x/mod/modfile"
|
||||
)
|
||||
|
||||
// GetImportPath gets the module's import path from its go.mod file
|
||||
func GetImportPath(dir string) (string, error) {
|
||||
modPath := filepath.Join(dir, "go.mod")
|
||||
bts, err := os.ReadFile(modPath)
|
||||
if err != nil {
|
||||
return "", trace.Wrap(err)
|
||||
}
|
||||
modFile, err := modfile.Parse(modPath, bts, nil /* fix */)
|
||||
if err != nil {
|
||||
return "", trace.Wrap(err)
|
||||
}
|
||||
if modFile.Module == nil || modFile.Module.Mod.Path == "" {
|
||||
return "", trace.NotFound("could not find mod path for %v", dir)
|
||||
}
|
||||
return modFile.Module.Mod.Path, nil
|
||||
}
|
||||
@@ -1,328 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 Gravitational, Inc.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Command update-api-import-path updates the api import path to
|
||||
// incorporate the version set in /api/version.go. If the major
|
||||
// version hasn't changed or the version is a prelease, no change
|
||||
// is made. Otherwise, all go.mod files, .go files, and .proto files
|
||||
// are updated to use the new api import path as needed.
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/coreos/go-semver/semver"
|
||||
"github.com/gravitational/trace"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/mod/modfile"
|
||||
"golang.org/x/tools/go/ast/astutil"
|
||||
"golang.org/x/tools/go/packages"
|
||||
|
||||
"github.com/gravitational/teleport/api"
|
||||
"github.com/gravitational/teleport/build.assets/gomod"
|
||||
"github.com/gravitational/teleport/lib/utils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
utils.InitLogger(utils.LoggingForCLI, log.DebugLevel)
|
||||
}
|
||||
|
||||
// This script should only be run through the make target `make update-api-module-path`
|
||||
// since it relies on relative paths to the /api and root directories.
|
||||
func main() {
|
||||
var buildFlags []string
|
||||
if len(os.Args) > 1 {
|
||||
log.Infof("Using buildFlags: %v", buildFlags)
|
||||
buildFlags = os.Args[1:]
|
||||
}
|
||||
|
||||
newVersion, err := semver.NewVersion(api.Version)
|
||||
if err != nil {
|
||||
exitWithError(trace.Wrap(err, "invalid semver version"), nil)
|
||||
}
|
||||
|
||||
// check the version's prelease section, and exit if it is a
|
||||
// non beta/alpha pre release.
|
||||
switch newVersion.PreRelease.Slice()[0] {
|
||||
case "", "alpha", "beta":
|
||||
default:
|
||||
exitWithMessage("the current API version (%v) is not a release or alpha/beta pre-release, continue without updating", newVersion)
|
||||
}
|
||||
|
||||
// get the current api module import path
|
||||
currentModPath, err := gomod.GetImportPath("./api")
|
||||
if err != nil {
|
||||
exitWithError(trace.Wrap(err, "failed to get current mod path"), nil)
|
||||
}
|
||||
|
||||
// get the new api module import path, and exit if the path hasn't changed
|
||||
newPath := getNewModImportPath(currentModPath, newVersion)
|
||||
if currentModPath == newPath {
|
||||
exitWithMessage("the api module path has not changed, continue without updating")
|
||||
}
|
||||
|
||||
rollBackFuncs := []rollBackFunc{}
|
||||
addRollBack := func(r rollBackFunc) { rollBackFuncs = append(rollBackFuncs, r) }
|
||||
|
||||
// update go files within the teleport/api and teleport modules to use the new import path
|
||||
log.Info("Updating teleport/api module...")
|
||||
if err := updateGoModule("./api", currentModPath, newPath, newVersion.String(), buildFlags, addRollBack); err != nil {
|
||||
exitWithError(trace.Wrap(err, "failed to update teleport/api module"), rollBackFuncs)
|
||||
}
|
||||
log.Info("Updating teleport module...")
|
||||
if err := updateGoModule("./", currentModPath, newPath, newVersion.String(), buildFlags, addRollBack); err != nil {
|
||||
exitWithError(trace.Wrap(err, "failed to update teleport module"), rollBackFuncs)
|
||||
}
|
||||
|
||||
// Update .proto files in teleport/api to use the new import path
|
||||
log.Info("Updating .proto files...")
|
||||
if err := updateProtoFiles("./api", currentModPath, newPath, addRollBack); err != nil {
|
||||
exitWithError(trace.Wrap(err, "failed to update teleport mod file"), rollBackFuncs)
|
||||
}
|
||||
}
|
||||
|
||||
// updateGoModule updates instances of the currentPath with the newPath in the given go module.
|
||||
func updateGoModule(modulePath, currentPath, newPath, newVersion string, buildFlags []string, addRollBack addRollBackFunc) error {
|
||||
log.Info(" Updating go files...")
|
||||
if err := updateGoPkgs(modulePath, currentPath, newPath, buildFlags, addRollBack); err != nil {
|
||||
return trace.Wrap(err, "failed to update mod file for module")
|
||||
}
|
||||
|
||||
log.Info(" Updating go.mod...")
|
||||
if err := updateGoModFile(modulePath, currentPath, newPath, newVersion, addRollBack); err != nil {
|
||||
return trace.Wrap(err, "failed to update mod file for module")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateGoPkgs updates instances of the currentPath with the newPath in go pkgs in the given module.
|
||||
func updateGoPkgs(rootDir, currentPath, newPath string, buildFlags []string, addRollBack addRollBackFunc) error {
|
||||
mode := packages.NeedTypes | packages.NeedSyntax
|
||||
cfg := &packages.Config{Mode: mode, Tests: true, Dir: rootDir, BuildFlags: buildFlags}
|
||||
pkgs, err := packages.Load(cfg, "./...")
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
var errs []error
|
||||
packages.Visit(pkgs, func(pkg *packages.Package) bool {
|
||||
if err = updateGoImports(pkg, currentPath, newPath, addRollBack); err != nil {
|
||||
errs = append(errs, err)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}, nil)
|
||||
return trace.NewAggregate(errs...)
|
||||
}
|
||||
|
||||
// updateGoImports updates instances of the currentPath with the newPath in the given package.
|
||||
func updateGoImports(p *packages.Package, currentPath, newPath string, addRollBack addRollBackFunc) error {
|
||||
for _, syn := range p.Syntax {
|
||||
var rewritten bool
|
||||
for _, i := range syn.Imports {
|
||||
imp := strings.Replace(i.Path.Value, "\"", "", 2)
|
||||
// Replace all instances of the current path with the new path, but prevent this from happening multiple times in edge cases
|
||||
if strings.HasPrefix(imp, currentPath) && (!strings.HasPrefix(newPath, currentPath) || !strings.HasPrefix(imp, newPath)) {
|
||||
newImp := strings.Replace(imp, currentPath, newPath, 1)
|
||||
if astutil.RewriteImport(p.Fset, syn, imp, newImp) {
|
||||
rewritten = true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if !rewritten {
|
||||
continue
|
||||
}
|
||||
|
||||
goFilePath := p.Fset.File(syn.Pos()).Name()
|
||||
data, err := os.ReadFile(goFilePath)
|
||||
if err != nil {
|
||||
return trace.Wrap(err, "could not read go file %v", goFilePath)
|
||||
}
|
||||
|
||||
// Format updated go file and write to disk
|
||||
updatedData := bytes.NewBuffer([]byte{})
|
||||
if err = format.Node(updatedData, p.Fset, syn); err != nil {
|
||||
return trace.Wrap(err, "could not rewrite go file %v", goFilePath)
|
||||
}
|
||||
info, err := os.Stat(goFilePath)
|
||||
if err != nil {
|
||||
return trace.Wrap(err, "failed to get go file info")
|
||||
}
|
||||
if err = os.WriteFile(goFilePath, updatedData.Bytes(), info.Mode().Perm()); err != nil {
|
||||
return trace.Wrap(err, "failed to rewrite go file")
|
||||
}
|
||||
|
||||
addRollBack(func() error {
|
||||
err := os.WriteFile(goFilePath, data, info.Mode().Perm())
|
||||
return trace.Wrap(err, "failed to rollback changes to go file %v", goFilePath)
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateGoModFile updates instances of oldPath to newPath in a go.mod file.
|
||||
// The modFile is updated in place by updating the syntax fields directly.
|
||||
func updateGoModFile(dir, oldPath, newPath, newVersion string, addRollBackFunc addRollBackFunc) error {
|
||||
modFilePath := filepath.Join(dir, "go.mod")
|
||||
data, err := os.ReadFile(modFilePath)
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
modFile, err := modfile.Parse(modFilePath, data, nil)
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
// Update mod name if needed
|
||||
if modFile.Module.Syntax.Token[1] == oldPath {
|
||||
modFile.Module.Syntax.Token[1] = newPath
|
||||
}
|
||||
// Update require statements in place if needed
|
||||
for _, r := range modFile.Require {
|
||||
if r.Mod.Path == oldPath {
|
||||
// Update path and version of require statement.
|
||||
if r.Syntax.InBlock {
|
||||
r.Syntax.Token[0], r.Syntax.Token[1] = newPath, "v"+newVersion
|
||||
} else {
|
||||
// First token in the line is "require", skip to second and third indices
|
||||
r.Syntax.Token[1], r.Syntax.Token[2] = newPath, "v"+newVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
// Update replace statements in place if needed
|
||||
for _, r := range modFile.Replace {
|
||||
if r.Old.Path == oldPath {
|
||||
// Update path of replace statement.
|
||||
if r.Syntax.InBlock {
|
||||
r.Syntax.Token[0] = newPath
|
||||
if r.Old.Version != "" {
|
||||
r.Syntax.Token[1] = "v" + newVersion
|
||||
}
|
||||
} else {
|
||||
// First token in the line is "replace", skip to second index
|
||||
r.Syntax.Token[1] = newPath
|
||||
if r.Old.Version != "" {
|
||||
r.Syntax.Token[2] = "v" + newVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Format updated go mod file and write to disk
|
||||
updatedData, err := modFile.Format()
|
||||
if err != nil {
|
||||
return trace.Wrap(err, "failed to format go.mod file with new import path")
|
||||
}
|
||||
info, err := os.Stat(modFilePath)
|
||||
if err != nil {
|
||||
return trace.Wrap(err, "failed to get go.mod file info")
|
||||
}
|
||||
if err = os.WriteFile(modFilePath, updatedData, info.Mode().Perm()); err != nil {
|
||||
return trace.Wrap(err, "failed to rewrite go.mod file")
|
||||
}
|
||||
|
||||
addRollBackFunc(func() error {
|
||||
err := os.WriteFile(modFilePath, data, info.Mode().Perm())
|
||||
return trace.Wrap(err, "failed to rollback changes to go mod file %v", modFilePath)
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateProtoFiles updates gogoproto cast types and custom types in .proto files
|
||||
// within the given directory to use the new api import path.
|
||||
func updateProtoFiles(rootDir, currentPath, newPath string, addRollBackFunc addRollBackFunc) error {
|
||||
return filepath.WalkDir(rootDir, func(path string, d fs.DirEntry, err error) error {
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
if strings.HasSuffix(d.Name(), ".proto") {
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
// Replace all instances of the api import path in gogoproto casttypes with the new import path
|
||||
currentCastTypes := fmt.Sprintf(`(gogoproto.casttype) = "%v`, currentPath)
|
||||
newCastTypes := fmt.Sprintf(`(gogoproto.casttype) = "%v`, newPath)
|
||||
updatedData := bytes.ReplaceAll(data, []byte(currentCastTypes), []byte(newCastTypes))
|
||||
|
||||
// Replace all instances of the api import path in gogoproto customtypes with the new import path
|
||||
currentCustomTypes := fmt.Sprintf(`(gogoproto.customtype) = "%v`, currentPath)
|
||||
newCustomTypes := fmt.Sprintf(`(gogoproto.customtype) = "%v`, newPath)
|
||||
updatedData = bytes.ReplaceAll(updatedData, []byte(currentCustomTypes), []byte(newCustomTypes))
|
||||
|
||||
fileMode := d.Type().Perm()
|
||||
if err := os.WriteFile(path, updatedData, fileMode); err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
addRollBackFunc(func() error {
|
||||
err := os.WriteFile(path, data, fileMode)
|
||||
return trace.Wrap(err, "failed to rollback changes to proto file %v", path)
|
||||
})
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
// getNewModImportPath gets the new import path given a go module import path and the updated version
|
||||
func getNewModImportPath(oldPath string, newVersion *semver.Version) string {
|
||||
// get the new major version suffix - e.g "" for v0/v1 or "/vX" for vX where X >= 2
|
||||
var majVerSuffix string
|
||||
if newVersion.Major >= 2 {
|
||||
majVerSuffix = fmt.Sprintf("/v%d", newVersion.Major)
|
||||
}
|
||||
|
||||
// get the new mod path by replacing the current mod path with the new major version suffix
|
||||
newPath := oldPath + majVerSuffix
|
||||
if suffixIndex := strings.Index(oldPath, "/v"); suffixIndex != -1 {
|
||||
newPath = oldPath[:suffixIndex] + majVerSuffix
|
||||
}
|
||||
return newPath
|
||||
}
|
||||
|
||||
// rollBackFuncs are used to revert changes if the program fails with an error.
|
||||
type rollBackFunc func() error
|
||||
type addRollBackFunc func(rollBackFunc)
|
||||
|
||||
// log error, rollback any changes made, and exit with non-zero status code
|
||||
func exitWithError(err error, rollBackFuncs []rollBackFunc) {
|
||||
if err != nil {
|
||||
log.WithError(err).Error()
|
||||
}
|
||||
if rollBackFuncs != nil {
|
||||
log.Info("Rolling back changes...")
|
||||
for _, r := range rollBackFuncs {
|
||||
if err := r(); err != nil {
|
||||
log.WithError(err).Error()
|
||||
}
|
||||
}
|
||||
}
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// log message and exit with non-zero status code
|
||||
func exitWithMessage(format string, args ...interface{}) {
|
||||
log.Infof(format, args...)
|
||||
os.Exit(1)
|
||||
}
|
||||
@@ -1,268 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 Gravitational, Inc.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/coreos/go-semver/semver"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/gravitational/teleport/build.assets/gomod"
|
||||
)
|
||||
|
||||
func TestUpdateGoPkgs(t *testing.T) {
|
||||
goFile := `package main
|
||||
|
||||
import "mod/path"
|
||||
import "other/mod/path"
|
||||
import (
|
||||
"mod/path"
|
||||
alias "mod/path"
|
||||
|
||||
"other/mod/path"
|
||||
)
|
||||
`
|
||||
updatedGoFile := `package main
|
||||
|
||||
import "mod/path/v2"
|
||||
import "other/mod/path"
|
||||
import (
|
||||
"mod/path/v2"
|
||||
alias "mod/path/v2"
|
||||
|
||||
"other/mod/path"
|
||||
)
|
||||
`
|
||||
|
||||
// Create a dummy go module with go.mod and main.go file
|
||||
pkgDir := t.TempDir()
|
||||
writeFile(t, pkgDir, "go.mod", newGoModFileString("pkg"))
|
||||
|
||||
// Run main.go file through the update function
|
||||
goFilePath := writeFile(t, pkgDir, "main.go", goFile)
|
||||
addRollBack := testRollBack(t, goFilePath, goFile)
|
||||
err := updateGoPkgs(pkgDir, "mod/path", "mod/path/v2", nil, addRollBack)
|
||||
require.NoError(t, err)
|
||||
readAndCompareFile(t, goFilePath, updatedGoFile)
|
||||
|
||||
// Run updated main.go file through update function
|
||||
goFilePath = writeFile(t, pkgDir, "main.go", updatedGoFile)
|
||||
addRollBack = testRollBack(t, goFilePath, updatedGoFile)
|
||||
err = updateGoPkgs(pkgDir, "mod/path/v2", "mod/path", nil, addRollBack)
|
||||
require.NoError(t, err)
|
||||
readAndCompareFile(t, goFilePath, goFile)
|
||||
}
|
||||
|
||||
func TestUpdateProtoFiles(t *testing.T) {
|
||||
protoFile := `syntax = "proto3";
|
||||
package proto;
|
||||
import "mod/path/types.proto";
|
||||
message Example {
|
||||
types.Type field1 = 1 [
|
||||
(gogoproto.casttype) = "mod/path/types.Traits"
|
||||
];
|
||||
types.Type field2 = 2 [
|
||||
(gogoproto.customtype) = "mod/path/types.Traits"
|
||||
];
|
||||
}
|
||||
`
|
||||
|
||||
// Only update casttype and customtype options.
|
||||
updatedProtoFile := `syntax = "proto3";
|
||||
package proto;
|
||||
import "mod/path/types.proto";
|
||||
message Example {
|
||||
types.Type field1 = 1 [
|
||||
(gogoproto.casttype) = "mod/path/v2/types.Traits"
|
||||
];
|
||||
types.Type field2 = 2 [
|
||||
(gogoproto.customtype) = "mod/path/v2/types.Traits"
|
||||
];
|
||||
}
|
||||
`
|
||||
|
||||
// Write proto file to disk
|
||||
dir := t.TempDir()
|
||||
|
||||
// Run proto file through update function
|
||||
protoFilePath := writeFile(t, dir, "proto.proto", protoFile)
|
||||
addRollBack := testRollBack(t, protoFilePath, protoFile)
|
||||
err := updateProtoFiles(dir, "mod/path", "mod/path/v2", addRollBack)
|
||||
require.NoError(t, err)
|
||||
readAndCompareFile(t, protoFilePath, updatedProtoFile)
|
||||
|
||||
// Run updated proto file through update function
|
||||
protoFilePath = writeFile(t, dir, "proto.proto", updatedProtoFile)
|
||||
addRollBack = testRollBack(t, protoFilePath, updatedProtoFile)
|
||||
err = updateProtoFiles(dir, "mod/path/v2", "mod/path", addRollBack)
|
||||
require.NoError(t, err)
|
||||
readAndCompareFile(t, protoFilePath, protoFile)
|
||||
}
|
||||
|
||||
func TestUpdateGoModulePath(t *testing.T) {
|
||||
testUpdate := func(oldModPath, newModPath, newModVersion, oldModFile, expectedNewModFile string) func(t *testing.T) {
|
||||
return func(t *testing.T) {
|
||||
// Write mod file to disk
|
||||
modDir := t.TempDir()
|
||||
modFilePath := writeFile(t, modDir, "go.mod", oldModFile)
|
||||
|
||||
addRollBack := testRollBack(t, modFilePath, oldModFile)
|
||||
|
||||
// Run the mod file through the update function
|
||||
err := updateGoModFile(modDir, oldModPath, newModPath, newModVersion, addRollBack)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Read the updated mod file from disk and compare it to the expected mod file
|
||||
readAndCompareFile(t, modFilePath, expectedNewModFile)
|
||||
}
|
||||
}
|
||||
|
||||
t.Run("updated module in header", testUpdate("go/mod/header", "updated/go/mod/header", "1.2.3",
|
||||
newGoModFileString("go/mod/header"),
|
||||
newGoModFileString("updated/go/mod/header"),
|
||||
))
|
||||
|
||||
t.Run("updated module in statements", testUpdate("mod/path", "mod/path/v2", "1.2.3",
|
||||
newGoModFileString("go/mod/header", requireStatement("mod/path", "0.1.2")),
|
||||
newGoModFileString("go/mod/header", requireStatement("mod/path/v2", "1.2.3")),
|
||||
))
|
||||
|
||||
t.Run("updated module not in mod file", testUpdate("mod/path", "mod/path/v2", "1.2.3",
|
||||
newGoModFileString("go/mod/header", requireStatement("other/mod/path", "0.1.2")),
|
||||
newGoModFileString("go/mod/header", requireStatement("other/mod/path", "0.1.2")),
|
||||
))
|
||||
|
||||
// Create a go mod file with every type of go mod statement and
|
||||
// test that every statement and the header gets updated properly.
|
||||
testUpdateAllStatements := func(oldModPath, oldVersion, newVersion string) func(*testing.T) {
|
||||
oldModFile := newGoModFileString(oldModPath, allGoModStatements(oldModPath, oldVersion)...)
|
||||
newModPath := getNewModImportPath(oldModPath, semver.New(newVersion))
|
||||
newModFile := newGoModFileString(newModPath, allGoModStatements(newModPath, newVersion)...)
|
||||
return testUpdate(oldModPath, newModPath, newVersion, oldModFile, newModFile)
|
||||
}
|
||||
|
||||
t.Run("v0 to v0", testUpdateAllStatements("mod/path", "0.0.0", "0.0.0"))
|
||||
t.Run("v0 to v1", testUpdateAllStatements("mod/path", "0.0.0", "1.2.3"))
|
||||
t.Run("v0 to v1", testUpdateAllStatements("mod/path", "0.0.0", "1.2.3"))
|
||||
t.Run("v0 to v2", testUpdateAllStatements("mod/path", "0.0.0", "2.3.4"))
|
||||
t.Run("v2 to v3", testUpdateAllStatements("mod/path/v2", "2.3.4", "3.4.5"))
|
||||
t.Run("v1 to v0", testUpdateAllStatements("mod/path", "1.2.3", "0.0.0"))
|
||||
t.Run("v2 to v0", testUpdateAllStatements("mod/path/v2", "2.3.4", "0.0.0"))
|
||||
}
|
||||
|
||||
func TestGetImportPaths(t *testing.T) {
|
||||
testGetImportPaths := func(currentModPath, newVersion, expectedNewModPath string) func(t *testing.T) {
|
||||
return func(t *testing.T) {
|
||||
// Write mod file to disk
|
||||
modDir := t.TempDir()
|
||||
writeFile(t, modDir, "go.mod", newGoModFileString(currentModPath))
|
||||
|
||||
// Get import paths using the mod file in disk
|
||||
oldModPath, err := gomod.GetImportPath(modDir)
|
||||
require.NoError(t, err)
|
||||
newModPath := getNewModImportPath(oldModPath, semver.New(newVersion))
|
||||
|
||||
// Compare paths to expected results
|
||||
require.Equal(t, currentModPath, oldModPath)
|
||||
require.Equal(t, expectedNewModPath, newModPath)
|
||||
}
|
||||
}
|
||||
|
||||
t.Run("v0 to v0", testGetImportPaths("mod/path", "0.0.0", "mod/path"))
|
||||
t.Run("v0 to v1", testGetImportPaths("mod/path", "1.2.3", "mod/path"))
|
||||
t.Run("v0 to v1", testGetImportPaths("mod/path", "1.2.3", "mod/path"))
|
||||
t.Run("v0 to v2", testGetImportPaths("mod/path", "2.3.4", "mod/path/v2"))
|
||||
t.Run("v2 to v3", testGetImportPaths("mod/path/v2", "3.4.5", "mod/path/v3"))
|
||||
t.Run("v1 to v0", testGetImportPaths("mod/path", "0.0.0", "mod/path"))
|
||||
t.Run("v2 to v0", testGetImportPaths("mod/path/v2", "0.0.0", "mod/path"))
|
||||
}
|
||||
|
||||
// Write a file to disk and return the file path for testing
|
||||
func writeFile(t *testing.T, dir, name, data string) string {
|
||||
path := filepath.Join(dir, name)
|
||||
require.NoError(t, os.WriteFile(path, []byte(data), fs.ModePerm))
|
||||
return path
|
||||
}
|
||||
|
||||
// Read a file and compare it to some expected file data for testing
|
||||
func readAndCompareFile(t *testing.T, path, expectedData string) {
|
||||
data, err := os.ReadFile(path)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expectedData, string(data))
|
||||
}
|
||||
|
||||
// Setup and test rollback functionality
|
||||
func testRollBack(t *testing.T, filePath, expectedData string) addRollBackFunc {
|
||||
return func(rollBack rollBackFunc) {
|
||||
t.Cleanup(func() {
|
||||
err := rollBack()
|
||||
require.NoError(t, err)
|
||||
readAndCompareFile(t, filePath, expectedData)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Create a go mod file as a string for testing
|
||||
func newGoModFileString(modPath string, goModStatements ...string) string {
|
||||
header := fmt.Sprintf("module %v\n\ngo 1.15", modPath)
|
||||
return strings.Join(append([]string{header}, goModStatements...), "\n\n") + "\n"
|
||||
}
|
||||
|
||||
// Helper functions for creating go mod statements for testing
|
||||
func requireStatement(path, version string) string {
|
||||
return fmt.Sprintf("require %v v%v", path, version)
|
||||
}
|
||||
func requireIndirect(path, version string) string {
|
||||
return fmt.Sprintf("require %v v%v // indirect", path, version)
|
||||
}
|
||||
func requireBlock(requires []string) string {
|
||||
for i, s := range requires {
|
||||
requires[i] = strings.ReplaceAll(s, "require ", "\t")
|
||||
}
|
||||
return fmt.Sprintf("require (\n%v\n)", strings.Join(requires, "\n"))
|
||||
}
|
||||
func replaceStatement(path string) string {
|
||||
return fmt.Sprintf("replace %v => path v1.2.3", path)
|
||||
}
|
||||
func replaceVersion(path, version string) string {
|
||||
return fmt.Sprintf("replace %v v%v => path v1.2.3", path, version)
|
||||
}
|
||||
func replaceBlock(replaces []string) string {
|
||||
for i, s := range replaces {
|
||||
replaces[i] = strings.ReplaceAll(s, "replace ", "\t")
|
||||
}
|
||||
return fmt.Sprintf("replace (\n%v\n)", strings.Join(replaces, "\n"))
|
||||
}
|
||||
func allGoModStatements(path, version string) []string {
|
||||
return []string{
|
||||
requireStatement(path, version),
|
||||
requireIndirect(path, version),
|
||||
requireBlock([]string{
|
||||
requireStatement(path, version),
|
||||
requireIndirect(path, version),
|
||||
}),
|
||||
replaceStatement(path),
|
||||
replaceVersion(path, version),
|
||||
replaceBlock([]string{
|
||||
replaceStatement(path),
|
||||
replaceVersion(path, version),
|
||||
}),
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
# by other Makefiles
|
||||
# These values may need to be updated in `dronegen/container_image_products.go` if
|
||||
# they change here
|
||||
BUILDBOX_VERSION ?= teleport12
|
||||
BUILDBOX_VERSION ?= teleport13
|
||||
BUILDBOX_BASE_NAME ?= public.ecr.aws/gravitational/teleport-buildbox
|
||||
|
||||
BUILDBOX=$(BUILDBOX_BASE_NAME):$(BUILDBOX_VERSION)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.version: &version "12.0.0-dev"
|
||||
.version: &version "13.0.0-dev"
|
||||
|
||||
name: teleport-cluster
|
||||
apiVersion: v2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.version: &version "12.0.0-dev"
|
||||
.version: &version "13.0.0-dev"
|
||||
|
||||
name: teleport-operator
|
||||
apiVersion: v2
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
should add an operator side-car when operator is enabled:
|
||||
1: |
|
||||
image: public.ecr.aws/gravitational/teleport-operator:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport-operator:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -30,7 +30,7 @@ should add an operator side-car when operator is enabled:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
- --apply-on-startup=/etc/teleport/apply-on-startup.yaml
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -129,7 +129,7 @@ should set nodeSelector when set in values:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
- --apply-on-startup=/etc/teleport/apply-on-startup.yaml
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -201,7 +201,7 @@ should set resources when set in values:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
- --apply-on-startup=/etc/teleport/apply-on-startup.yaml
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -262,7 +262,7 @@ should set securityContext when set in values:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
- --apply-on-startup=/etc/teleport/apply-on-startup.yaml
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
||||
+11
-11
@@ -4,8 +4,8 @@ should provision initContainer correctly when set in values:
|
||||
- teleport
|
||||
- wait
|
||||
- no-resolve
|
||||
- RELEASE-NAME-auth-v11.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
- RELEASE-NAME-auth-v12.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
name: wait-auth-update
|
||||
- args:
|
||||
- echo test
|
||||
@@ -58,7 +58,7 @@ should set nodeSelector when set in values:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -100,8 +100,8 @@ should set nodeSelector when set in values:
|
||||
- teleport
|
||||
- wait
|
||||
- no-resolve
|
||||
- RELEASE-NAME-auth-v11.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
- RELEASE-NAME-auth-v12.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
name: wait-auth-update
|
||||
nodeSelector:
|
||||
environment: security
|
||||
@@ -136,7 +136,7 @@ should set resources when set in values:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -185,8 +185,8 @@ should set resources when set in values:
|
||||
- teleport
|
||||
- wait
|
||||
- no-resolve
|
||||
- RELEASE-NAME-auth-v11.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
- RELEASE-NAME-auth-v12.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
name: wait-auth-update
|
||||
serviceAccountName: RELEASE-NAME-proxy
|
||||
terminationGracePeriodSeconds: 60
|
||||
@@ -203,7 +203,7 @@ should set securityContext when set in values:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -252,8 +252,8 @@ should set securityContext when set in values:
|
||||
- teleport
|
||||
- wait
|
||||
- no-resolve
|
||||
- RELEASE-NAME-auth-v11.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
- RELEASE-NAME-auth-v12.NAMESPACE.svc.cluster.local
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
name: wait-auth-update
|
||||
serviceAccountName: RELEASE-NAME-proxy
|
||||
terminationGracePeriodSeconds: 60
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.version: &version "12.0.0-dev"
|
||||
.version: &version "13.0.0-dev"
|
||||
|
||||
name: teleport-kube-agent
|
||||
apiVersion: v2
|
||||
|
||||
@@ -27,7 +27,7 @@ sets Deployment annotations when specified if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -95,7 +95,7 @@ sets Deployment labels when specified if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -150,7 +150,7 @@ sets Pod annotations when specified if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -205,7 +205,7 @@ sets Pod labels when specified if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -260,7 +260,7 @@ should add emptyDir for data when existingDataVolume is not set if action is Upg
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -316,7 +316,7 @@ should add insecureSkipProxyTLSVerify to args when set in values if action is Up
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
- --insecure
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -371,7 +371,7 @@ should correctly configure existingDataVolume when set if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -424,7 +424,7 @@ should expose diag port if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -491,7 +491,7 @@ should have multiple replicas when replicaCount is set (using .replicaCount, dep
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -558,7 +558,7 @@ should have multiple replicas when replicaCount is set (using highAvailability.r
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -613,7 +613,7 @@ should have one replica when replicaCount is not set if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -668,7 +668,7 @@ should mount extraVolumes and extraVolumeMounts if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -731,7 +731,7 @@ should mount tls.existingCASecretName and set environment when set in values if
|
||||
env:
|
||||
- name: SSL_CERT_FILE
|
||||
value: /etc/teleport-tls-ca/ca.pem
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -797,7 +797,7 @@ should mount tls.existingCASecretName and set extra environment when set in valu
|
||||
value: http://username:[email protected]:3128
|
||||
- name: SSL_CERT_FILE
|
||||
value: /etc/teleport-tls-ca/ca.pem
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -858,7 +858,7 @@ should provision initContainer correctly when set in values if action is Upgrade
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -949,7 +949,7 @@ should set SecurityContext if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1024,7 +1024,7 @@ should set affinity when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1079,7 +1079,7 @@ should set default serviceAccountName when not set in values if action is Upgrad
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1148,7 +1148,7 @@ should set environment when extraEnv set in values if action is Upgrade:
|
||||
env:
|
||||
- name: HTTPS_PROXY
|
||||
value: http://username:[email protected]:3128
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1258,7 +1258,7 @@ should set imagePullPolicy when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1313,7 +1313,7 @@ should set nodeSelector if set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1370,7 +1370,7 @@ should set not set priorityClassName when not set in values if action is Upgrade
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1437,7 +1437,7 @@ should set preferred affinity when more than one replica is used if action is Up
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1492,7 +1492,7 @@ should set priorityClassName when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1548,7 +1548,7 @@ should set probeTimeoutSeconds when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1613,7 +1613,7 @@ should set required affinity when highAvailability.requireAntiAffinity is set if
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1668,7 +1668,7 @@ should set resources when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1730,7 +1730,7 @@ should set serviceAccountName when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1785,7 +1785,7 @@ should set tolerations when set in values if action is Upgrade:
|
||||
containers:
|
||||
- args:
|
||||
- --diag-addr=0.0.0.0:3000
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
|
||||
@@ -14,7 +14,7 @@ sets Pod annotations when specified:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -80,7 +80,7 @@ sets Pod labels when specified:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -170,7 +170,7 @@ sets StatefulSet labels when specified:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -247,7 +247,7 @@ should add insecureSkipProxyTLSVerify to args when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -313,7 +313,7 @@ should add volumeClaimTemplate for data volume when using StatefulSet and action
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -399,7 +399,7 @@ should add volumeClaimTemplate for data volume when using StatefulSet and is Fre
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -475,7 +475,7 @@ should add volumeMount for data volume when using StatefulSet:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -541,7 +541,7 @@ should expose diag port:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -607,7 +607,7 @@ should generate Statefulset when storage is disabled and mode is a Upgrade:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -687,7 +687,7 @@ should have multiple replicas when replicaCount is set (using .replicaCount, dep
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -765,7 +765,7 @@ should have multiple replicas when replicaCount is set (using highAvailability.r
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -831,7 +831,7 @@ should have one replica when replicaCount is not set:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -897,7 +897,7 @@ should install Statefulset when storage is disabled and mode is a Fresh Install:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -965,7 +965,7 @@ should mount extraVolumes and extraVolumeMounts:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1038,7 +1038,7 @@ should mount tls.existingCASecretName and set environment when set in values:
|
||||
value: RELEASE-NAME
|
||||
- name: SSL_CERT_FILE
|
||||
value: /etc/teleport-tls-ca/ca.pem
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1116,7 +1116,7 @@ should mount tls.existingCASecretName and set extra environment when set in valu
|
||||
value: /etc/teleport-tls-ca/ca.pem
|
||||
- name: HTTPS_PROXY
|
||||
value: http://username:[email protected]:3128
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1190,7 +1190,7 @@ should not add emptyDir for data when using StatefulSet:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1256,7 +1256,7 @@ should provision initContainer correctly when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1358,7 +1358,7 @@ should set SecurityContext:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1444,7 +1444,7 @@ should set affinity when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1510,7 +1510,7 @@ should set default serviceAccountName when not set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1589,7 +1589,7 @@ should set environment when extraEnv set in values:
|
||||
value: RELEASE-NAME
|
||||
- name: HTTPS_PROXY
|
||||
value: http://username:[email protected]:3128
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1721,7 +1721,7 @@ should set imagePullPolicy when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1787,7 +1787,7 @@ should set nodeSelector if set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1867,7 +1867,7 @@ should set preferred affinity when more than one replica is used:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -1933,7 +1933,7 @@ should set probeTimeoutSeconds when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2009,7 +2009,7 @@ should set required affinity when highAvailability.requireAntiAffinity is set:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2075,7 +2075,7 @@ should set resources when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2148,7 +2148,7 @@ should set serviceAccountName when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2214,7 +2214,7 @@ should set storage.requests when set in values and action is an Upgrade:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2280,7 +2280,7 @@ should set storage.storageClassName when set in values and action is an Upgrade:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
@@ -2346,7 +2346,7 @@ should set tolerations when set in values:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELEASE_NAME
|
||||
value: RELEASE-NAME
|
||||
image: public.ecr.aws/gravitational/teleport:12.0.0-dev
|
||||
image: public.ecr.aws/gravitational/teleport:13.0.0-dev
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 6
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
// Code generated by "make version". DO NOT EDIT.
|
||||
package teleport
|
||||
|
||||
const Version = "12.0.0-dev"
|
||||
const Version = "13.0.0-dev"
|
||||
|
||||
// Gitref is set to the output of "git describe" during the build process.
|
||||
var Gitref string
|
||||
|
||||
Reference in New Issue
Block a user