Skip to content

Commit 01b0ce0

Browse files
authored
Merge branch 'stackhpc/yoga' into upstream/yoga-2023-04-03
2 parents df2bcab + 9b77eaf commit 01b0ce0

32 files changed

+1093
-302
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @stackhpc/openstack
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Tag & Release
3+
'on':
4+
push:
5+
branches:
6+
- stackhpc/yoga
7+
permissions:
8+
actions: read
9+
contents: write
10+
jobs:
11+
tag-and-release:
12+
uses: stackhpc/.github/.github/workflows/tag-and-release.yml@main

.github/workflows/tox.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: Tox Continuous Integration
3+
'on':
4+
pull_request:
5+
jobs:
6+
tox:
7+
uses: stackhpc/.github/.github/workflows/tox.yml@main

doc/source/user/index.rst

Lines changed: 130 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,14 @@ the table are linked to more details elsewhere in the user guide.
389389
+---------------------------------------+--------------------+---------------+
390390
| `boot_volume_type`_ | see below | see below |
391391
+---------------------------------------+--------------------+---------------+
392+
| `master_volume_size`_ | see below | see below |
393+
+---------------------------------------+--------------------+---------------+
394+
| `master_volume_type`_ | see below | see below |
395+
+---------------------------------------+--------------------+---------------+
396+
| `worker_volume_size`_ | see below | see below |
397+
+---------------------------------------+--------------------+---------------+
398+
| `worker_volume_type`_ | see below | see below |
399+
+---------------------------------------+--------------------+---------------+
392400
| `etcd_volume_size`_ | etcd storage | 0 |
393401
| | volume size | |
394402
+---------------------------------------+--------------------+---------------+
@@ -502,6 +510,18 @@ the table are linked to more details elsewhere in the user guide.
502510
+---------------------------------------+--------------------+---------------+
503511
| `fixed_subnet_cidr`_ | see below | "" |
504512
+---------------------------------------+--------------------+---------------+
513+
| `extra_network`_ | see below | "" |
514+
+---------------------------------------+--------------------+---------------+
515+
| `extra_subnet`_ | see below | "" |
516+
+---------------------------------------+--------------------+---------------+
517+
| `extra_security_group`_ | see below | see below |
518+
+---------------------------------------+--------------------+---------------+
519+
| `octavia_provider`_ | see below | amphora |
520+
+---------------------------------------+--------------------+---------------+
521+
| `octavia_lb_algorithm`_ | see bellow | ROUND_ROBIN |
522+
+---------------------------------------+--------------------+---------------+
523+
| `octavia_lb_healthcheck`_ | see bellow | true |
524+
+---------------------------------------+--------------------+---------------+
505525

506526
.. _cluster:
507527

@@ -1200,13 +1220,42 @@ _`admission_control_list`
12001220
_`boot_volume_size`
12011221
This label overrides the default_boot_volume_size of instances which is
12021222
useful if your flavors are boot from volume only. The default value is 0,
1203-
meaning that cluster instances will not boot from volume.
1223+
meaning that cluster instances will not boot from volume unless
1224+
master_volume_size or worker_volume_size is defined. This label has
1225+
lower priority than abovementioned and can be overridden by them.
1226+
Current precedence is master/worker_volume_size, boot_volume_size,
1227+
default_boot_volume_size.
1228+
12041229

12051230
_`boot_volume_type`
12061231
This label overrides the default_boot_volume_type of instances which is
12071232
useful if your flavors are boot from volume only. The default value is '',
12081233
meaning that Magnum will randomly select a Cinder volume type from all
1209-
available options.
1234+
available options unless master_volume_type or worker_volume_type are set.
1235+
Current precedence is master/worker_volume_type, boot_volume_type,
1236+
default_boot_volume_type.
1237+
1238+
_`master_volume_size`
1239+
This labed can be used to define different volume size for master nodes than
1240+
set in boot_volume_size. Master_volume_size will be set to boot_volume_size
1241+
if not defined, fallback to default_boot_volume_size if the latter is
1242+
missing. If neither is defined master nodes will not boot
1243+
from volume.
1244+
1245+
_`master_volume_type`
1246+
This label can be used to override volume type of master nodes if defined.
1247+
Otherwise boot_volume_type value will be used.
1248+
1249+
_`worker_volume_size`
1250+
This labed can be used to define different volume size for worker nodes than
1251+
set in boot_volume_size. worker_volume_size will be set to boot_volume_size
1252+
if not defined, fallback to default_boot_volume_size if the latter is
1253+
missing. If neither is defined worker nodes will not boot
1254+
from volume.
1255+
1256+
_`worker_volume_type`
1257+
This label can be used to override volume type of worker nodes if defined.
1258+
Otherwise boot_volume_type value will be used.
12101259

12111260
_`etcd_volume_size`
12121261
This label sets the size of a volume holding the etcd storage data.
@@ -1264,13 +1313,14 @@ _`container_infra_prefix`
12641313

12651314
Images that might be needed if 'monitoring_enabled' is 'true':
12661315

1267-
* quay.io/prometheus/alertmanager:v0.20.0
1268-
* docker.io/squareup/ghostunnel:v1.5.2
1269-
* docker.io/jettech/kube-webhook-certgen:v1.0.0
1270-
* quay.io/coreos/prometheus-operator:v0.37.0
1271-
* quay.io/coreos/configmap-reload:v0.0.1
1272-
* quay.io/coreos/prometheus-config-reloader:v0.37.0
1273-
* quay.io/prometheus/prometheus:v2.15.2
1316+
* quay.io/prometheus/alertmanager:v0.21.0
1317+
* docker.io/jettech/kube-webhook-certgen:v1.5.0
1318+
* quay.io/prometheus-operator/prometheus-operator:v0.44.0
1319+
* docker.io/jimmidyson/configmap-reload:v0.4.0
1320+
* quay.io/prometheus-operator/prometheus-config-reloader:v0.44.0
1321+
* quay.io/prometheus/prometheus:v2.22.1
1322+
* quay.io/prometheus/node-exporter:v1.0.1
1323+
* docker.io/directxman12/k8s-prometheus-adapter:v0.8.2
12741324

12751325
Images that might be needed if 'cinder_csi_enabled' is 'true':
12761326

@@ -1434,37 +1484,48 @@ _`cinder_csi_plugin_tag`
14341484
<https://hub.docker.com/r/k8scloudprovider/cinder-csi-plugin/tags>`_.
14351485
Train default: v1.16.0
14361486
Ussuri default: v1.18.0
1487+
Yoga default: v1.23.0
14371488

14381489
_`csi_attacher_tag`
14391490
This label allows users to override the default container tag for CSI attacher.
14401491
For additional tags, `refer to CSI attacher page
14411492
<https://quay.io/repository/k8scsi/csi-attacher?tab=tags>`_.
14421493
Ussuri-default: v2.0.0
1494+
Yoga-default: v3.3.0
14431495

14441496
_`csi_provisioner_tag`
14451497
This label allows users to override the default container tag for CSI provisioner.
14461498
For additional tags, `refer to CSI provisioner page
14471499
<https://quay.io/repository/k8scsi/csi-provisioner?tab=tags>`_.
14481500
Ussuri-default: v1.4.0
1501+
Yoga-default: v3.0.0
14491502

14501503
_`csi_snapshotter_tag`
14511504
This label allows users to override the default container tag for CSI snapshotter.
14521505
For additional tags, `refer to CSI snapshotter page
14531506
<https://quay.io/repository/k8scsi/csi-snapshotter?tab=tags>`_.
14541507
Ussuri-default: v1.2.2
1508+
Yoga-default: v4.2.1
14551509

14561510
_`csi_resizer_tag`
14571511
This label allows users to override the default container tag for CSI resizer.
14581512
For additional tags, `refer to CSI resizer page
14591513
<https://quay.io/repository/k8scsi/csi-resizer?tab=tags>`_.
14601514
Ussuri-default: v0.3.0
1515+
Yoga-default: v1.3.0
14611516

