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
5d820c4d
Commit
5d820c4d
authored
8 years ago
by
Adam Reese
Browse files
Options
Download
Patches
Plain Diff
feat(cmd): install latest tagged image on `helm init`
closes: #1117
parent
2547bf4b
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
kube-update-test
release-2.0
release-2.1
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.2
release-2.3
release-2.4
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
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.2
v2.0.1
v2.0.0
v2.0.0-rc.2
v2.0.0-rc.1
v2.0.0-beta.2
v2.0.0-beta.1
v2.0.0-alpha.5
v2.0.0-alpha.4
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
cmd/helm/installer/install.go
+87
-52
cmd/helm/installer/install.go
with
87 additions
and
52 deletions
+87
-52
cmd/helm/installer/install.go
+
87
−
52
View file @
5d820c4d
...
...
@@ -17,15 +17,20 @@ limitations under the License.
package
installer
// import "k8s.io/helm/cmd/helm/installer"
import
(
"bytes"
"fmt"
"
text/template
"
"
strings
"
"github.com/Masterminds/sprig"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/util/intstr"
"k8s.io/helm/pkg/kube"
"k8s.io/helm/pkg/version"
)
const
defaultImage
=
"gcr.io/kubernetes-helm/tiller"
// Install uses kubernetes client to install tiller
//
// Returns the string output received from the operation, and an error if the
...
...
@@ -43,59 +48,89 @@ func Install(namespace, image string, verbose bool) error {
namespace
=
ns
}
var
b
bytes
.
Buffer
// Add main install YAML
istpl
:=
template
.
New
(
"install"
)
.
Funcs
(
sprig
.
TxtFuncMap
())
cfg
:=
struct
{
Namespace
,
Image
string
}{
namespace
,
image
}
if
err
:=
template
.
Must
(
istpl
.
Parse
(
InstallYAML
))
.
Execute
(
&
b
,
cfg
);
err
!=
nil
{
c
,
err
:=
kc
.
Client
()
if
err
!=
nil
{
return
err
}
if
verbose
{
fmt
.
Println
(
b
.
String
())
ns
:=
generateNamespace
(
namespace
)
if
_
,
err
:=
c
.
Namespaces
()
.
Create
(
ns
);
err
!=
nil
{
if
!
errors
.
IsAlreadyExists
(
err
)
{
return
err
}
}
if
image
==
""
{
// strip git sha off version
tag
:=
strings
.
Split
(
version
.
Version
,
"+"
)[
0
]
image
=
fmt
.
Sprintf
(
"%s:%s"
,
defaultImage
,
tag
)
}
return
kc
.
Create
(
namespace
,
&
b
)
rc
:=
generateDeployment
(
image
)
_
,
err
=
c
.
Deployments
(
namespace
)
.
Create
(
rc
)
return
err
}
func
generateLabels
(
labels
map
[
string
]
string
)
map
[
string
]
string
{
labels
[
"app"
]
=
"helm"
return
labels
}
func
generateDeployment
(
image
string
)
*
extensions
.
Deployment
{
labels
:=
generateLabels
(
map
[
string
]
string
{
"name"
:
"tiller"
})
d
:=
&
extensions
.
Deployment
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"tiller-deploy"
,
Labels
:
labels
,
},
Spec
:
extensions
.
DeploymentSpec
{
Replicas
:
1
,
Template
:
api
.
PodTemplateSpec
{
ObjectMeta
:
api
.
ObjectMeta
{
Labels
:
labels
,
},
Spec
:
api
.
PodSpec
{
Containers
:
[]
api
.
Container
{
{
Name
:
"tiller"
,
Image
:
image
,
ImagePullPolicy
:
"Always"
,
Ports
:
[]
api
.
ContainerPort
{{
ContainerPort
:
44134
,
Name
:
"tiller"
}},
LivenessProbe
:
&
api
.
Probe
{
Handler
:
api
.
Handler
{
HTTPGet
:
&
api
.
HTTPGetAction
{
Path
:
"/liveness"
,
Port
:
intstr
.
FromInt
(
44135
),
},
},
InitialDelaySeconds
:
1
,
TimeoutSeconds
:
1
,
},
ReadinessProbe
:
&
api
.
Probe
{
Handler
:
api
.
Handler
{
HTTPGet
:
&
api
.
HTTPGetAction
{
Path
:
"/readiness"
,
Port
:
intstr
.
FromInt
(
44135
),
},
},
InitialDelaySeconds
:
1
,
TimeoutSeconds
:
1
,
},
},
},
},
},
},
}
return
d
}
// InstallYAML is the installation YAML for DM.
const
InstallYAML
=
`
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tiller-deploy
namespace: {{ .Namespace }}
spec:
replicas: 1
template:
metadata:
labels:
app: helm
name: tiller
spec:
containers:
- image: {{default "gcr.io/kubernetes-helm/tiller:canary" .Image}}
name: tiller
ports:
- containerPort: 44134
name: tiller
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /liveness
port: 44135
initialDelaySeconds: 1
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /readiness
port: 44135
initialDelaySeconds: 1
timeoutSeconds: 1
`
func
generateNamespace
(
namespace
string
)
*
api
.
Namespace
{
return
&
api
.
Namespace
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
namespace
,
Labels
:
generateLabels
(
map
[
string
]
string
{
"name"
:
"helm-namespace"
}),
},
}
}
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