Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
ae3a0fe6
Commit
ae3a0fe6
authored
Apr 20, 2015
by
CJ Cullen
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7055 from erictune/kubeconfig-secrets
Create system secrets in kubeconfig format
parents
1bc4912f
c3203cba
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
63 additions
and
7 deletions
+63
-7
default
cluster/saltbase/salt/kube-addons/default
+14
-0
init.sls
cluster/saltbase/salt/kube-addons/init.sls
+14
-0
initd
cluster/saltbase/salt/kube-addons/initd
+3
-0
kube-addons.service
cluster/saltbase/salt/kube-addons/kube-addons.service
+1
-0
kube-addons.sh
cluster/saltbase/salt/kube-addons/kube-addons.sh
+31
-7
No files found.
cluster/saltbase/salt/kube-addons/default
0 → 100644
View file @
ae3a0fe6
#TODO(erictune): once we make DNS a hard requirement for clusters, then this can be removed,
# and APISERVER_URL="https://kubernetes:443"
{% if grains.api_servers is defined -%}
{% set api_server = "https://" + grains.api_servers + ":6443" -%}
{% elif grains.apiservers is defined -%} # TODO(remove after 0.16.0): Deprecated form
{% set api_server = "https://" + grains.apiservers + ":6443" -%}
{% elif grains['roles'][0] == 'kubernetes-master' -%}
{% set master_ipv4 = salt['grains.get']('fqdn_ip4')[0] -%}
{% set api_server = "https://" + master_ipv4 + ":6443" -%}
{% else -%}
{% set ips = salt['mine.get']('roles:kubernetes-master', 'network.ip_addrs', 'grain').values() -%}
{% set api_server = "https://" + ips[0][0] + ":6443" -%}
{% endif -%}
export APISERVER_URL={{ api_server }}
cluster/saltbase/salt/kube-addons/init.sls
View file @
ae3a0fe6
...
@@ -48,6 +48,20 @@
...
@@ -48,6 +48,20 @@
- makedirs: True
- makedirs: True
{% endif %}
{% endif %}
{% if grains['os_family'] == 'RedHat' %}
{% set environment_file = '/etc/sysconfig/kube-addons' %}
{% else %}
{% set environment_file = '/etc/default/kube-addons' %}
{% endif %}
{{ environment_file }}:
file.managed:
- source: salt://kube-addons/default
- template: jinja
- user: root
- group: root
- mode: 644
/etc/kubernetes/kube-addons.sh:
/etc/kubernetes/kube-addons.sh:
file.managed:
file.managed:
- source: salt://kube-addons/kube-addons.sh
- source: salt://kube-addons/kube-addons.sh
...
...
cluster/saltbase/salt/kube-addons/initd
View file @
ae3a0fe6
...
@@ -21,6 +21,9 @@ PIDFILE=/var/run/$NAME.pid
...
@@ -21,6 +21,9 @@ PIDFILE=/var/run/$NAME.pid
SCRIPTNAME
=
/etc/init.d/
$NAME
SCRIPTNAME
=
/etc/init.d/
$NAME
KUBE_ADDONS_SH
=
/etc/kubernetes/kube-addons.sh
KUBE_ADDONS_SH
=
/etc/kubernetes/kube-addons.sh
# Read configuration variable file if it is present
[
-r
/etc/default/
$NAME
]
&&
.
/etc/default/
$NAME
# Define LSB log_* functions.
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
# and status_of_proc is working.
...
...
cluster/saltbase/salt/kube-addons/kube-addons.service
View file @
ae3a0fe6
...
@@ -3,6 +3,7 @@ Description=Kubernetes Addon Object Manager
...
@@ -3,6 +3,7 @@ Description=Kubernetes Addon Object Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
[Service]
EnvironmentFile=/etc/sysconfig/kube-addons
ExecStart=/etc/kubernetes/kube-addons.sh
ExecStart=/etc/kubernetes/kube-addons.sh
[Install]
[Install]
...
...
cluster/saltbase/salt/kube-addons/kube-addons.sh
View file @
ae3a0fe6
...
@@ -19,23 +19,47 @@
...
@@ -19,23 +19,47 @@
# managed result is of that. Start everything below that directory.
# managed result is of that. Start everything below that directory.
KUBECTL
=
/usr/local/bin/kubectl
KUBECTL
=
/usr/local/bin/kubectl
function
create-kubernetesauth-secret
()
{
if
[
-z
"
$APISERVER_URL
"
]
;
then
echo
"Must set APISERVER_URL"
exit
1
fi
function
create-kubeconfig-secret
()
{
local
-r
token
=
$1
local
-r
token
=
$1
local
-r
username
=
$2
local
-r
username
=
$2
local
-r
safe_username
=
$(
tr
-s
':_'
'--'
<<<
"
${
username
}
"
)
local
-r
safe_username
=
$(
tr
-s
':_'
'--'
<<<
"
${
username
}
"
)
# Make
secret with a kubernetes_auth file with a
token.
# Make
a kubeconfig file with the
token.
# TODO(etune): put apiserver certs into secret too, and reference from authfile,
# TODO(etune): put apiserver certs into secret too, and reference from authfile,
# so that "Insecure" is not needed.
# so that "Insecure" is not needed.
kafile
=
$(
echo
"{
\"
BearerToken
\"
:
\"
${
token
}
\"
,
\"
Insecure
\"
: true }"
|
base64
-w0
)
read
-r
-d
''
kubeconfig
<<
EOF
read
-r
-d
''
secretjson
<<
EOF
apiVersion: v1
kind: Config
users:
- name:
${
username
}
user:
token:
${
token
}
clusters:
- name: local
cluster:
server:
${
APISERVER_URL
}
insecure-skip-tls-verify: true
contexts:
- context:
cluster: local
user:
${
username
}
name: service-account-context
current-context: service-account-context
EOF
local
-r
kubeconfig_base64
=
$(
echo
"
${
kubeconfig
}
"
|
base64
-w0
)
read
-r
-d
''
secretyaml
<<
EOF
apiVersion: v1beta1
apiVersion: v1beta1
kind: Secret
kind: Secret
id: token-
${
safe_username
}
id: token-
${
safe_username
}
data:
data:
kube
rnetes-auth:
${
kafile
}
kube
config:
${
kubeconfig_base64
}
EOF
EOF
create-resource-from-string
"
${
secret
json
}
"
100 10
"Secret-for-token-for-user-
${
username
}
"
&
create-resource-from-string
"
${
secret
yaml
}
"
100 10
"Secret-for-token-for-user-
${
username
}
"
&
# TODO: label the secrets with special label so kubectl does not show these?
# TODO: label the secrets with special label so kubectl does not show these?
}
}
...
@@ -86,7 +110,7 @@ while read line; do
...
@@ -86,7 +110,7 @@ while read line; do
IFS
=
','
read
-a
parts
<<<
"
${
line
}
"
IFS
=
','
read
-a
parts
<<<
"
${
line
}
"
token
=
${
parts
[0]
}
token
=
${
parts
[0]
}
username
=
${
parts
[1]
}
username
=
${
parts
[1]
}
create-kube
rnetesauth
-secret
"
${
token
}
"
"
${
username
}
"
create-kube
config
-secret
"
${
token
}
"
"
${
username
}
"
done
< /srv/kubernetes/known_tokens.csv
done
< /srv/kubernetes/known_tokens.csv
for
obj
in
$(
find /etc/kubernetes/addons
-name
\*
.yaml
)
;
do
for
obj
in
$(
find /etc/kubernetes/addons
-name
\*
.yaml
)
;
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment