kcli 99.0.202601130934__py3-none-any.whl → 99.0.202601191511__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kcli
3
- Version: 99.0.202601130934
3
+ Version: 99.0.202601191511
4
4
  Summary: Provisioner/Manager for Libvirt/Vsphere/Aws/Gcp/Hcloud/Kubevirt/Ovirt/Openstack/IBM Cloud and containers
5
5
  Home-page: http://github.com/karmab/kcli
6
6
  Author: Karim Boumedhel
@@ -1,9 +1,9 @@
1
- kcli-99.0.202601130934.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
1
+ kcli-99.0.202601191511.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
2
2
  kvirt/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
3
3
  kvirt/baseconfig.py,sha256=QG_AHI1_HAgHwIdZSm1BXkpn9pW35kTMUkFOb7UE_wY,83513
4
4
  kvirt/bottle.py,sha256=K24aCQYSylDpkxmLYGygSpAJ4MlMqMk85AMpbCWA43c,175729
5
5
  kvirt/cli.py,sha256=EuroGNpbC4Ze7dOtE-mjjsxZ913pOTsrrbEXIyG9bPw,265630
6
- kvirt/config.py,sha256=Vw_9kP7IYRk4kiY-95Ku98TWdt6ZVSGNMGFSNspoYhk,184633
6
+ kvirt/config.py,sha256=JGXaAj4YjCl3woml15PLwJ5cNc36SzX-g9_MSbfCB2Q,184556
7
7
  kvirt/containerconfig.py,sha256=qbvOWwFlyU2F-4rZn9PLj97wDnSBIwAYA6Xlxr13OOc,2329
8
8
  kvirt/defaults.py,sha256=vZFFUI_hegVf2W2Zle0fTcSQNhcStJGWXtrBXTYE22E,12401
9
9
  kvirt/ekstoken.py,sha256=MjK_tcLFl2VKxqgTSB4ve_kybZw5dBj2H6BezGGtBpM,1475
@@ -66,27 +66,28 @@ kvirt/cluster/k3s/workers.sh,sha256=ErZ5T8uEV8iV7PczVHY4bHXtFC3fsKVtF3k5tS_0vkc,
66
66
  kvirt/cluster/k3s/workers.yml,sha256=HD1MkMcRKwvFndoMJOS8fC1f_O1vfzi27PVwR4GN_7k,709
67
67
  kvirt/cluster/kubeadm/10-flannel.link,sha256=A3vdnP3LIhIyF07oG_AOVPnikQ1AvXuE-FIdhmi8Iqk,59
68
68
  kvirt/cluster/kubeadm/90-flannel.rules,sha256=FJGctcom8HKGD_VKSJkKFAVv8GznTkY6ORxZNRIFB0Q,302
69
- kvirt/cluster/kubeadm/__init__.py,sha256=NpZRuddBtSu-lDF_u7r79_4qqv5L3ga9WTfrh-n4URQ,17579
70
- kvirt/cluster/kubeadm/bootstrap.sh,sha256=qmOj0jVVE4loqShC1z_ASqY9eNr6lmfSYjxi3ZKmPKY,3267
71
- kvirt/cluster/kubeadm/bootstrap.yml,sha256=MwM1DyrB66RzDFn3VMczSkeJpfI8qrOIdCVctTmmmmA,1708
69
+ kvirt/cluster/kubeadm/__init__.py,sha256=ks_HsnLnoj3YDQ27BK454y1IQ1drfvLSKFS--5hCeeY,17724
70
+ kvirt/cluster/kubeadm/bootstrap.sh,sha256=8qlEPsrg2NuU9Rv7zcXCJfBX6VPUNjCEWLjeAVlTuBU,1067
71
+ kvirt/cluster/kubeadm/bootstrap.yml,sha256=Zr9_SXwk_w0oL2DueuGW8IUXfxY3kIV-ZxfgH600OhM,1718
72
72
  kvirt/cluster/kubeadm/cloud_lb_api.yml,sha256=dTH4qdnvhPRk0mhZh1tkX8D9Zsg24nvmC4cxXMRNxJk,338
