githubixx.cilium_kubernetes
cilium-kubernetes
ãã®AnsibleããŒã«ã¯ãKubernetesã¯ã©ã¹ã¿ãŒã«Ciliumãããã¯ãŒã¯ãã€ã³ã¹ããŒã«ããŸããå éšã§ã¯ãå ¬åŒã®Helmãã£ãŒãã䜿çšããŠããŸããçŸåšãCiliumã®ãããã€ã¡ã³ãã®ã€ã³ã¹ããŒã«ãã¢ããã°ã¬ãŒããããã³åé€ãªã©ã®æé ããµããŒããããŠããŸãã
ããŒãžã§ã³
ãã¹ãŠã®ãªãªãŒã¹ã«ã¿ã°ãä»ããŠãããã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã«åŸãããã«ããŠããŸãããã®ããŒã«ã䜿çšããå Žåã¯ãææ°ã®ã¿ã°ããã§ãã¯ã¢ãŠãããããšããå§ãããŸãããã¹ã¿ãŒãã©ã³ãã¯åºæ¬çã«éçºã®ããã®ãã®ã§ãããã¿ã°ã¯å®å®ãããªãªãŒã¹ã瀺ããŸãããã ããäžè¬çã«ãã¹ã¿ãŒãè¯å¥œãªç¶æ
ã«ä¿ã€ããã«åªåããŠããŸããã¿ã° 13.0.0+1.15.3 ã¯ããã®ããŒã«ã®ãªãªãŒã¹ 13.0.0 ã§ãããCiliumãã£ãŒãã®ããŒãžã§ã³ 1.15.3 ãå«ãã§ããããšãæå³ããŸããããŒã«èªäœã倿Žããããšã X.Y.Z ã®éšåãå¢å ããŸãããŸããCiliumãã£ãŒãã®ããŒãžã§ã³ã倿Žããããšã + ã®åŸã® X.Y.Z ãå¢å ããŸããããã«ãããç¹å®ã®CiliumãªãªãŒã¹ã®éçºãç¶ããŠããéã§ãããã°ä¿®æ£ãæ°ããã¡ãžã£ãŒããŒãžã§ã³ã®ã¿ã°ä»ããå¯èœã«ãªããŸãã
èŠä»¶
ansible-playbook ãå®è¡ããããã¹ãããŸãã¯ãã¬ã€ããã¯ãå§ä»»ããããã¹ãïŒäŸïŒcilium_delegate_to 倿°ã䜿çšïŒã«ã¯ãHelm 3ã®ãã€ããªãã€ã³ã¹ããŒã«ãããŠããå¿
èŠããããŸãã以äžã®ããããã䜿çšã§ããŸãã
- ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãªããžããªã«
helmãå«ãŸããŠããå Žåã¯ãã奜ããªããã±ãŒãžãããŒãžã£ãŒã䜿çšããŸãïŒArchlinuxã®å Žåãsudo pacman -S helmãªã©ïŒã - Ansibleã®
HelmããŒã«ïŒäŸïŒhelmïŒã®ãã¡ã®äžã€ã䜿çšããŸãïŒãã®ããŒã«ã䜿çšããå Žåãansible-galaxy role install -vr requirements.ymlã§ã€ã³ã¹ããŒã«ãããŸãïŒã - ãŸãã¯ãHelmã®ãªãªãŒã¹ãããã€ããªãçŽæ¥ããŠã³ããŒããã
/usr/local/bin/ãã£ã¬ã¯ããªã«é 眮ããŸãã
é©åã«èšå®ããã KUBECONFIG ãå¿
èŠã§ãïŒããã©ã«ãã§ã¯ ${HOME}/.kube/config ã«ãããŸãïŒãéåžžãkubectl ãã¯ã©ã¹ã¿ãŒã§åäœããå Žåããã®ç¹ã«ã€ããŠã¯åé¡ãããŸããã
ããã«ãAnsibleã® kubernetes.core ã³ã¬ã¯ã·ã§ã³ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããããã¯ããã®ããŒã«ã«å«ãŸããŠãã collections.yml ãã¡ã€ã«ã䜿ã£ãŠæ¬¡ã®ããã«å®è¡ã§ããŸãïŒ ansible-galaxy install -r collections.ymlã
ãã¡ãããKubernetesã¯ã©ã¹ã¿ãŒãå¿ èŠã§ã ;-)
ã€ã³ã¹ããŒã«
GitHubããçŽæ¥ããŠã³ããŒãããŸãïŒã¯ããŒã³ããåã«AnsibleããŒã«ãã£ã¬ã¯ããªã«ç§»åããŠãã ãããããŒã«ãã¹ã¯
ansible-config dump | grep DEFAULT_ROLES_PATHã³ãã³ãã§ç¢ºèªã§ããŸãïŒïŒgit clone https://github.com/githubixx/ansible-role-cilium-kubernetes.git githubixx.cilium_kubernetesansible-galaxyã³ãã³ããä»ããŠãAnsible GalaxyããçŽæ¥ããŠã³ããŒãããŸãïŒansible-galaxy install role githubixx.cilium_kubernetes次ã®å 容ã§
requirements.ymlãã¡ã€ã«ãäœæãïŒããã«ããGitHubããããŒã«ãããŠã³ããŒããããŸãïŒãansible-galaxy role install -r requirements.ymlã§ã€ã³ã¹ããŒã«ããŸãïŒå¿ èŠã«å¿ããŠversionã倿ŽããŠãã ããïŒïŒ
---
roles:
- name: githubixx.cilium_kubernetes
src: https://github.com/githubixx/ansible-role-cilium-kubernetes.git
version: 13.0.0+1.15.3
倿Žå±¥æŽ
倿Žå±¥æŽ:
å®å šãªCHANGELOG.mdãã芧ãã ããã
æè¿ã®å€æŽ:
13.0.0+1.15.3
ç Žå£ç倿Ž
templates/cilium_values_default.yml.j2ã«å€æŽïŒkubeProxyReplacementãnodePortãããã³socketLBã远å ããŸããïŒããã¯BPFãã¹ã«ã¬ãŒããNodePortãå¿ èŠãšããããã§ãïŒã
æŽæ°
- Cilium
v1.15.3ã«ã¢ããã°ã¬ãŒãããŸããã
Molecule
- Vagrant
generic/ubuntu2204ããã¯ã¹ãalvistack/ubuntu-22.04ã«çœ®ãæããŸããã
12.0.0+1.15.0
- Cilium
v1.15.0ã«ã¢ããã°ã¬ãŒãããŸããã - Moleculeèšå®ããªãã¡ã¯ã¿ãªã³ã°ããŸããã
cilium_chart_values_directory倿°ãå°å ¥ããŸããã
ããŒã«å€æ°
# Helmãã£ãŒãããŒãžã§ã³
cilium_chart_version: "1.15.3"
# Helmãã£ãŒãå
cilium_chart_name: "cilium"
# Helmãã£ãŒãURL
cilium_chart_url: "https://helm.cilium.io/"
# CiliumãªãœãŒã¹ãã€ã³ã¹ããŒã«ããKubernetesããŒã ã¹ããŒã¹
cilium_namespace: "cilium"
# Helmãã£ãŒãã®å€ãã¡ã€ã«ãå«ãŸãããã£ã¬ã¯ããªãAnsibleã¯æå®ããããã£ã¬ã¯ããªå
ã§
# "values.yml.j2"ãŸã㯠"values.yaml.j2" ãšãããã¡ã€ã«ãæ¢ããŸã
# ïŒ".j2" ã¯éåžžã®Jinja2ãã³ãã¬ãŒãèšæ³ã䜿çšã§ããããïŒã
# èŠã€ãããªãå Žåã¯ãããã©ã«ãã® "templates/cilium_values_default.yml.j2" ã
# 䜿çšãããŸãïŒããã¯ãã³ãã¬ãŒããšããŠã䜿çšã§ããŸãïŒããã®ãã¡ã€ã«ã®å
容ã¯
# "helm install/template" ã³ãã³ãã®å€ãã¡ã€ã«ãšããŠæäŸãããŸãã
cilium_chart_values_directory: "/tmp/cilium/helm"
# etcdèšå®ã"cilium_etcd_enabled" 倿°ãå®çŸ©ããã"true" ã«èšå®ãããŠããå Žåã
# Ciliumã®etcdèšå®ãçæãããŠãããã€ãããŸããããã§ãªãå Žåã¯ããã¹ãŠã®
# "cilium_etcd_*" èšå®ã¯ç¡èŠãããŸãã
cilium_etcd_enabled: "true"
# etcdããŒã¢ã³ããªãã¹ã³ããŠããã€ã³ã¿ãŒãã§ãŒã¹ãããetcdããŒã¢ã³ã
# WireGuardã€ã³ã¿ãŒãã§ãŒã¹ã«ãã€ã³ããããŠããå Žåããã®èšå®ã¯
# "wg0"ïŒããã©ã«ãïŒã«ãªãã¹ãã§ããäŸãã°ã
# ããç§ã®etcdããŒã«ã䜿ã£ãŠããå Žåã"{{ etcd_interface }}" ã®ãããª
# 倿°ã䜿çšããããšãã§ããŸãïŒè©³çްã¯
# https://github.com/githubixx/ansible-role-etcdïŒ
cilium_etcd_interface: "eth0"
# etcdããŒã¢ã³ããªãã¹ã³ããŠããããŒã
cilium_etcd_client_port: 2379
# Ansibleã®etcdãã¹ãã°ã«ãŒãããã㯠"templates/cilium_values_default.yml.j2"
# ãã³ãã¬ãŒãã§ãetcdããŒã¢ã³ããªãã¹ã³ããŠãããã¹ãã®IPã¢ãã¬ã¹ã
# 倿ããããã«äœ¿çšãããŸãã
cilium_etcd_nodes_group: "k8s_etcd"
# ãã®å€æ°ãå®çŸ©ããããšã"cilium_etcd_cafile"ã"cilium_etcd_certfile"ã
# "cilium_etcd_keyfile" ã§å®çŸ©ãããèšŒææžãã¡ã€ã«ãå«ãKubernetesã·ãŒã¯ã¬ããã
# ã€ã³ã¹ããŒã«ãããŸãã
# ããã«ãããetcdã«ã»ãã¥ã¢ãªæ¥ç¶ïŒhttpsïŒã確ç«ãããŸãã
# ãã¡ãããããã¯etcdãSSL/TLSã䜿çšããããã«èšå®ãããŠããå¿
èŠããããŸãã
# ãã®å€ãå®çŸ©ãããŠããªãå ŽåïŒäŸïŒã³ã¡ã³ãã¢ãŠããããå ŽåïŒãæ®ãã®
# "cilium_etcd_*" èšå®ã¯ç¡èŠãããetcdã«ã¯éã»ãã¥ã¢ãª "http" çµç±ã§æ¥ç¶ãããŸãã
cilium_etcd_secrets_name: "cilium-etcd-secrets"
# å®çŸ©ãããèšŒææžãã¡ã€ã«ã®å Žæãç§ã®KubernetesèšŒææžèªèšŒæ©é¢ããŒã«ã䜿çšããŠããå Žå
# ïŒhttps://github.com/githubixx/ansible-role-kubernetes-caïŒããã§ã«
# "k8s_ca_conf_directory" 倿°ãå®çŸ©ãããŠãããããããŸãã
# ãã®ããŒã«ã¯ã以äžã®å€æ°ã§äœ¿çšã§ããèšŒææžãã¡ã€ã«ãçæããŸãã
# ããã©ã«ãã§ã¯ããã㯠"ansible-playbook" ã³ãã³ããå®è¡ãããŠãŒã¶ãŒã®
# "$HOME/k8s/certs" ã«ãªããŸãã
cilium_etcd_cert_directory: "{{ '~/k8s/certs' | expanduser }}"
# etcdèšŒææžèªèšŒæ©é¢ãã¡ã€ã«ïŒãã¡ã€ã«ã¯ "cilium_etcd_cert_directory" ããååŸãããŸãïŒ
cilium_etcd_cafile: "ca-etcd.pem"
# etcdèšŒææžãã¡ã€ã«ïŒãã¡ã€ã«ã¯ "cilium_etcd_cert_directory" ããååŸãããŸãïŒ
# èšŒææžã«ã¯ãetcdããŒã¢ã³ããªãã¹ã³ããŠããã€ã³ã¿ãŒãã§ãŒã¹ã®
# "Subject Alternative Name" (SAN) ã«IPã¢ãã¬ã¹ãå«ãŸããŠããããšã
# 確ä¿ããŠãã ããïŒããã "cilium_etcd_interface" ã§å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ã®
# IPã¢ãã¬ã¹ã§ãïŒããã®åŠçã¯ãç§ã®KubernetesèšŒææžèªèšŒæ©é¢ããŒã«ãè¡ããŸãã
cilium_etcd_certfile: "cert-cilium.pem"
# etcdèšŒææžããŒæä»¶ïŒãã¡ã€ã«ã¯ "cilium_etcd_cert_directory" ããååŸãããŸãïŒ
cilium_etcd_keyfile: "cert-cilium-key.pem"
# ããã©ã«ãã§ã¯ãKubernetesã¯ã©ã¹ã¿ãšéä¿¡ããå¿
èŠã®ãããã¹ãŠã®ã¿ã¹ã¯ã
# ããŒã«ã«ãã¹ãïŒ127.0.0.1ïŒã§å®è¡ãããŸããããããããããã®ã¯ã©ã¹ã¿ã«çŽæ¥
# æ¥ç¶ã§ããªãå ŽåããŸãã¯ä»ã®å Žæã§å®è¡ããå¿
èŠãããå Žåã¯ã
# ãã®å€æ°ãé©å®å€æŽã§ããŸãã
cilium_delegate_to: 127.0.0.1
# ã¿ã¹ã¯ãHelmã䜿çšããŠãªãœãŒã¹ãã€ã³ã¹ããŒã«ãæŽæ°/ã¢ããã°ã¬ãŒãã
# ãŸãã¯åé€ããå Žåã«å®è¡ããã "helm" ã³ãã³ãã衚瀺ããŸãã
cilium_helm_show_commands: false
# "cilium_action" 倿°ãå®çŸ©ãããŠããªãå Žåããã®ããŒã«ã¯ã€ã³ã¹ããŒã«ãŸãã¯
# ã¢ããã°ã¬ãŒãããããã¹ãŠã®ãªãœãŒã¹ãå«ãYAMLãã¡ã€ã«ããã çæããŸãã
# çæããããªãœãŒã¹ã®ãã¡ã€ã«ã¯ "template.yml" ãšåŒã°ãã
# äžèšã®æå®ããããã£ã¬ã¯ããªã«é
眮ãããŸãã
cilium_template_output_directory: "{{ '~/cilium/template' | expanduser }}"
äœ¿çšæ¹æ³
æåã«è¡ãã¹ãããšã¯ãtemplates/cilium_values_default.yml.j2 ã確èªããããšã§ãããã®ãã¡ã€ã«ã«ã¯ãããã©ã«ãå€ïŒãã¡ãã«ãããŸãïŒãšã¯ç°ãªãCilium Helmãã£ãŒãã®å€/èšå®ãå«ãŸããŠããŸãããã®AnsibleããŒã«ã®ããã©ã«ãå€ã¯ãTLSãæå¹åããã etcd ã¯ã©ã¹ã¿ãŒã䜿çšããŠããŸããèªå·±ãã¹ãåã®Kubernetesã¯ã©ã¹ã¿ãŒã®å ŽåãKubernetes APIãµãŒããŒã®ããã«ãã§ã«å®è¡ãããŠãã etcd ã¯ã©ã¹ã¿ãŒãååšããå¯èœæ§ãé«ãã§ããç§ã¯èªåã®Ansible etcdããŒã«ã䜿çšããŠããã®ãã㪠etcd ã¯ã©ã¹ã¿ãŒãã€ã³ã¹ããŒã«ããŠãããç§ã® Kubernetes Certificate AuthorityããŒã«ã䜿çšããŠèšŒææžãçæããŠããŸãããããã£ãŠãç§ã®ããŒã«ã䜿çšããå Žåããã®CiliumããŒã«ãåºæ¬çã«ãã®ãŸãŸå©çšã§ããŸãã
templates/cilium_values_default.yml.j2 ãã³ãã¬ãŒãã«ã¯ãTLSãæå¹ã§ãªãetcdã¯ã©ã¹ã¿ã䜿çšããããã®ããã€ãã® if æ¡ä»¶ãå«ãŸããŠããŸããã©ã®å€ã倿Žã§ãããã¯ã defaults/main.yml ã確èªããŠãã ãããç¬èªã®å€æ°ãå°å
¥ããããšãã§ããŸããç¬èªã®å€ã䜿çšããã«ã¯ãvalues.yml.j2 ãŸã㯠values.yaml.j2 ãšãããã¡ã€ã«ãäœæããŠãcilium_chart_values_directory ã§æå®ããããã£ã¬ã¯ããªã«é
眮ããŠãã ããããããšããã®ããŒã«ã¯ãã®ãã¡ã€ã«ã䜿çšããŠHelmã®å€ãçæããŸãã
å€ãã¡ã€ã«ãæºåã§ããdefaults/main.yml ã®å€ã確èªã§ããããããŒã«ãã€ã³ã¹ããŒã«ã§ããŸãããã®ããŒã«ã®ã¿ã¹ã¯ã®ã»ãšãã©ã¯ããã©ã«ãã§ããŒã«ã«ã§å®è¡ããããããKubernetes APIãµãŒããŒãšéä¿¡ããå¿
èŠãããã¿ã¹ã¯ãHelmã³ãã³ããå®è¡ããããã®ã¿ã¹ã¯ãããã€ããããŸãããããã cilium_delegate_to 倿°ã䜿çšããããšã«ããããã®çš®ã®ã¿ã¹ã¯ãå¥ã®ãã¹ãã«å§ä»»ã§ããŸãïŒäžèšåç
§ïŒãå§ä»»ããããã¹ãã«ã¯Kubernetes APIãµãŒããŒãžã®æ¥ç¶ãããããŠãŒã¶ãŒãæå¹ãª KUBECONFIG ãã¡ã€ã«ãæã£ãŠããããšã確èªããŠãã ããã
ããã©ã«ãã¢ã¯ã·ã§ã³ã¯ããã¹ãŠã®Jinja2倿°ãšãã®ã»ãã®éšåã眮ãæããåŸã«KubernetesãªãœãŒã¹ã®YAMLãã¡ã€ã«ãåã«çæããããšã§ãã以äžã®ãExample Playbookãã»ã¯ã·ã§ã³ã«ã¯ãExample 2 (assign tag to role)ããããŸããããŒã« githubixx.cilium_kubernetes ã«ã¯ãrole-cilium-kubernetes ãšããã¿ã°ãä»ããŠããŸããHelmãã£ãŒãã®å€ãçæããããšãæ³å®ããŠããŸãïŒãã®å Žåãã€ã³ã¹ããŒã«ã¯è¡ãããŸããïŒããã¬ã€ããã¯ã k8s.yml ã§ãããšä»®å®ããŠã次ã®ã³ãã³ããå®è¡ããŸãïŒ
ansible-playbook --tags=role-cilium-kubernetes k8s.yml
ãã³ãã¬ãŒããå¥ã®ãã£ã¬ã¯ããªã«çæããã«ã¯ãcilium_template_output_directory 倿°ã䜿çšããŸããäŸãã°ïŒ
ansible-playbook --tags=role-cilium-kubernetes --extra-vars cilium_template_output_directory="/tmp/cilium" k8s.yml
å®è¡ããã helm ã³ãã³ããšãã©ã¡ãŒã¿ããã°ã«è¡šç€ºãããå Žåã¯ã--extra-vars cilium_helm_show_commands=true ãæå®ããããšãã§ããŸãã
æçµã¿ã¹ã¯ã®äžã€ã¯ãTASK [githubixx.cilium_kubernetes : Write templates to file] ãšåŒã°ããŠããŸããããã¯ãçæããããªãœãŒã¹ãå«ããã³ãã¬ãŒãã cilium_template_output_directory ã§æå®ããããã£ã¬ã¯ããªã«æžã蟌ããã®ã§ãããã¡ã€ã«ã¯ template.yml ãšåŒã°ããããªãã®ããŒã«ã«ãã·ã³ã«é
眮ãããŠãæ€æ»ã§ããããã«ãªããŸãã
çæãããåºåã«å¿ èŠãªãã®ããã¹ãŠå«ãŸããŠããå ŽåãããŒã«ãã€ã³ã¹ããŒã«ããããšã§Ciliumããããã€ãããŸãïŒ
ansible-playbook --tags=role-cilium-kubernetes --extra-vars cilium_action=install k8s.yml
ãã¹ãŠããããã€ãããã確èªããããã«ã¯ãéåžžã® kubectl ã³ãã³ãïŒäŸïŒ kubectl -n <cilium_namespace> get pods -o wideïŒã䜿çšããŸãã
Cilium ã¯æ°é±é/æããšã«ã¢ããããŒã/ã¢ããã°ã¬ãŒããè¡ããããããŒã«ã§ãã¢ããã°ã¬ãŒããå¯èœã§ããããŒã«ã¯åºæ¬çã«Ciliumã¢ããã°ã¬ãŒãã¬ã€ãã«èšèŒãããŠããå
容ãå®è¡ããŸããã€ãŸããCiliumã®äºåãã§ãã¯ãã€ã³ã¹ããŒã«ãããå®éã«ã¢ããããŒããè¡ãããåã«ããã€ãã®ãã§ãã¯ãå®è¡ãããŸããã¢ããããŒãã®ååŸã«äœãèµ·ããããèŠãã«ã¯ãtasks/upgrade.yml ã確èªããŠãã ããããã¡ãããã¢ããã°ã¬ãŒãã®åã«Ciliumã¢ããã°ã¬ãŒãã¬ã€ããåç
§ããäž»ãªå€æŽäºé
ã確èªããŠãã ããããŸããã¢ããã°ã¬ãŒãããŒãã確èªããŠãã ããïŒ
ã¢ããã°ã¬ãŒããæåããªãã£ãå ŽåãããŒã«ããã¯ã¯åºæ¬çã« cilium_chart_version 倿°ã倿Žããã ãã§éå§ã§ããŸããããããCiliumã®ããŒã«ããã¯ã¬ã€ããå¿
ãèªãã§ãã ããããã€ããŒãªãªãŒã¹éã®åãæ¿ãã¯éåžžåé¡ãããŸããããã¡ãžã£ãŒãªãªãŒã¹ã®åãæ¿ãã¯ããŸãç°¡åã§ãªãããšããããŸãã
ãŸããtemplates/cilium_values_default_pre_flight_check.yml.j2 ã確èªããŠãã ãããäºåãã§ãã¯çšã®å€ã調æŽããå¿
èŠãããå Žåã¯ããã®ãã¡ã€ã«ã倿Žããããç¬èªã®å€ã§ templates/cilium_values_user_pre_flight_check.yml.j2 ãšãããã¡ã€ã«ãäœæã§ããŸãã
ã¢ããã°ã¬ãŒããè¡ãåã«ãåºæ¬çã«ã¯ cilium_chart_version 倿°ã 1.13.4 ãã 1.14.5 ã«å€æŽããã ãã§ã 1.13.4 ãã 1.14.5 ã«ã¢ããã°ã¬ãŒãã§ããŸããã¢ããããŒããè¡ãã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãïŒ
ansible-playbook --tags=role-cilium-kubernetes --extra-vars cilium_action=upgrade k8s.yml
ãã§ã«è¿°ã¹ãããã«ãããŒã«ã«ã¯ã¢ããã°ã¬ãŒããã¹ã ãŒãºã«é²ãããã«ããããã®ããã€ãã®ãã§ãã¯ãå«ãŸããŠããŸãããã¢ããã°ã¬ãŒãåŸã«ãã¹ãŠãæåŸ
éãã«åäœããããå床 kubectl ã§ç¢ºèªããŠãã ããã
æåŸã«ãCiliumãåé€ãããå Žåã¯ããã¹ãŠã®ãªãœãŒã¹ãå床åé€ã§ããŸãïŒ
ansible-playbook --tags=role-cilium-kubernetes --extra-vars cilium_action=delete k8s.yml
CNIãã©ã°ã€ã³ãæ§æãããŠããªãå Žåãããã«ããKubernetesã¯ãŒã«ãŒããŒãã® kubelet ããã»ã¹ãææCNIãšã©ãŒãçºè¡ããŸãããªããªãããã¯ãCNIã«é¢é£ãããã®ããªãããã§ããããã¡ããç°ãªããã¹ãäžã®ãããéã®æ¥ç¶æ§ã倱ããããããã¯ãŒã¯ããªã·ãŒãªã©ãé€å€ãããããšã«ãªããŸãã
äŸãã¬ã€ããã¯
äŸ1ïŒããŒã«ã¿ã°ãªãïŒïŒ
- hosts: k8s_worker
roles:
- githubixx.cilium_kubernetes
äŸ2ïŒããŒã«ã«ã¿ã°ãå²ãåœãŠãïŒïŒ
-
hosts: k8s_worker
roles:
-
role: githubixx.cilium_kubernetes
tags: role-cilium-kubernetes
ãã¹ã
ãã®ããŒã«ã«ã¯ãå°ããªãã¹ãã»ããã¢ããããããMoleculeãlibvirt (vagrant-libvirt)ãããã³QEMU/KVMã䜿çšããŠäœæãããŠããŸãããã¹ãã®ã»ããã¢ããæ¹æ³ã«ã€ããŠã¯ãç§ã®ããã°èšäº Testing Ansible roles with Molecule, libvirt (vagrant-libvirt) and QEMU/KVM ãåç §ããŠãã ããããã¹ãèšå®ã¯ãã¡ãã§ãã
ãã®åŸãmoleculeãå®è¡ã§ããŸããæ¬¡ã®ã³ãã³ãã¯åºæ¬çãªã»ããã¢ãããè¡ããçæããããªãœãŒã¹ã®ãã³ãã¬ãŒããäœæããŸãïŒããã©ã«ãã¢ã¯ã·ã§ã³ãåç §ïŒïŒ
molecule converge
Ciliumãšå¿
èŠãªãªãœãŒã¹ãã€ã³ã¹ããŒã«ããŸããããã«ãããããã€ãã®ä»®æ³ãã·ã³ïŒVMïŒãèšå®ãããKubernetesã¯ã©ã¹ã¿ãŒãã€ã³ã¹ããŒã«ãããŸãããã®ã»ããã¢ããã䜿ã£ãŠãã®ããŒã«ã䜿çšã㊠Cilium ãã€ã³ã¹ããŒã«ããŸãã
molecule converge -- --extra-vars cilium_action=install
次ã®ã³ãã³ãã¯ãKubernetesã®DNSé¢é£ã®äœæ¥ã®ããã«CoreDNSãã€ã³ã¹ããŒã«ããCiliumãããã®ã¿ãå®è¡ããããã«ã³ã³ãããŒã«ããŒãã«æ±æãå ããŸãïŒ
molecule converge -- --extra-vars cilium_setup_networking=install
Ciliumã®ã¢ããã°ã¬ãŒãããã©ã¡ãŒã¿ã®å€æŽïŒ
molecule converge -- --extra-vars cilium_action=upgrade
Ciliumãšãã®ãªãœãŒã¹ãåé€ïŒ
molecule converge -- --extra-vars cilium_action=delete
ããã€ãã®ãã¹ããå®è¡ããã«ã¯ã以äžã®ã³ãã³ãã䜿çšããŸãïŒå¿
èŠã«å¿ã㊠-v ã远å ããŠè©³çްãªåºåãåŸãããšãã§ããŸãïŒïŒ
molecule verify
ã¯ãªãŒã³ã¢ãããè¡ãã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãïŒ
molecule destroy
ã©ã€ã»ã³ã¹
GNUäžè¬å ¬è¡ã©ã€ã»ã³ã¹ããŒãžã§ã³3
äœè æ å ±
Installs Cilium network on a Kubernetes cluster.
ansible-galaxy install githubixx.cilium_kubernetes