14621517
_`csi_node_driver_registrar_tag`
14631518
This label allows users to override the default container tag for CSI node
14641519
driver registrar. For additional tags, `refer to CSI node driver registrar
14651520
page
14661521
<https://quay.io/repository/k8scsi/csi-node-driver-registrar?tab=tags>`_.
14671522
Ussuri-default: v1.1.0
1523+
Yoga-default: v2.4.0
1524+
1525+
-`csi_liveness_probe_tag`
1526+
This label allows users to override the default container tag for CSI
1527+
liveness probe.
1528+
Yoga-default: v2.5.0
14681529

14691530
_`keystone_auth_enabled`
14701531
If this label is set to True, Kubernetes will support use Keystone for
@@ -1635,6 +1696,33 @@ _`fixed_subnet_cidr`
16351696
specified an existing fixed_subnet during cluster creation.
16361697
Ussuri default: 10.0.0.0/24
16371698

1699+
_`extra_network`
1700+
Optional additional network name or UUID to add to cluster nodes.
1701+
When not specified, additional networks are not added. Optionally specify
1702+
'extra_subnet' if you wish to use a specific subnet on the network.
1703+
Default: ""
1704+
1705+
_`extra_subnet`
1706+
Optional additional subnet name or UUID to add to cluster nodes.
1707+
Only used when 'extra_network' is defined.
1708+
Default: ""
1709+
1710+
_`extra_security_group`
1711+
Optional additional group name or UUID to add to network port.
1712+
Only used when 'extra_network' is defined.
1713+
Default: cluster node default security group.
1714+
1715+
_`octavia_provider`
1716+
Octavia provider driver to be used for creating load balancers.
1717+
1718+
_`octavia_lb_algorithm`
1719+
Octavia Octavia lb algorithm to use for LoadBalancer type service
1720+
Default: ROUND_ROBIN
1721+
1722+
_`octavia_lb_healthcheck`
1723+
If true, enable Octavia load balancer healthcheck
1724+
Default: true
1725+
16381726
External load balancer for services
16391727
-----------------------------------
16401728

@@ -2723,7 +2811,6 @@ _`calico_tag`
27232811
Victoria default: v3.13.1
27242812
Wallaby default: v3.13.1
27252813

2726-
27272814
Besides, the Calico network driver needs kube_tag with v1.9.3 or later, because
27282815
Calico needs extra mounts for the kubelet container. See `commit
27292816
<https://github.com/projectatomic/atomic-system-containers/commit/54ab8abc7fa1bfb6fa674f55cd0c2fa0c812fd36>`_
@@ -3035,6 +3122,39 @@ for the COE types is summarized as follows:
30353122
| rexray | unsupported | supported | supported |
30363123
+--------+-------------+-------------+-------------+
30373124

3125+
Labels can be used to customize nodes boot volume at creation time:
3126+
3127+
- boot_volume_type
3128+
- boot_volume_size
3129+
3130+
These define volume type and size used for boot media of node vm, and they can
3131+
be further overriden by:
3132+
3133+
- master_volume_type
3134+
- master_volume_size
3135+
- worker_volume_type
3136+
- worker_volume_size
3137+
3138+
Current precedence is:
3139+
- master_volume_size / worker_volume_size
3140+
- boot_volume_size
3141+
- default_boot_volume_size
3142+
3143+
Labels shown above allow user to use different storage types and sizes for
3144+
master and worker nodes. They can be used independently of each other
3145+
for ex. boot_volume_type to define type of storage to use for both master
3146+
and worker vms, along with master_volume_size and worker_volume_size
3147+
setting size of their boot volumes. Another example would be usage of
3148+
boot_volume_size to define size of both master and worker, with different
3149+
storage types for them set by master_volume_type and worker_volume_type.
3150+
It's possible to use any combination of the above.
3151+
3152+
If either master_volume_type or worker_volume_type is missing,
3153+
boot_volume_type will be used instead. A random volume type from Cinder will
3154+
be used if none of those options is set. In case of master_volume_size or
3155+
worker_volume_size missing value for boot_volume_size is used. If neither
3156+
is defined instances will not be volume based.
3157+
30383158
Following are some examples for using Cinder as persistent storage.
30393159