73
- kvirt/cluster/kubeadm/config_bootstrap.yaml,sha256=b33L1C-56tts0rwTpflJiVGsZbvcyRUJD9dzg-_uf4g,2130
73
+ kvirt/cluster/kubeadm/config_bootstrap.yaml,sha256=wd14Hz5JcW2cbnICdU-kLs7_pv_7BqeRveiS30UsEbM,2594
74
74
  kvirt/cluster/kubeadm/config_join.yaml,sha256=SS3eAzHmcpPFsi9Pl1XZCvxJhBaJFMxXWdp60rN3Cnk,520
75
- kvirt/cluster/kubeadm/containerd.sh,sha256=SjeR5lzTSBwuejirgnx0WStgOOmZrmEkTwrHhKF6138,3074
75
+ kvirt/cluster/kubeadm/containerd.sh,sha256=woxFoVahQMLshoJ2i8lqk2X3KLscrfUYiJyolK1gfMw,3059
76
76
  kvirt/cluster/kubeadm/crictl.yaml,sha256=rVJjlcyk2x4-oWbdq7uiNweCmxBCFdEi8F-OWCzvkFA,124
77
77
  kvirt/cluster/kubeadm/crio-d.sh,sha256=Al81MmBGUO4SRX07xOQmRtLDX0yBoPQTBdXLAV4OYr4,3240
78
78
  kvirt/cluster/kubeadm/ctlplanes.yml,sha256=ur38ztsAbvIEl2Jv4sLvYU9wCrx2_fJJ9aiHBJv-Qnk,1428
79
79
  kvirt/cluster/kubeadm/deploy.sh,sha256=aUxbHM5sPvzTivEwCHLqiZud5nAxPqqwyjw453e23N8,362
80
80
  kvirt/cluster/kubeadm/disconnected.yml,sha256=ntIU2kPXJfDJiW9b2aip4QdmricDTUxzZ6ZrwUeH6kc,754
81
81
  kvirt/cluster/kubeadm/join.sh,sha256=JIkMmRDlCzi-MshamKizHUiJCSzshvESjo9inN47ItA,267
82
- kvirt/cluster/kubeadm/kcli_default.yml,sha256=xynok8RbDiavCQNm4zEuZVrOnY_i8-DOj3r9N08s4m8,2477
82
+ kvirt/cluster/kubeadm/kcli_default.yml,sha256=HReKXsi5VhbnoUNymulSYnojHwobElhAq-BjIR3DY4I,2605
83
83
  kvirt/cluster/kubeadm/keepalived.conf,sha256=OwQ_PozqBMzAULPjjJ2TbAHK3n9BE5gyCqkqZ0SFmic,588
84
84
  kvirt/cluster/kubeadm/keepalived.sh,sha256=D4oRKdrjHPERIFc3N8y75vWoDyLeNj1xk1WCVFEpm8Y,470
85
85
  kvirt/cluster/kubeadm/nfs.sh,sha256=g_8yPIpKedLwiXJ9FkMC2R6pCANSMX8SVWk-WDML1vY,1769
86
86
  kvirt/cluster/kubeadm/nfs.yml,sha256=js0KtTYqI1dtnc018wBXefyVPsCVn_sSneShMCJWUe4,226
87
- kvirt/cluster/kubeadm/pre_el.sh,sha256=5x1yZ_05EAJVE2TYLm_4beNX-Cc57QNUFuqpbS6tN78,2008
87
+ kvirt/cluster/kubeadm/pre_el.sh,sha256=xIS2U9X_rRbzgDNsCNKTpVUpGkplvmxUyhkLYXYtGMI,2429
88
88
  kvirt/cluster/kubeadm/pre_ubuntu.sh,sha256=kyM6ZxYZiyRYozcB3RmjpC8lHirI9wSxxwgCR7cgt7g,1768
89
89
  kvirt/cluster/kubeadm/registry.yml,sha256=8cy6U99X9br5DqawzpMhbl7yOJz3c48E7YIdwThI960,1511
90
+ kvirt/cluster/kubeadm/sdn.sh,sha256=KKwNT_cdGtGNDPhZIa8MWXUf6si1nO_hXdU5-HPIj6s,2069
90
91
  kvirt/cluster/kubeadm/workers.yml,sha256=G9AolFsAxPC6AUm5LHi-OWNiL25C4e6a9BhU-et1w4A,1098
91
92
  kvirt/cluster/kubeadm/apps/argocd/ingress.yml,sha256=t6U1QnaTq4_yxjQMsMQaMiddx2ROg2vr9kCZeta4v5Y,487
92
93
  kvirt/cluster/kubeadm/apps/argocd/install.sh,sha256=e9OM3g4QaWX4yDI3DEjyx_sb09yR95mgl3tdwZET4c4,2134
@@ -141,7 +142,7 @@ kvirt/cluster/kubeadm/disconnected/bin/sync_image.sh,sha256=P3ymlLNpUA4q9kvyJwmb
141
142
  kvirt/cluster/kubeadm/disconnected/scripts/01_creds.sh,sha256=M_rjk6c_eSqwSlvbZw3hz5xoP8HLZUV5CuepUpd6MG0,970
142
143
  kvirt/cluster/kubeadm/disconnected/scripts/02_packages.sh,sha256=Y2IK84Yq9A_emDDx17kwkTzlU2u5W778ea50UneGNMc,227
143
144
  kvirt/cluster/kubeadm/disconnected/scripts/03_registry.sh,sha256=T6VYi9pYsKfFX59M6N9jrs5oCP4S8lmQ4QRiqMVvLUE,2088
144
- kvirt/cluster/kubeadm/disconnected/scripts/04_mirror.sh,sha256=L391sdMJwaf-AiWFvWWuTP6W5hPZa-EwQLHOBjBGlq8,2962
145
+ kvirt/cluster/kubeadm/disconnected/scripts/04_mirror.sh,sha256=-_akPeAnh2EOtfnQkDkTB_7SE9g4duE5cJK3WslhWvg,3654
145
146
  kvirt/cluster/kubeadm/disconnected/scripts/05_web.sh,sha256=Rx8HcXlZUS4BAGZaz9XzJXCzP6etM7tritC0tXtIJBc,90
146
147
  kvirt/cluster/kubeadm/disconnected/scripts/deploy.sh,sha256=rN9whVEGPzAc-3WwQjLF0tSb976bsXv8ol1lSCD709s,593
147
148
  kvirt/cluster/kubernetes/__init__.py,sha256=3-Y_L5eSKmPjorrpjyhyaKT-eyB9KmbF80y2zdONCls,9287
@@ -403,7 +404,7 @@ kvirt/providers/vsphere/helpers.py,sha256=eJnwVGdWArTurH5ckzScvLThNJaMWeakdxBbDT
403
404
  kvirt/providers/vsphere/tagging.py,sha256=7RqFIUETSzHAjS0F_8-j145-_8lca7aDUsCxs4DhQVQ,4893
404
405
  kvirt/providers/web/__init__.py,sha256=_9fv0_x5VomFrMZqTsMLHkIRkvujmFgTxggtRctvMD0,22053
405
406
  kvirt/version/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
406
- kvirt/version/git,sha256=bJIvDcJKVQONMNXQ0_XLi1pne8nOAem30Ertp_K2MXU,19
407
+ kvirt/version/git,sha256=Yc8HZKbeyYA5tZ0_ROVNUZQIiQ0hoZLNHv508PX5kSU,19
407
408
  kvirt/web/__init__.py,sha256=QW-FVaQGYogXwgV2g4f0J9s0QqUI6qIyX1ruRaiI8Yk,46658
408
409
  kvirt/web/main.py,sha256=DIb6tW3ce7wCc83kD9HBCG4ALJuLItp9uaP6tzdsm_Y,261
