github.com/gravitational/teleport/api@v0.0.0-20240507183017-3110591cbafc/types/installers/installers.go (about)

     1  /*
     2  Copyright 2022 Gravitational, Inc.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package installers
    18  
    19  import (
    20  	_ "embed"
    21  
    22  	"github.com/gravitational/teleport/api/types"
    23  )
    24  
    25  //go:embed installer.sh.tmpl
    26  var defaultInstallScript string
    27  
    28  //go:embed agentless-installer.sh.tmpl
    29  var defaultAgentlessInstallScript string
    30  
    31  // InstallerScriptName is the name of the by default populated, EC2
    32  // installer script
    33  const InstallerScriptName = types.DefaultInstallerScriptName
    34  
    35  // InstallerScriptName is the name of the by default populated, EC2
    36  // installer script when agentless mode is enabled for a matcher
    37  const InstallerScriptNameAgentless = types.DefaultInstallerScriptNameAgentless
    38  
    39  // DefaultInstaller represents a the default installer script provided
    40  // by teleport
    41  var DefaultInstaller = types.MustNewInstallerV1(InstallerScriptName, defaultInstallScript)
    42  
    43  // DefaultAgentlessInstaller represents a the default agentless installer script provided
    44  // by teleport
    45  var DefaultAgentlessInstaller = types.MustNewInstallerV1(InstallerScriptNameAgentless, defaultAgentlessInstallScript)
    46  
    47  // Template is used to fill proxy address and version information into
    48  // the installer script
    49  type Template struct {
    50  	// PublicProxyAddr is public address of the proxy
    51  	PublicProxyAddr string
    52  	// MajorVersion is the major version of the Teleport auth node
    53  	MajorVersion string
    54  	// TeleportPackage is the teleport package to use. `teleport` or
    55  	// `teleport-ent` depending on if the cluster is enterprise or not.
    56  	TeleportPackage string
    57  	// RepoChannel is the repo's channel name to install.
    58  	RepoChannel string
    59  	// AutomaticUpgrades indicates whether Automatic Upgrades are enabled or disabled.
    60  	// Its value is either `true` or `false`.
    61  	AutomaticUpgrades string
    62  	// AzureClientID is the client ID of the managed identity to use when joining
    63  	// the cluster. Only applicable for the azure join method.
    64  	AzureClientID string
    65  }