30403160
Using Cinder in Kubernetes

doc/source/user/monitoring.rst

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ _`metrics_server_enabled`
3535

3636
_`monitoring_enabled`
3737
Enable installation of cluster monitoring solution provided by the
38-
stable/prometheus-operator helm chart.
38+
prometheus-community/kube-prometheus-stack helm chart.
3939
To use this service tiller_enabled must be true when using
4040
helm_client_tag<v3.0.0.
4141
Default: false
4242

4343
_`prometheus_adapter_enabled`
4444
Enable installation of cluster custom metrics provided by the
45-
stable/prometheus-adapter helm chart. This service depends on
46-
monitoring_enabled.
45+
prometheus-community/prometheus-adapter helm chart.
46+
This service depends on monitoring_enabled.
4747
Default: true
4848

4949
To control deployed versions, extra labels are available:
@@ -56,14 +56,17 @@ _`metrics_server_chart_tag`
5656

5757
_`prometheus_operator_chart_tag`
5858
Add prometheus_operator_chart_tag to select version of the
59-
stable/prometheus-operator chart to install. When installing the chart,
60-
helm will use the default values of the tag defined and overwrite them based
61-
on the prometheus-operator-config ConfigMap currently defined. You must
62-
certify that the versions are compatible.
59+
prometheus-community/kube-prometheus-stack chart to install.
60+
When installing the chart, helm will use the default values of the tag
61+
defined and overwrite them based on the prometheus-operator-config
62+
ConfigMap currently defined.
63+
You must certify that the versions are compatible.
64+
Wallaby-default: 17.2.0
6365

6466
_`prometheus_adapter_chart_tag`
65-
The stable/prometheus-adapter helm chart version to use.
67+
The prometheus-community/prometheus-adapter helm chart version to use.
6668
Train-default: 1.4.0
69+
Wallaby-default: 2.12.1
6770

6871
Full fledged cluster monitoring
6972
+++++++++++++++++++++++++++++++

magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ CERT_DIR=/etc/kubernetes/certs
269269

270270
# kube-proxy config
271271
PROXY_KUBECONFIG=/etc/kubernetes/proxy-kubeconfig.yaml
272-
KUBE_PROXY_ARGS="--kubeconfig=${PROXY_KUBECONFIG} --cluster-cidr=${PODS_NETWORK_CIDR} --hostname-override=${INSTANCE_NAME}"
272+
KUBE_PROXY_ARGS="--kubeconfig=${PROXY_KUBECONFIG} --cluster-cidr=${PODS_NETWORK_CIDR} --hostname-override=${INSTANCE_NAME} --metrics-bind-address=0.0.0.0"
273273
cat > /etc/kubernetes/proxy << EOF
274274
KUBE_PROXY_ARGS="${KUBE_PROXY_ARGS} ${KUBEPROXY_OPTIONS}"
275275
EOF
@@ -404,6 +404,8 @@ KUBE_CONTROLLER_MANAGER_ARGS="--leader-elect=true --kubeconfig=/etc/kubernetes/a
404404
KUBE_CONTROLLER_MANAGER_ARGS="$KUBE_CONTROLLER_MANAGER_ARGS --cluster-name=${CLUSTER_UUID}"
405405
KUBE_CONTROLLER_MANAGER_ARGS="${KUBE_CONTROLLER_MANAGER_ARGS} --allocate-node-cidrs=true"
406406
KUBE_CONTROLLER_MANAGER_ARGS="${KUBE_CONTROLLER_MANAGER_ARGS} --cluster-cidr=${PODS_NETWORK_CIDR}"
407+
KUBE_CONTROLLER_MANAGER_ARGS="${KUBE_CONTROLLER_MANAGER_ARGS} --secure-port=10257"
408+
KUBE_CONTROLLER_MANAGER_ARGS="${KUBE_CONTROLLER_MANAGER_ARGS} --authorization-always-allow-paths=/healthz,/readyz,/livez,/metrics"
407409
KUBE_CONTROLLER_MANAGER_ARGS="$KUBE_CONTROLLER_MANAGER_ARGS $KUBECONTROLLER_OPTIONS"
408410
if [ -n "${ADMISSION_CONTROL_LIST}" ] && [ "${TLS_DISABLED}" == "False" ]; then
409411
KUBE_CONTROLLER_MANAGER_ARGS="$KUBE_CONTROLLER_MANAGER_ARGS --service-account-private-key-file=$CERT_DIR/service_account_private.key --root-ca-file=$CERT_DIR/ca.crt"
@@ -426,12 +428,13 @@ sed -i '
426428
/^KUBE_CONTROLLER_MANAGER_ARGS=/ s#\(KUBE_CONTROLLER_MANAGER_ARGS\).*#\1="'"${KUBE_CONTROLLER_MANAGER_ARGS}"'"#
427429
' /etc/kubernetes/controller-manager
428430

429-
sed -i '/^KUBE_SCHEDULER_ARGS=/ s#=.*#="--leader-elect=true --kubeconfig=/etc/kubernetes/admin.conf"#' /etc/kubernetes/scheduler
431+
sed -i '/^KUBE_SCHEDULER_ARGS=/ s#=.*#="--leader-elect=true --kubeconfig=/etc/kubernetes/admin.conf --authorization-always-allow-paths=/healthz,/readyz,/livez,/metrics "#' /etc/kubernetes/scheduler
430432

431433
$ssh_cmd mkdir -p /etc/kubernetes/manifests
432434
KUBELET_ARGS="--register-node=true --pod-manifest-path=/etc/kubernetes/manifests --hostname-override=${INSTANCE_NAME}"
433435
KUBELET_ARGS="${KUBELET_ARGS} --pod-infra-container-image=${CONTAINER_INFRA_PREFIX:-gcr.io/google_containers/}pause:3.1"
434436
KUBELET_ARGS="${KUBELET_ARGS} --cluster_dns=${DNS_SERVICE_IP} --cluster_domain=${DNS_CLUSTER_DOMAIN}"
437+
KUBELET_ARGS="${KUBELET_ARGS} --resolv-conf=/run/systemd/resolve/resolv.conf"
435438
KUBELET_ARGS="${KUBELET_ARGS} --volume-plugin-dir=/var/lib/kubelet/volumeplugins"
436439
KUBELET_ARGS="${KUBELET_ARGS} ${KUBELET_OPTIONS}"
437440

magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ mkdir -p /etc/kubernetes/manifests
246246
KUBELET_ARGS="--pod-manifest-path=/etc/kubernetes/manifests --kubeconfig ${KUBELET_KUBECONFIG} --hostname-override=${INSTANCE_NAME}"
247247
KUBELET_ARGS="${KUBELET_ARGS} --address=${KUBE_NODE_IP} --port=10250 --read-only-port=0 --anonymous-auth=false --authorization-mode=Webhook --authentication-token-webhook=true"
248248
KUBELET_ARGS="${KUBELET_ARGS} --cluster_dns=${DNS_SERVICE_IP} --cluster_domain=${DNS_CLUSTER_DOMAIN}"
249+
KUBELET_ARGS="${KUBELET_ARGS} --resolv-conf=/run/systemd/resolve/resolv.conf"
249250
KUBELET_ARGS="${KUBELET_ARGS} --volume-plugin-dir=/var/lib/kubelet/volumeplugins"
250251
KUBELET_ARGS="${KUBELET_ARGS} --node-labels=magnum.openstack.org/role=${NODEGROUP_ROLE}"
251252
KUBELET_ARGS="${KUBELET_ARGS} --node-labels=magnum.openstack.org/nodegroup=${NODEGROUP_NAME}"

0 commit comments

Comments
 (0)