409
410
  kvirt/web/static/css/bootstrap-notify.css,sha256=ibUTW-jDj-F8d1T1KZ4DOujRmVTFfvMKL9y14QgEaPQ,408
@@ -645,8 +646,8 @@ kvirt/web/templates/vmprofiles.html,sha256=T65Cv7povhBtD2dyuWkWJE6byaA9EYtLSk5gt
645
646
  kvirt/web/templates/vmprofilestable.html,sha256=-8viNOqSvN_yzimENxq7Q0187zbflOn8p8zpgx0Vyek,1420
646
647
  kvirt/web/templates/vms.html,sha256=k2ptKeiLFdpzgfbk6xi__sduu0UALYXXrnrmDEmAfaQ,470
647
648
  kvirt/web/templates/vmstable.html,sha256=ikuYkIm_ocvGIBXFyJt1-tBjwQWCyqkgC08leoXgR54,4894
648
- kcli-99.0.202601130934.dist-info/METADATA,sha256=vHYI5vgL-256Hpo7rCHlYf27ldksJU1aAkXEIVSfPms,4645
649
- kcli-99.0.202601130934.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
650
- kcli-99.0.202601130934.dist-info/entry_points.txt,sha256=e5EB5e2acrwl3_sYA0GrjE42UMcMfiijMJqXb6TZRmQ,245
651
- kcli-99.0.202601130934.dist-info/top_level.txt,sha256=FwVTxtMIWdr8QBk5mTfd0f_GheFlRR_vn4zl6p5N57s,6
652
- kcli-99.0.202601130934.dist-info/RECORD,,
649
+ kcli-99.0.202601191511.dist-info/METADATA,sha256=FWyZL27dtmSuAEdkWr1tc4NJN0VuN-Ksg4oiYsJ1j34,4645
650
+ kcli-99.0.202601191511.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
651
+ kcli-99.0.202601191511.dist-info/entry_points.txt,sha256=e5EB5e2acrwl3_sYA0GrjE42UMcMfiijMJqXb6TZRmQ,245
652
+ kcli-99.0.202601191511.dist-info/top_level.txt,sha256=FwVTxtMIWdr8QBk5mTfd0f_GheFlRR_vn4zl6p5N57s,6
653
+ kcli-99.0.202601191511.dist-info/RECORD,,
@@ -220,6 +220,7 @@ def create(config, plandir, cluster, overrides):
220
220
  return {'result': 'failure', 'reason': msg}
221
221
  if which('kubectl') is None:
222
222
  get_kubectl()
223
+ pprint("Move downloaded kubectl somewhere in your PATH if you want to reuse it")
223
224
  if not os.path.exists(clusterdir):
224
225
  os.makedirs(clusterdir)
225
226
  os.mkdir(f"{clusterdir}/auth")
@@ -227,6 +228,7 @@ def create(config, plandir, cluster, overrides):
227
228
  disconnected_url = data['disconnected_url']
228
229
  disconnected_reuse = data['disconnected_reuse']
229
230
  disconnected_vm = data['disconnected_vm'] or (disconnected_url is None and disconnected)
231
+ data['ipv6'] = api_ip is not None and ':' in api_ip
230
232
  if provider not in cloud_providers and disconnected_vm:
231
233
  disconnected_vm = f"{data['disconnected_reuse_name'] or cluster}-registry"
232
234
  pprint(f"Deploying disconnected vm {disconnected_vm}")
@@ -2,7 +2,6 @@
2
2
 
3
3
  CLUSTER={{ cluster }}
4
4
  DOMAIN={{ domain }}
5
- POD_CIDR={{ cluster_network_ipv4 }}
6
5
 
7
6
  echo $(hostname -I) api.$CLUSTER.$DOMAIN >> /etc/hosts
8
7
 
@@ -21,33 +20,7 @@ kubectl taint nodes --all node-role.kubernetes.io/control-plane-
21
20
  {% endif %}
22
21
 
23
22
  {% if sdn != None %}
24
- # install Container Network Interface (CNI)
25
- {% if sdn == 'flannel' %}
26
- FLANNEL_VERSION={{ 'flannel-io/flannel'|github_version(flannel_version) }}
27
- curl -Ls https://raw.githubusercontent.com/flannel-io/flannel/$FLANNEL_VERSION/Documentation/kube-flannel.yml | sed "s@10.244.0.0/16@$POD_CIDR@" | kubectl apply -f -
28
- {% elif sdn == 'weavenet' %}
29
- kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=`kubectl version | base64 | tr -d '\n'`"
30
- {% elif sdn == 'calico' %}
31
- CALICO_VERSION={{ 'projectcalico/calico'|github_version(calico_version) }}
32
- curl -L https://raw.githubusercontent.com/projectcalico/calico/$CALICO_VERSION/manifests/tigera-operator.yaml > /root/tigera-operator.yaml
33
- curl -L https://raw.githubusercontent.com/projectcalico/calico/$CALICO_VERSION/manifests/custom-resources.yaml > /root/tigera-custom-resources.yaml
34
- sed -i "s@192.168.0.0/16@$POD_CIDR@" /root/tigera-custom-resources.yaml
35
- kubectl create -f /root/tigera-operator.yaml
36
- sleep 10
37
- kubectl create -f /root/tigera-custom-resources.yaml
38
- {% elif sdn == 'canal' %}
39
- kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
40
- kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/canal.yaml
41
- {% elif sdn == 'romana' %}
42
- kubectl apply -f https://raw.githubusercontent.com/romana/romana/master/containerize/specs/romana-kubeadm.yml
43
- {% elif sdn == 'cilium' %}
44
- curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
45
- tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
46
- rm -f cilium-linux-amd64.tar.gz
47
- CILIUM_VERSION='{{ "--version %s" % sdn_version if sdn_version != None else "" }}'
48
- CILIUM_REGISTRY='{{ "--helm-set=image.repository=%s/cilium/cilium --set image.useDigest=false --helm-set=envoy.image.repository=%s/cilium/cilium-envoy --helm-set=envoy.image.tag=latest --helm-set=envoy.image.useDigest=false --helm-set=operator.image.repository=%s/cilium/operator --helm-set=operator.image.useDigest=false" % (disconnected_url, disconnected_url, disconnected_url) if disconnected_url is defined else "" }}'
49
- cilium install $CILIUM_VERSION $CILIUM_REGISTRY
50
- {% endif %}
23
+ bash /root/sdn.sh
51
24
  {% endif %}
52
25
 
53
26
  # config cluster credentials
@@ -57,5 +57,6 @@
57
57
  origin: 90-flannel.rules
58
58
  {% endif %}
59
59
  - registry.yml
60
+ - sdn.sh
60
61
  cmds:
61
62
  - bash /root/deploy.sh
@@ -20,13 +20,21 @@
20
20
  {{ runtime_config_string.append(entry) or "" }}
21
21
  {% endfor %}
22
22
  {% endif %}
23
+
24
+ {% if not cluster_networks %}
25
+ {% set cluster_networks = [cluster_network_ipv4] + [cluster_network_ipv6] if dualstack|default(False) else [cluster_network_ipv6] if ipv6 else [cluster_network_ipv4] %}
26
+ {% endif %}
27
+ {% if not service_networks %}
28
+ {% set service_networks = [service_network_ipv4] + [service_network_ipv6] if dualstack|default(False) else [service_network_ipv6] if ipv6 else [service_network_ipv4] %}
29
+ {% endif %}
30
+
23
31
  apiVersion: kubeadm.k8s.io/v1beta3
24
32
  kind: InitConfiguration
25
33
  bootstrapTokens:
26
34
  - token: "{{ token }}"
27
35
  ttl: "0"
28
36
  localAPIEndpoint:
29
- advertiseAddress: 0.0.0.0
37
+ advertiseAddress: "{{ '::' if ipv6 else '0.0.0.0' }}"
30
38
  bindPort: 6443
