diff --git a/data/ignition/master/files/etc/init-config.yaml.template b/data/ignition/master/files/etc/init-config.yaml.template index 089228ceafc1e7b35ba2ea90322cc4650d432402..f8acc014c254695e4ad89ae573ad6e981c2d85cb 100644 --- a/data/ignition/master/files/etc/init-config.yaml.template +++ b/data/ignition/master/files/etc/init-config.yaml.template @@ -28,5 +28,5 @@ networking: dnsDomain: "cluster.local" dns: type: CoreDNS - imageRepository: {{.ImageRegistry}}/coredns + imageRepository: {{.ImageRegistry}} imageTag: {{.CorednsImageTag}} \ No newline at end of file diff --git a/data/ignition/master/files/etc/nkd/node.pivot.sh.template b/data/ignition/master/files/etc/nkd/node-pivot.sh.template similarity index 100% rename from data/ignition/master/files/etc/nkd/node.pivot.sh.template rename to data/ignition/master/files/etc/nkd/node-pivot.sh.template diff --git a/data/ignition/master/systemd/install-cni-plugin.service.template b/data/ignition/master/systemd/install-cni-plugin.service.template index fc20158a6ca6a506e9af3a348d48def7b7dd204e..aa2b45f68b333ce8eccd1011d63cde543425d2db 100644 --- a/data/ignition/master/systemd/install-cni-plugin.service.template +++ b/data/ignition/master/systemd/install-cni-plugin.service.template @@ -2,7 +2,7 @@ Description=install cni network plugin for kubernetes Requires=init-cluster.service After=init-cluster.service -ConditionPathExists=/var/log/init-k8s-cluster.stamp +ConditionPathExists=/var/log/init-cluster.stamp [Service] Type=oneshot @@ -10,7 +10,7 @@ RemainAfterExit=yes ExecStart=bash -c "sed -i 's#usr/libexec/#opt/libexec/#g' /etc/nkd/calico.yaml" ExecStart=bash -c "sed -i 's/# - name: CALICO_IPV4POOL_CIDR/- name: CALICO_IPV4POOL_CIDR/g' /etc/nkd/calico.yaml" ExecStart=bash -c "sed -i 's?# value: "{{.IpSegment}}/16"? value: "10.100.0.0/16"?g' /etc/nkd/calico.yaml" -ExecStart=kubectl apply -f /etc/calico.yaml --kubeconfig=/etc/kubernetes/admin.conf +ExecStart=kubectl apply -f /etc/nkd/calico.yaml --kubeconfig=/etc/kubernetes/admin.conf [Install] WantedBy=multi-user.target \ No newline at end of file diff --git a/data/ignition/master/systemd/release-image-pivot.service b/data/ignition/master/systemd/release-image-pivot.service index 27beef4df06769a76a863920122e3f95680c7ede..b5d02e8adfbf03964eecdd26862c45919495702e 100644 --- a/data/ignition/master/systemd/release-image-pivot.service +++ b/data/ignition/master/systemd/release-image-pivot.service @@ -5,11 +5,11 @@ After=network-online.target ConditionPathExists=!/var/log/node-pivot.stamp [Service] -Type=oneshot -RemainAfterExit=yes ExecStart=sh /etc/nkd/node-pivot.sh -ExecStart=/bin/touch /var/log/node-pivot.stamp -ExecStart=systemctl reboot +ExecStart=/bin/bash -c "/etc/nkd/node-pivot.sh && touch /var/log/node-pivot.stamp && systemctl reboot" + +Restart=on-failure +RestartSec=5s [Install] WantedBy=multi-user.target diff --git a/data/ignition/worker/files/etc/nkd/node.pivot.sh.template b/data/ignition/worker/files/etc/nkd/node-pivot.sh.template similarity index 100% rename from data/ignition/worker/files/etc/nkd/node.pivot.sh.template rename to data/ignition/worker/files/etc/nkd/node-pivot.sh.template diff --git a/data/ignition/worker/systemd/release-image-pivot.service b/data/ignition/worker/systemd/release-image-pivot.service index 27beef4df06769a76a863920122e3f95680c7ede..f51489ac7dc90b58957abbda2b4b54091759d64f 100644 --- a/data/ignition/worker/systemd/release-image-pivot.service +++ b/data/ignition/worker/systemd/release-image-pivot.service @@ -5,11 +5,12 @@ After=network-online.target ConditionPathExists=!/var/log/node-pivot.stamp [Service] -Type=oneshot -RemainAfterExit=yes ExecStart=sh /etc/nkd/node-pivot.sh -ExecStart=/bin/touch /var/log/node-pivot.stamp -ExecStart=systemctl reboot +ExecStart=/bin/bash -c "/etc/nkd/node-pivot.sh && touch /var/log/node-pivot.stamp && systemctl reboot" + +Restart=on-failure +RestartSec=5s [Install] WantedBy=multi-user.target + diff --git a/data/terraform/master.tf.template b/data/terraform/master.tf.template index e8305557287dd379bb8b7be4e419e560b0e65937..bc3ac6854eca9631ca7c1ba61d9c9f975f99423f 100644 --- a/data/terraform/master.tf.template +++ b/data/terraform/master.tf.template @@ -62,7 +62,7 @@ resource "openstack_compute_instance_v2" "instance" { flavor_name = var.instance_name key_pair = "" security_groups = ["K8S"] - availability_zone = "Intel Xeon Gold 6326 x86_64" + availability_zone = "" user_data = file(format("../master/${var.instance_name}%d.ign", count.index + 1)) network { diff --git a/data/terraform/worker.tf.template b/data/terraform/worker.tf.template index 7465aa38c4214466df7663d111d54e9486cdc29b..7cdb46bfc7c963a97f36722b5972d4468773c702 100644 --- a/data/terraform/worker.tf.template +++ b/data/terraform/worker.tf.template @@ -62,7 +62,7 @@ resource "openstack_compute_instance_v2" "instance" { flavor_name = var.instance_name key_pair = "" security_groups = ["K8S"] - availability_zone = "Intel Xeon Gold 6326 x86_64" + availability_zone = "" user_data = file("${format("../worker/${var.instance_name}%d.ign", count.index + 1)}") network { diff --git a/housekeeper/operator/api/v1alpha1/update_types.go b/housekeeper/operator/api/v1alpha1/update_types.go index 300e9504320768aba18a174c46d6783462c97f8e..aabd31c38d62eeac1fca2991e7fb1854bb2299d6 100644 --- a/housekeeper/operator/api/v1alpha1/update_types.go +++ b/housekeeper/operator/api/v1alpha1/update_types.go @@ -27,10 +27,11 @@ import ( type UpdateSpec struct { // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster // Important: Run "make" to regenerate code after modifying this file - OSVersion string `json:"osVersion"` - OSImageURL string `json:"osImageURL"` - KubeVersion string `json:"kubeVersion"` - EvictPodForce bool `json:"evictPodForce"` + OSVersion string `json:"osVersion"` + OSImageURL string `json:"osImageURL"` + KubeVersion string `json:"kubeVersion"` + EvictPodForce bool `json:"evictPodForce"` + MaxUnavailable int `json:"maxUnavailable"` } // UpdateStatus defines the observed state of Update diff --git a/housekeeper/operator/config/crd/housekeeper.io_updates.yaml b/housekeeper/operator/config/crd/housekeeper.io_updates.yaml index 2938aa04722d3143d32f77bb51dfb473c5197889..13b83db4fde1d5bb8fe542ebea53732277debaec 100644 --- a/housekeeper/operator/config/crd/housekeeper.io_updates.yaml +++ b/housekeeper/operator/config/crd/housekeeper.io_updates.yaml @@ -47,11 +47,15 @@ spec: evictPodForce: description: 'If true, force evict the pod' type: boolean + maxUnavailable: + description: 'If true, force evict the pod' + type: integer required: - kubeVersion - osImageURL - osVersion - evictPodForce + - maxUnavailable type: object status: description: UpdateStatus defines the observed state of Update