Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
1105 Внедрение механизмов обеспечения безопасности цепочки поставки программных проектов
Legacy
scanned-projects
helm
Commits
5c1830f1
Commit
5c1830f1
authored
7 years ago
by
Adam Reese
Committed by
GitHub
7 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #2569 from adamreese/ref/tiller
ref(tiller): refactor out cobra from tiller
parents
401f8bcc
a658d24c
main
Release
add-codeql
dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
dependabot/go_modules/github.com/lib/pq-1.10.9
dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0
dependabot/go_modules/golang.org/x/crypto-0.9.0
dependabot/go_modules/golang.org/x/term-0.8.0
dependabot/go_modules/k8s.io/klog/v2-2.100.1
dev-v2
feat-v3/event-emitter-lua
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.5
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.10
release-3.11
release-3.12
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.6.1
release-3.6.2
release-3.7
release-3.8
release-3.9
release-v3.0.0-beta.4
v3.12.0
v3.12.0-rc.1
v3.12.0-dev.1
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v3.4.0-rc.1
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.2.0-rc.1
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-beta.5
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v3.0.0-alpha.2
v3.0.0-alpha.1
v2.17.0
v2.17.0-rc.1
v2.16.12
v2.16.11
v2.16.10
v2.16.9
v2.16.8
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16.0
v2.16.0-rc.2
v2.16.0-rc.1
v2.15.2
v2.15.1
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
cmd/tiller/tiller.go
+50
-88
cmd/tiller/tiller.go
with
50 additions
and
88 deletions
+50
-88
cmd/tiller/tiller.go
+
50
−
88
View file @
5c1830f1
...
@@ -18,6 +18,7 @@ package main // import "k8s.io/helm/cmd/tiller"
...
@@ -18,6 +18,7 @@ package main // import "k8s.io/helm/cmd/tiller"
import
(
import
(
"crypto/tls"
"crypto/tls"
"flag"
"fmt"
"fmt"
"io/ioutil"
"io/ioutil"
"log"
"log"
...
@@ -28,9 +29,6 @@ import (
...
@@ -28,9 +29,6 @@ import (
"strings"
"strings"
goprom
"github.com/grpc-ecosystem/go-grpc-prometheus"
goprom
"github.com/grpc-ecosystem/go-grpc-prometheus"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"google.golang.org/grpc"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials"
...
@@ -53,100 +51,57 @@ const (
...
@@ -53,100 +51,57 @@ const (
// tlsCertsEnvVar names the environment variable that points to
// tlsCertsEnvVar names the environment variable that points to
// the directory where Tiller's TLS certificates are located.
// the directory where Tiller's TLS certificates are located.
tlsCertsEnvVar
=
"TILLER_TLS_CERTS"
tlsCertsEnvVar
=
"TILLER_TLS_CERTS"
)
const
(
storageMemory
=
"memory"
storageMemory
=
"memory"
storageConfigMap
=
"configmap"
storageConfigMap
=
"configmap"
)
// rootServer is the root gRPC server.
probeAddr
=
":44135"
//
traceAddr
=
":44136"
// Each gRPC service registers itself to this server during init().
var
rootServer
*
grpc
.
Server
// env is the default environment.
//
// Any changes to env should be done before rootServer.Serve() is called.
var
env
=
environment
.
New
()
var
logger
*
log
.
Logger
var
(
grpcAddr
=
":44134"
probeAddr
=
":44135"
traceAddr
=
":44136"
enableTracing
=
false
store
=
storageConfigMap
remoteReleaseModules
=
false
)
)
var
(
var
(
tlsEnable
bool
grpcAddr
=
flag
.
String
(
"listen"
,
":44134"
,
"address:port to listen on"
)
tlsVerify
bool
enableTracing
=
flag
.
Bool
(
"trace"
,
false
,
"enable rpc tracing"
)
keyFile
string
store
=
flag
.
String
(
"storage"
,
storageConfigMap
,
"storage driver to use. One of 'configmap' or 'memory'"
)
certFile
string
remoteReleaseModules
=
flag
.
Bool
(
"experimental-release"
,
false
,
"enable experimental release modules"
)
caCertFile
string
tlsEnable
=
flag
.
Bool
(
"tls"
,
tlsEnableEnvVarDefault
(),
"enable TLS"
)
tlsVerify
=
flag
.
Bool
(
"tls-verify"
,
tlsVerifyEnvVarDefault
(),
"enable TLS and verify remote certificate"
)
keyFile
=
flag
.
String
(
"tls-key"
,
tlsDefaultsFromEnv
(
"tls-key"
),
"path to TLS private key file"
)
certFile
=
flag
.
String
(
"tls-cert"
,
tlsDefaultsFromEnv
(
"tls-cert"
),
"path to TLS certificate file"
)
caCertFile
=
flag
.
String
(
"tls-ca-cert"
,
tlsDefaultsFromEnv
(
"tls-ca-cert"
),
"trust certificates signed by this CA"
)
// rootServer is the root gRPC server.
//
// Each gRPC service registers itself to this server during init().
rootServer
*
grpc
.
Server
// env is the default environment.
//
// Any changes to env should be done before rootServer.Serve() is called.
env
=
environment
.
New
()
logger
*
log
.
Logger
)
)
const
globalUsage
=
`The Kubernetes Helm server.
func
main
()
{
flag
.
Parse
()
Tiller is the server for Helm. It provides in-cluster resource management.
By default, Tiller listens for gRPC connections on port 44134.
`
func
addFlags
(
flags
*
pflag
.
FlagSet
)
{
flags
.
StringVarP
(
&
grpcAddr
,
"listen"
,
"l"
,
":44134"
,
"address:port to listen on"
)
flags
.
StringVar
(
&
store
,
"storage"
,
storageConfigMap
,
"storage driver to use. One of 'configmap' or 'memory'"
)
flags
.
BoolVar
(
&
enableTracing
,
"trace"
,
false
,
"enable rpc tracing"
)
flags
.
BoolVar
(
&
remoteReleaseModules
,
"experimental-release"
,
false
,
"enable experimental release modules"
)
flags
.
BoolVar
(
&
tlsEnable
,
"tls"
,
tlsEnableEnvVarDefault
(),
"enable TLS"
)
flags
.
BoolVar
(
&
tlsVerify
,
"tls-verify"
,
tlsVerifyEnvVarDefault
(),
"enable TLS and verify remote certificate"
)
flags
.
StringVar
(
&
keyFile
,
"tls-key"
,
tlsDefaultsFromEnv
(
"tls-key"
),
"path to TLS private key file"
)
flags
.
StringVar
(
&
certFile
,
"tls-cert"
,
tlsDefaultsFromEnv
(
"tls-cert"
),
"path to TLS certificate file"
)
flags
.
StringVar
(
&
caCertFile
,
"tls-ca-cert"
,
tlsDefaultsFromEnv
(
"tls-ca-cert"
),
"trust certificates signed by this CA"
)
}
func
initLog
()
{
if
*
enableTracing
{
if
enableTracing
{
log
.
SetFlags
(
log
.
Lshortfile
)
log
.
SetFlags
(
log
.
Lshortfile
)
}
}
logger
=
newLogger
(
"main"
)
logger
=
newLogger
(
"main"
)
}
func
main
()
{
root
:=
&
cobra
.
Command
{
Use
:
"tiller"
,
Short
:
"The Kubernetes Helm server."
,
Long
:
globalUsage
,
Run
:
start
,
PreRun
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
initLog
()
},
}
addFlags
(
root
.
Flags
())
if
err
:=
root
.
Execute
();
err
!=
nil
{
start
()
logger
.
Fatal
(
err
)
}
}
}
func
newLogger
(
prefix
string
)
*
log
.
Logger
{
func
start
()
{
if
len
(
prefix
)
>
0
{
prefix
=
fmt
.
Sprintf
(
"[%s] "
,
prefix
)
}
return
log
.
New
(
os
.
Stderr
,
prefix
,
log
.
Flags
())
}
func
start
(
c
*
cobra
.
Command
,
args
[]
string
)
{
clientset
,
err
:=
kube
.
New
(
nil
)
.
ClientSet
()
clientset
,
err
:=
kube
.
New
(
nil
)
.
ClientSet
()
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalf
(
"Cannot initialize Kubernetes connection: %s"
,
err
)
logger
.
Fatalf
(
"Cannot initialize Kubernetes connection: %s"
,
err
)
}
}
switch
store
{
switch
*
store
{
case
storageMemory
:
case
storageMemory
:
env
.
Releases
=
storage
.
Init
(
driver
.
NewMemory
())
env
.
Releases
=
storage
.
Init
(
driver
.
NewMemory
())
case
storageConfigMap
:
case
storageConfigMap
:
...
@@ -161,15 +116,15 @@ func start(c *cobra.Command, args []string) {
...
@@ -161,15 +116,15 @@ func start(c *cobra.Command, args []string) {
kubeClient
.
Log
=
newLogger
(
"kube"
)
.
Printf
kubeClient
.
Log
=
newLogger
(
"kube"
)
.
Printf
env
.
KubeClient
=
kubeClient
env
.
KubeClient
=
kubeClient
if
tlsEnable
||
tlsVerify
{
if
*
tlsEnable
||
*
tlsVerify
{
opts
:=
tlsutil
.
Options
{
CertFile
:
certFile
,
KeyFile
:
keyFile
}
opts
:=
tlsutil
.
Options
{
CertFile
:
*
certFile
,
KeyFile
:
*
keyFile
}
if
tlsVerify
{
if
*
tlsVerify
{
opts
.
CaCertFile
=
caCertFile
opts
.
CaCertFile
=
*
caCertFile
}
}
}
}
var
opts
[]
grpc
.
ServerOption
var
opts
[]
grpc
.
ServerOption
if
tlsEnable
||
tlsVerify
{
if
*
tlsEnable
||
*
tlsVerify
{
cfg
,
err
:=
tlsutil
.
ServerConfig
(
tlsOptions
())
cfg
,
err
:=
tlsutil
.
ServerConfig
(
tlsOptions
())
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalf
(
"Could not create server TLS configuration: %v"
,
err
)
logger
.
Fatalf
(
"Could not create server TLS configuration: %v"
,
err
)
...
@@ -179,24 +134,24 @@ func start(c *cobra.Command, args []string) {
...
@@ -179,24 +134,24 @@ func start(c *cobra.Command, args []string) {
rootServer
=
tiller
.
NewServer
(
opts
...
)
rootServer
=
tiller
.
NewServer
(
opts
...
)
lstn
,
err
:=
net
.
Listen
(
"tcp"
,
grpcAddr
)
lstn
,
err
:=
net
.
Listen
(
"tcp"
,
*
grpcAddr
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Fatalf
(
"Server died: %s"
,
err
)
logger
.
Fatalf
(
"Server died: %s"
,
err
)
}
}
logger
.
Printf
(
"Starting Tiller %s (tls=%t)"
,
version
.
GetVersion
(),
tlsEnable
||
tlsVerify
)
logger
.
Printf
(
"Starting Tiller %s (tls=%t)"
,
version
.
GetVersion
(),
*
tlsEnable
||
*
tlsVerify
)
logger
.
Printf
(
"GRPC listening on %s"
,
grpcAddr
)
logger
.
Printf
(
"GRPC listening on %s"
,
*
grpcAddr
)
logger
.
Printf
(
"Probes listening on %s"
,
probeAddr
)
logger
.
Printf
(
"Probes listening on %s"
,
probeAddr
)
logger
.
Printf
(
"Storage driver is %s"
,
env
.
Releases
.
Name
())
logger
.
Printf
(
"Storage driver is %s"
,
env
.
Releases
.
Name
())
if
enableTracing
{
if
*
enableTracing
{
startTracing
(
traceAddr
)
startTracing
(
traceAddr
)
}
}
srvErrCh
:=
make
(
chan
error
)
srvErrCh
:=
make
(
chan
error
)
probeErrCh
:=
make
(
chan
error
)
probeErrCh
:=
make
(
chan
error
)
go
func
()
{
go
func
()
{
svc
:=
tiller
.
NewReleaseServer
(
env
,
clientset
,
remoteReleaseModules
)
svc
:=
tiller
.
NewReleaseServer
(
env
,
clientset
,
*
remoteReleaseModules
)
svc
.
Log
=
newLogger
(
"tiller"
)
.
Printf
svc
.
Log
=
newLogger
(
"tiller"
)
.
Printf
services
.
RegisterReleaseServiceServer
(
rootServer
,
svc
)
services
.
RegisterReleaseServiceServer
(
rootServer
,
svc
)
if
err
:=
rootServer
.
Serve
(
lstn
);
err
!=
nil
{
if
err
:=
rootServer
.
Serve
(
lstn
);
err
!=
nil
{
...
@@ -224,6 +179,13 @@ func start(c *cobra.Command, args []string) {
...
@@ -224,6 +179,13 @@ func start(c *cobra.Command, args []string) {
}
}
}
}
func
newLogger
(
prefix
string
)
*
log
.
Logger
{
if
len
(
prefix
)
>
0
{
prefix
=
fmt
.
Sprintf
(
"[%s] "
,
prefix
)
}
return
log
.
New
(
os
.
Stderr
,
prefix
,
log
.
Flags
())
}
// namespace returns the namespace of tiller
// namespace returns the namespace of tiller
func
namespace
()
string
{
func
namespace
()
string
{
if
ns
:=
os
.
Getenv
(
"TILLER_NAMESPACE"
);
ns
!=
""
{
if
ns
:=
os
.
Getenv
(
"TILLER_NAMESPACE"
);
ns
!=
""
{
...
@@ -241,9 +203,9 @@ func namespace() string {
...
@@ -241,9 +203,9 @@ func namespace() string {
}
}
func
tlsOptions
()
tlsutil
.
Options
{
func
tlsOptions
()
tlsutil
.
Options
{
opts
:=
tlsutil
.
Options
{
CertFile
:
certFile
,
KeyFile
:
keyFile
}
opts
:=
tlsutil
.
Options
{
CertFile
:
*
certFile
,
KeyFile
:
*
keyFile
}
if
tlsVerify
{
if
*
tlsVerify
{
opts
.
CaCertFile
=
caCertFile
opts
.
CaCertFile
=
*
caCertFile
opts
.
ClientAuth
=
tls
.
VerifyClientCertIfGiven
opts
.
ClientAuth
=
tls
.
VerifyClientCertIfGiven
}
}
return
opts
return
opts
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets