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
378a27e8
Commit
378a27e8
authored
9 years ago
by
jackgr
Browse files
Options
Download
Patches
Plain Diff
Streamline service lookup
parent
30f8db7f
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
1.999.0
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
v2.0.0-alpha.3
v2.0.0-alpha.2
v2.0.0-alpha.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
pkg/util/kubernetes.go
+34
-28
pkg/util/kubernetes.go
with
34 additions
and
28 deletions
+34
-28
pkg/util/kubernetes.go
+
34
−
28
View file @
378a27e8
...
@@ -65,42 +65,48 @@ type KubernetesSecret struct {
...
@@ -65,42 +65,48 @@ type KubernetesSecret struct {
Data
map
[
string
]
string
`json:"data,omitempty"`
Data
map
[
string
]
string
`json:"data,omitempty"`
}
}
// GetServiceURL takes a
default
service
URL
, a service
name
and a service
port
,
// GetServiceURL takes a service
name
, a service
port,
and a
default
service
URL
,
// and returns a URL for accessing the service. It first looks for an environment
// and returns a URL for accessing the service. It first looks for an environment
// variable set by Kubernetes by transposing the service name. If it can't find
// variable set by Kubernetes by transposing the service name. If it can't find
// one, it looks up the service name in DNS. If that fails, it returns the default
// one, it looks up the service name in DNS. If that doesn't work, it returns the
// service URL.
// default service URL. If that's empty, it returns an HTTP localhost URL for the
func
GetServiceURL
(
serviceURL
,
serviceName
,
servicePort
string
)
string
{
// service port. If service port is empty, it panics.
if
serviceURL
==
""
{
func
GetServiceURL
(
serviceName
,
servicePort
,
serviceURL
string
)
(
string
,
error
)
{
serviceURL
=
MakeEnvVariableURL
(
serviceName
)
if
serviceName
!=
""
{
if
serviceURL
==
""
{
varBase
:=
strings
.
Replace
(
serviceName
,
"-"
,
"_"
,
-
1
)
varName
:=
strings
.
ToUpper
(
varBase
)
+
"_PORT"
serviceURL
:=
os
.
Getenv
(
varName
)
if
serviceURL
!=
""
{
return
strings
.
Replace
(
serviceURL
,
"tcp"
,
"http"
,
1
),
nil
}
if
servicePort
!=
""
{
addrs
,
err
:=
net
.
LookupHost
(
serviceName
)
addrs
,
err
:=
net
.
LookupHost
(
serviceName
)
if
err
!
=
nil
||
len
(
addrs
)
<
1
{
if
err
=
=
nil
&&
len
(
addrs
)
>
0
{
log
.
Fatalf
(
"cannot resolve service:%v. environment:%v
\n
"
,
serviceName
,
os
.
Environ
())
return
fmt
.
Sprintf
(
"http://%s:%s"
,
addrs
[
0
],
servicePort
),
nil
}
}
serviceURL
=
fmt
.
Sprintf
(
"http://%s:%s"
,
addrs
[
0
],
servicePort
)
}
}
}
}
return
serviceURL
if
serviceURL
!=
""
{
}
return
serviceURL
,
nil
}
// MakeEnvVariableURL takes a service name and returns the value of the
if
servicePort
!=
""
{
// environment variable that identifies its URL, if it exists, or the empty
serviceURL
=
fmt
.
Sprintf
(
"http://localhost:%s"
,
servicePort
)
// string, if it doesn't.
return
serviceURL
,
nil
func
MakeEnvVariableURL
(
str
string
)
string
{
}
prefix
:=
MakeEnvVariableName
(
str
)
url
:=
os
.
Getenv
(
prefix
+
"_PORT"
)
err
:=
fmt
.
Errorf
(
"cannot resolve service:%v in environment:%v
\n
"
,
serviceName
,
os
.
Environ
()
)
return
strings
.
Replace
(
url
,
"tcp"
,
"http"
,
1
)
return
""
,
err
}
}
//
MakeEnvVariableName is copied from the Kubernetes source,
//
GetServiceURLOrDie calls GetServiceURL and exits if it returns an error.
// which is referenced by the documentation for service environment variables.
func
GetServiceURLOrDie
(
serviceName
,
servicePort
,
serviceURL
string
)
string
{
func
MakeEnvVariableName
(
str
string
)
string
{
URL
,
err
:=
GetServiceURL
(
serviceName
,
servicePort
,
serviceURL
)
// TODO: If we simplify to "all names are DNS1123Subdomains" this
if
err
!=
nil
{
// will need two tweaks:
log
.
Fatal
(
err
)
// 1) Handle leading digits
}
// 2) Handle dots
return
strings
.
ToUpper
(
strings
.
Replace
(
str
,
"-"
,
"_"
,
-
1
))
return
URL
}
}
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