31
39
  certificateKey: "{{ cert_key }}"
32
40
  ---
@@ -38,8 +46,8 @@ kubernetesVersion: {{ minor_version }}
38
46
  {% endif %}
39
47
  controlPlaneEndpoint: {{ api_fqdn }}:6443
40
48
  networking:
41
- podSubnet: {{ cluster_network_ipv4 }}
42
- serviceSubnet: {{ service_network_ipv4 }}
49
+ podSubnet: {{ ','.join(cluster_networks) }}
50
+ serviceSubnet: {{ ','.join(service_networks) }}
43
51
  {% if domain != None %}
44
52
  dnsDomain: "{{ cluster }}.{{ domain }}"
45
53
  {% endif %}
@@ -5,9 +5,8 @@ apt-get update
5
5
  apt-get install -y containerd || apt-get install -y containerd.io
6
6
  {% else %}
7
7
  TARGET={{ 'fedora' if 'fedora' in image|lower else 'centos' }}
8
- dnf install -y yum-utils device-mapper-persistent-data lvm2
9
8
  yum-config-manager --add-repo https://download.docker.com/linux/$TARGET/docker-ce.repo
10
- dnf install -y containerd.io
9
+ dnf install -y yum-utils device-mapper-persistent-data lvm2 containerd.io
11
10
  {% endif %}
12
11
 
13
12
  mkdir -p /etc/containerd
@@ -12,9 +12,33 @@ gpgkey=https://pkgs.k8s.io/core:/stable:/$VERSION/rpm/repodata/repomd.xml.key"""
12
12
 
13
13
  export PATH=/root/bin:$PATH
14
14
 
15
+ {% if ipv6 %}
16
+ dnf -y install httpd createrepo
17
+ {% if engine == 'crio' %}
18
+ PROJECT_PATH={{ engine_version or 'stable:/$VERSION' }}
19
+ echo """[cri-o]
20
+ name=CRI-O
21
+ baseurl=https://download.opensuse.org/repositories/isv:/cri-o:/$PROJECT_PATH/rpm
22
+ enabled=1
23
+ gpgcheck=1
24
+ gpgkey=https://download.opensuse.org/repositories/isv:/cri-o:/$PROJECT_PATH/rpm/repodata/repomd.xml.key""" >/etc/yum.repos.d/cri-o.repo
25
+ PACKAGES="cri-o conntrack"
26
+ {% else %}
27
+ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
28
+ PACKAGES="device-mapper-persistent-data lvm2 containerd.io"
29
+ {% endif %}
30
+ # SYNC PACKAGES
31
+ dnf -y install --setopt=keepcache=1 kubeadm $PACKAGES git kubectl kubelet iptables keepalived
32
+ dnf download --destdir /var/www/html container-selinux selinux-policy selinux-policy-any iptables iptables-libs libnftnl
33
+ mv /var/cache/dnf/*/packages/*.rpm /var/www/html
34
+ createrepo /var/www/html
35
+ restorecon -Frvv /var/www/html
36
+ sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
37
+ systemctl enable --now httpd
38
+ {% endif %}
39
+
15
40
  # KUBEADM
16
41
  IMAGES_VERSION=$(echo $VERSION| sed 's/^v/stable-/')
17
- yum -y install kubeadm
18
42
  for image in $(kubeadm config images list --kubernetes-version $IMAGES_VERSION) ; do sync_image.sh $image ; done
19
43
 
20
44
  cd /root
@@ -23,15 +47,9 @@ cd /root
23
47
  {% if sdn == 'flannel' %}
24
48
  FLANNEL_VERSION={{ 'flannel-io/flannel'|github_version(flannel_version) }}
25
49
  curl -Ls https://raw.githubusercontent.com/flannel-io/flannel/$FLANNEL_VERSION/Documentation/kube-flannel.yml > sdn.yml
26
- {% elif sdn == 'weavenet' %}
27
- curl -Ls -f "https://cloud.weave.works/k8s/net?k8s-version=`kubectl version | base64 | tr -d '\n'`" > sdn.yml
28
50
  {% elif sdn == 'calico' %}
29
51
  CALICO_VERSION={{ 'projectcalico/calico'|github_version(calico_version) }}
30
52
  curl -Ls https://raw.githubusercontent.com/projectcalico/calico/$CALICO_VERSION/manifests/tigera-operator.yaml > sdn.yml
31
- {% elif sdn == 'canal' %}
32
- curl -Ls https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/canal.yaml > sdn.yml
33
- {% elif sdn == 'romana' %}
34
- curl -Ls https://raw.githubusercontent.com/romana/romana/master/containerize/specs/romana-kubeadm.yml > sdn.yml
35
53
  {% elif sdn == 'cilium' %}
36
54
  curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
37
55
  tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
@@ -42,11 +60,12 @@ for image in $CILIUM_IMAGES ; do echo image: $image:$CILIUM_VERSION >> sdn.yml ;
42
60
  echo image: quay.io/cilium/cilium-envoy:latest >> sdn.yml
43
61
  {% endif %}
44
62
 
63
+ [ -d /var/www/html ] && [ -f sdn.yml ] && cp sdn.yml /var/www/html/sdn.yml && restorecon -Frvv /var/www/html
45
64
  sdn_images=$(grep image: sdn.yml | sed 's/image: //' | sed 's/@.*//' | sort -u)
