Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
Kubespray
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Mirror
Kubespray
Commits
ddd92c99
Unverified
Commit
ddd92c99
authored
6 months ago
by
Kubernetes Prow Robot
Committed by
GitHub
6 months ago
Browse files
Options
Downloads
Plain Diff
Merge pull request #11507 from VannTen/cleanup/shell_etcd_reset
Refactor remove-etcd-node
parents
80b2765f
ee0d9c54
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
playbooks/remove_node.yml
+2
-1
2 additions, 1 deletion
playbooks/remove_node.yml
roles/remove-node/remove-etcd-node/tasks/main.yml
+26
-44
26 additions, 44 deletions
roles/remove-node/remove-etcd-node/tasks/main.yml
with
28 additions
and
45 deletions
playbooks/remove_node.yml
+
2
−
1
View file @
ddd92c99
...
...
@@ -30,7 +30,8 @@
roles
:
-
{
role
:
kubespray-defaults
,
when
:
reset_nodes | default(True) | bool
}
-
{
role
:
remove-node/pre-remove
,
tags
:
pre-remove
}
-
{
role
:
remove-node/remove-etcd-node
}
-
role
:
remove-node/remove-etcd-node
when
:
"
'etcd'
in
group_names"
-
{
role
:
reset
,
tags
:
reset
,
when
:
reset_nodes | default(True) | bool
}
# Currently cannot remove first control plane node or first etcd node
...
...
This diff is collapsed.
Click to expand it.
roles/remove-node/remove-etcd-node/tasks/main.yml
+
26
−
44
View file @
ddd92c99
...
...
@@ -2,50 +2,16 @@
-
name
:
Lookup node IP in kubernetes
command
:
>
{{ kubectl }} get nodes {{ node }}
-o jsonpath='{range .status.addresses[?(@.type=="InternalIP")]}{@.address}{"\n"}{end}'
register
:
remove_node_ip
when
:
-
groups['kube_control_plane'] | length >
0
-
('etcd' in group_names)
-
ip is not defined
-
access_ip is not defined
delegate_to
:
"
{{
groups['etcd']
|
first
}}"
failed_when
:
false
-
name
:
Set node IP
set_fact
:
node_ip
:
"
{{
ip
|
default(access_ip
|
default(remove_node_ip.stdout))
|
trim
}}"
when
:
-
('etcd' in group_names)
-
name
:
Make sure node_ip is set
assert
:
that
:
node_ip is defined and node_ip | length >
0
msg
:
"
Etcd
node
ip
is
not
set
!"
when
:
-
('etcd' in group_names)
-
name
:
Lookup etcd member id
shell
:
"
set
-o
pipefail
&&
{{
bin_dir
}}/etcdctl
member
list
|
grep
-w
{{
node_ip
}}
|
cut
-d,
-f1"
args
:
executable
:
/bin/bash
register
:
etcd_member_id
ignore_errors
:
true
# noqa ignore-errors
-o jsonpath-as-json='{.status.addresses[?(@.type=="InternalIP")].address}'
register
:
k8s_node_ips
changed_when
:
false
check_mode
:
false
tags
:
-
facts
environment
:
ETCDCTL_API
:
"
3"
ETCDCTL_CERT
:
"
{{
kube_cert_dir
+
'/etcd/server.crt'
if
etcd_deployment_type
==
'kubeadm'
else
etcd_cert_dir
+
'/admin-'
+
groups['etcd']
|
first
+
'.pem'
}}"
ETCDCTL_KEY
:
"
{{
kube_cert_dir
+
'/etcd/server.key'
if
etcd_deployment_type
==
'kubeadm'
else
etcd_cert_dir
+
'/admin-'
+
groups['etcd']
|
first
+
'-key.pem'
}}"
ETCDCTL_CACERT
:
"
{{
kube_cert_dir
+
'/etcd/ca.crt'
if
etcd_deployment_type
==
'kubeadm'
else
etcd_cert_dir
+
'/ca.pem'
}}"
ETCDCTL_ENDPOINTS
:
"
https://127.0.0.1:2379"
delegate_to
:
"
{{
groups['etcd']
|
first
}}"
when
:
('etcd' in group_names)
when
:
-
groups['kube_control_plane'] | length >
0
-
ip is not defined
-
access_ip is not defined
delegate_to
:
"
{{
groups['kube_control_plane']
|
first
}}"
-
name
:
Remove etcd member from cluster
command
:
"
{{
bin_dir
}}/etcdctl
member
remove
{{
etcd_member_id.stdout
}}"
environment
:
ETCDCTL_API
:
"
3"
ETCDCTL_CERT
:
"
{{
kube_cert_dir
+
'/etcd/server.crt'
if
etcd_deployment_type
==
'kubeadm'
else
etcd_cert_dir
+
'/admin-'
+
groups['etcd']
|
first
+
'.pem'
}}"
...
...
@@ -53,6 +19,22 @@
ETCDCTL_CACERT
:
"
{{
kube_cert_dir
+
'/etcd/ca.crt'
if
etcd_deployment_type
==
'kubeadm'
else
etcd_cert_dir
+
'/ca.pem'
}}"
ETCDCTL_ENDPOINTS
:
"
https://127.0.0.1:2379"
delegate_to
:
"
{{
groups['etcd']
|
first
}}"
when
:
-
('etcd' in group_names)
-
etcd_member_id.stdout | length >
0
block
:
-
name
:
Lookup members infos
command
:
"
{{
bin_dir
}}/etcdctl
member
list"
register
:
etcd_members
changed_when
:
false
check_mode
:
false
tags
:
-
facts
-
name
:
Remove member from cluster
vars
:
node_ip
:
"
{{
ip
if
ip
is
defined
else
(access_ip
if
access_ip
is
defined
else
(k8s_node_ips.stdout
|
from_json)[0])
}}"
command
:
argv
:
-
"
{{
bin_dir
}}/etcdctl"
-
member
-
remove
-
"
{{
((etcd_members.stdout_lines
|
select('contains',
'//'
+
node_ip
+
':'))[0]
|
split(','))[0]
}}"
register
:
etcd_removal_output
changed_when
:
"
'Removed
member'
in
etcd_removal_output.stdout"
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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