46
65
  for image in $sdn_images ; do sync_image.sh $image ; done
47
66
  {% endif %}
48
67
 
49
- #NGINX
68
+ # NGINX
50
69
  curl -Lk https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/{{ 'cloud' if metallb|default(False) else 'baremetal' }}/deploy.yaml > ingress.yml
51
70
  nginx_images=$(grep image: ingress.yml | sed 's/.* image: //' | sed 's/@.*//' | sort -u)
52
71
  for image in $nginx_images ; do sync_image.sh $image ; done
@@ -94,3 +94,8 @@ kube_proxy: true
94
94
  ignore_hosts: false
95
95
  runtime_config: []
96
96
  postscripts: []
97
+ cluster_network_ipv6: "fd01::/48"
98
+ service_network_ipv6: "fd02::/112"
99
+ dualstack: false
100
+ cluster_networks: []
101
+ service_networks: []
@@ -2,12 +2,27 @@ VERSION={{ version or "$(curl -L -s https://dl.k8s.io/release/stable.txt)" }}
2
2
  # Ensure the version is in the format v<major>.<minor> regardless of the source
3
3
  VERSION=$(echo "v${VERSION#v}" | cut -d. -f1,2)
4
4
 
5
+ {% if ipv6 %}
6
+ rm -rf /etc/yum.repos.d/*.repo
7
+ BASEURL=http://{{ disconnected_url.split(':')[0] }}:8080
8
+ GPGCHECK=0
9
+ cat <<EOF | tee /etc/sysctl.d/99-kubernetes-ipv6.conf
10
+ net.ipv6.conf.all.forwarding = 1
11
+ net.ipv6.conf.default.forwarding = 1
12
+ EOF
13
+ sed -i "/cri-o.repo/a\echo rm -f /etc/yum.repos.d/cri-o.repo" /root/crio-d.sh
14
+ sed -i "/add-repo/d" /root/containerd.sh
15
+ {% else %}
16
+ BASEURL=https://pkgs.k8s.io/core:/stable:/$VERSION/rpm/
17
+ GPGCHECK=1
18
+ {% endif %}
19
+
5
20
  echo """[kubernetes]
6
21
  name=Kubernetes
7
- baseurl=https://pkgs.k8s.io/core:/stable:/$VERSION/rpm/
22
+ baseurl=$BASEURL
8
23
  enabled=1
9
- gpgcheck=1
10
- gpgkey=https://pkgs.k8s.io/core:/stable:/$VERSION/rpm/repodata/repomd.xml.key""" >/etc/yum.repos.d/kubernetes.repo
24
+ gpgcheck=$GPGCHECK
25
+ gpgkey=https://pkgs.k8s.io/core:/stable:/$VERSION/rpm/repodata/repomd.xml.key""" > /etc/yum.repos.d/kubernetes.repo
11
26
  echo net.bridge.bridge-nf-call-iptables=1 >> /etc/sysctl.d/99-sysctl.conf
12
27
  sysctl -p
13
28
  setenforce 0
@@ -0,0 +1,29 @@
1
+ POD_CIDR={{ cluster_network_ipv6 if ipv6 else cluster_network_ipv4 }}
2
+ # install Container Network Interface (CNI)
3
+ {% if sdn == 'flannel' %}
4
+ {% if ipv6 %}
5
+ curl -Ls http://{{ disconnected_url.split(':')[0] }}:8080/sdn.yml > /root/sdn.yml
6
+ sed -i "s@10.244.0.0/16@$POD_CIDR@" /root/sdn.yml
7
+ sed -i 's/"Network":/"IPV6Network":/' /root/sdn.yml
8
+ sed -i '/"IPV6Network":/a\ "EnableIPV4": false,\n "EnableIPV6": true,' /root/sdn.yml
9
+ kubectl apply -f /root/sdn.yml
10
+ {% else %}
11
+ FLANNEL_VERSION={{ 'flannel-io/flannel'|github_version(flannel_version) }}
12
+ curl -Ls https://raw.githubusercontent.com/flannel-io/flannel/$FLANNEL_VERSION/Documentation/kube-flannel.yml | sed "s@10.244.0.0/16@$POD_CIDR@" | kubectl apply -f -
13
+ {% endif %}
14
+ {% elif sdn == 'calico' %}
15
+ CALICO_VERSION={{ 'projectcalico/calico'|github_version(calico_version) }}
16
+ curl -L https://raw.githubusercontent.com/projectcalico/calico/$CALICO_VERSION/manifests/tigera-operator.yaml > /root/tigera-operator.yaml
17
+ curl -L https://raw.githubusercontent.com/projectcalico/calico/$CALICO_VERSION/manifests/custom-resources.yaml > /root/tigera-custom-resources.yaml
18
+ sed -i "s@192.168.0.0/16@$POD_CIDR@" /root/tigera-custom-resources.yaml
19
+ kubectl create -f /root/tigera-operator.yaml
20
+ sleep 10
21
+ kubectl create -f /root/tigera-custom-resources.yaml
22
+ {% elif sdn == 'cilium' %}
23
+ curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
24
+ tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
25
+ rm -f cilium-linux-amd64.tar.gz
26
+ CILIUM_VERSION='{{ "--version %s" % sdn_version if sdn_version != None else "" }}'
27
+ CILIUM_REGISTRY='{{ "--helm-set=image.repository=%s/cilium/cilium --set image.useDigest=false --helm-set=envoy.image.repository=%s/cilium/cilium-envoy --helm-set=envoy.image.tag=latest --helm-set=envoy.image.useDigest=false --helm-set=operator.image.repository=%s/cilium/operator --helm-set=operator.image.useDigest=false" % (disconnected_url, disconnected_url, disconnected_url) if disconnected_url is defined else "" }}'
28
+ cilium install $CILIUM_VERSION $CILIUM_REGISTRY
29
+ {% endif %}
kvirt/config.py CHANGED
@@ -320,7 +320,6 @@ class Kconfig(Kbaseconfig):
320
320
  isofolder = isofolder[1:]
321
321
  isofolder = f'[{isopool}]/{isofolder}'
322
322
  filtervms = options.get('filtervms', VSPHERE['filtervms'])
323
- filtervms = options.get('filteruser', VSPHERE['filteruser'])
324
323
  filteruser = options.get('filteruser', VSPHERE['filteruser'])
325
324
  filtertag = options.get('filtertag')
326
325
  category = options.get('category', VSPHERE['category'])
kvirt/version/git CHANGED
@@ -1 +1 @@
1
- 30a0985 2026/01/13
1
+ 329d66b 2026/01/19