Skip to content

Commit 717903c

Browse files
committed
Merge release branch 4.20 to main
* 4.20: system vm destroy behaviour (#468) Added command to set libvirtd to traditional mode (#462) Add section about Domain VPCs (#410) note: AMQP configuration change (#463) Updating security group documentation (#469) vxlan prefix must be given to prevent interpretation as vlan (#465) Updated note in compute/service offering for enable/disable VM High Availability manager setting (#464) Disable API Key Access for users, accounts and domains (#446)
2 parents 2c002f9 + 4fd0b51 commit 717903c

12 files changed

+136
-11
lines changed
Loading
Loading

source/adminguide/accounts.rst

+73
Original file line numberDiff line numberDiff line change
@@ -884,3 +884,76 @@ password for a user:
884884

885885
.. figure:: /_static/images/reset-password.png
886886
:align: center
887+
888+
Using API Key and Secret Key based Authentication
889+
-------------------------------------------------
890+
Users can generate API key and Secret key to directly access CloudStack APIs.
891+
This authenctication method is used for programatically calling CloudStack APIs and thus helps in automation.
892+
The API key uniquely identifies the Account, while the Secret key is used to generate a secure singnature.
893+
When making an API call, the API key and signature are included along with the command and other parameters,
894+
and sent to the CloudStack API endpoint. For detailed information, refer to the CloudStack's Programmer Guide.
895+
896+
Disabling Api Key and Secret Key based Access
897+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
898+
Root Administrators may choose to Disable Api key based access for certain Users, Accounts or Domains.
899+
Or the Administrator may choose to Disable Api Key based access globally and allow only for certain users.
900+
This could be particularly useful in cases where external authorization mechanisms like LDAP, SAML or OAuth2 are used,
901+
as then Api key based authorization is the only means for automation.
902+
This gives control to the Admin over who is allowed to run automation.
903+
904+
Api key based access is enabled by default but it can be disabled (or enabled) at different granularities:
905+
906+
1. Users
907+
908+
Setting for a User can be changed through the Api Key Access field in the Edit User form, visible only to the Root Administrator.
909+
Three values are possible: Disable, Enable and Inherit. Inherit means that the User will inherit whatever value is set for the Account.
910+
911+
.. figure:: /_static/images/edit-user-api-key-access.png
912+
:align: center
913+
914+
Admins can also search for Users having the required Api key access value using the User list view search filter.
915+
916+
.. figure:: /_static/images/filter-user-api-key-access.png
917+
:align: center
918+
919+
2. Accounts
920+
921+
Similar to Users, Api Key Access field is present in the Edit Account Form and the Account list view search filter, only for the Root Administrator.
922+
If the value is set to Inherit, it means that Account will inherit whatever value is set for the Domain.
923+
924+
3. Domains
925+
926+
Api Key Access at Domain level is controlled by the Domain level setting "api.key.access". If the Domain level
927+
configuration is not set, then similar to other configurations it will consult the global value.
928+
929+
4. Global
930+
931+
The global value of the configuration setting "api.key.access" is set to 'True' by default. So Api Key Access at
932+
all levels is enabled by default. If the global value is changed to 'False' without setting any of the lower levels,
933+
then Api Key Access will be disabled for all Users.
934+
935+
Order of Precedence
936+
^^^^^^^^^^^^^^^^^^^
937+
The local value always takes precedence over the global value. So if Api key access is disabled for a User but
938+
enabled for an Account, the User authorisation will still fail. Only if the User's Api key access is set to
939+
'Inherit', the Account's Api Key Access value is considered.
940+
Similarly if Account's Api Key Access is set to 'Inherit', only then the Domain level setting is considered,
941+
And only if the Domain level configuration is not set, the Global configuration is considered.
942+
943+
Examples
944+
^^^^^^^^
945+
946+
#. Disallow Api key access for all Accounts and Users in a Domain.
947+
948+
#. Leave all User and Account level Api Key Access values to the default 'Inherit'.
949+
#. Set the Domain level setting "api.key.access" to False only for the required domain.
950+
951+
#. Disallow Api key access for some Users, but allowed globally.
952+
953+
#. Set the User level permission to ‘Disabled’ only for the required Users.
954+
#. All upper level permissions should either be Inherit or Enabled.
955+
956+
#. Allow Api key access to some Users, but disallowed globally.
957+
958+
#. Set User level permission to ‘Enabled’ only for the required Users.
959+
#. All upper level permissions should either be Inherit or Disabled.

source/adminguide/events.rst

+9-2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ in the AMQP server.
7373
Additionally, both an in-memory implementation and an Apache Kafka
7474
implementation are also available.
7575

76+
77+
.. note::
78+
On upgrading from 4.19.x or lower, existing AMQP or Kafka intergration
79+
configurations should be moved from folder
80+
``/etc/cloudstack/management/META-INF/cloudstack/core`` to
81+
``/etc/cloudstack/management/META-INF/cloudstack/event``
82+
7683
Use Cases
7784
~~~~~~~~~
7885

@@ -101,7 +108,7 @@ As a CloudStack administrator, perform the following one-time
101108
configuration to enable event notification framework. At run time no
102109
changes can control the behaviour.
103110

104-
#. Create the folder ``/etc/cloudstack/management/META-INF/cloudstack/core``
111+
#. Create the folder ``/etc/cloudstack/management/META-INF/cloudstack/event``
105112

106113
#. Inside that folder, open ``spring-event-bus-context.xml``.
107114

@@ -246,7 +253,7 @@ changes can control the behaviour.
246253
247254
248255
249-
#. Create the folder ``/etc/cloudstack/management/META-INF/cloudstack/core``
256+
#. Create the folder ``/etc/cloudstack/management/META-INF/cloudstack/event``
250257

251258
#. Inside that folder, open ``spring-event-bus-context.xml``.
252259

source/adminguide/networking/multiple_subnets_in_shared_network.rst

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ Adding Multiple Subnets to a Shared Network
9595
defaulted to the vlan of the network or if vlan of the network is
9696
null - to Untagged
9797

98+
.. note:: If the VNI is of a VXLAN, the protocol prefix `vxlan://` must be used, like in `vxlan://<vni>`
99+
98100
#. Click OK.
99101

100102

source/adminguide/networking/security_groups.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ rules filter network traffic according to the IP address that is
2727
attempting to communicate with the instance. Security groups are particularly
2828
useful in zones that use basic networking, because there is a single
2929
guest network for all Guest Instances. In advanced zones, security groups are
30-
supported only on the KVM hypervisor.
30+
supported only on the KVM hypervisor and XenServer/XCP-ng with the network backend
31+
configured as "bridge".
3132

3233
.. note::
3334
In a zone that uses advanced networking, you can instead define
@@ -41,8 +42,7 @@ desired set of rules.
4142
Any CloudStack user can set up any number of additional security groups.
4243
When a new instance is launched, it is assigned to the default security group
4344
unless another user-defined security group is specified. An instance can be a
44-
member of any number of security groups. Once an instance is assigned to a
45-
security group, it remains in that group for its entire lifetime; you
45+
member of any number of security groups. You can change the security groups of an instance only in a stopped state; you
4646
can not move a running instance from one security group to another.
4747

4848
You can modify a security group by deleting or adding any number of

source/adminguide/networking/virtual_private_cloud_config.rst

+20
Original file line numberDiff line numberDiff line change
@@ -1448,6 +1448,26 @@ Editing, Restarting, and Removing a Virtual Private Cloud
14481448
|restart-vpc.png|
14491449

14501450

1451+
Working with Domain VPCs
1452+
~~~~~~~~~~~~~~~~~~~~~~~~
1453+
1454+
The functionality of domain VPCs allows operators to aggregate multiple
1455+
Network Tiers from distinct users on the same VPC, reducing the number of virtual
1456+
routers necessary in the environment, and consequently, decreasing the
1457+
amount of public IP addresses consumed. All Network Tiers added to the VPC share
1458+
the same VR, but each one has their own broadcast domain and features
1459+
implemented by the VPC, such as DHCP, NAT, and so on.
1460+
1461+
In order to utilize this functionality, a new Network Tier must be included to an
1462+
existing VPC by inputing the respective data for the account and the VPC
1463+
on the **'createNetwork'** API. It is important to note that, in order
1464+
for a Network Tier of a different account to be created on the VPC, the account
1465+
that creates the Network Tier must have access to both the account that owns the
1466+
VPC and the account that owns the Network Tier. The owner of the VPC must also
1467+
have access to the account that owns the Network Tier, however, the opposite
1468+
is not required.
1469+
1470+
14511471
.. |add-vpc.png| image:: /_static/images/add-vpc.png
14521472
:alt: adding a vpc.
14531473
.. |add-tier.png| image:: /_static/images/add-tier.png

source/adminguide/service_offerings.rst

+13-5
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ To create a new compute offering:
212212
it enables the admin to set some boundaries.
213213

214214
- **# of CPU cores**: The number of cores which should be allocated
215-
to a system VM with this offering. If 'Custom constrained' is checked, the admin will
215+
to the VM with this offering. If 'Custom constrained' is checked, the admin will
216216
be asked to enter the minimum and maximum number of CPUs that a user
217217
can request. If 'Custom unconstrained' is checked, this field does not appear
218218
as the user will be prompted to enter a value when creating their guest Instance.
@@ -226,7 +226,7 @@ To create a new compute offering:
226226
will be prompted to enter a value when creating their guest Instance.
227227

228228
- **Memory (in MB)**: The amount of memory in megabytes that the
229-
system VM should be allocated. For example, “2048” would provide
229+
VM should be allocated. For example, “2048” would provide
230230
a 2 GB RAM allocation. If 'Custom constrained' is selected, the admin will
231231
be asked to enter the minimum and maximum amount of RAM that a user
232232
can request. If 'Custom unconstrained' is selected, this field does
@@ -238,7 +238,11 @@ To create a new compute offering:
238238
- **Network Rate**: Allowed data transfer rate in MB per second.
239239

240240
- **Offer HA**: If yes, the administrator can choose to have the
241-
system VM be monitored and as highly available as possible.
241+
VM be monitored and as highly available as possible.
242+
243+
.. note::
244+
The HA is offered when the VM High Availability manager is enabled in the zone using the setting 'vm.ha.enabled', by default this setting is enabled.
245+
When disabled, alerts are sent during HA attempts when 'vm.ha.alerts.enabled' setting is enabled.
242246

243247
- **Dynamic Scaling Enabled**: If yes, Instance can be dynamically scalable of cpu or memory
244248

@@ -336,7 +340,7 @@ To create a new compute offering:
336340

337341
- **Storage type**: The type of disk that should be allocated. Local
338342
allocates from storage attached directly to the host where the
339-
system VM is running. Shared allocates from storage accessible via
343+
VM is running. Shared allocates from storage accessible via
340344
NFS.
341345

342346
- **Provisioning type**: The type of disk that should be allocated.
@@ -389,7 +393,7 @@ To create a new compute offering:
389393
disk that represents the root disk. This does not apply for KVM.
390394

391395
- **Storage Tags**: The tags that should be associated with the
392-
primary storage used by the system VM.
396+
primary storage used by the VM.
393397

394398
When the flag is disabled
395399

@@ -599,6 +603,10 @@ To create a system service offering:
599603
- **Offer HA**: If yes, the administrator can choose to have the system
600604
VM be monitored and as highly available as possible.
601605

606+
.. note::
607+
The HA is offered when the VM High Availability manager is enabled in the zone using the setting 'vm.ha.enabled', by default this setting is enabled.
608+
When disabled, alerts are sent during HA attempts when 'vm.ha.alerts.enabled' setting is enabled.
609+
602610
- **Storage Tags**: The tags that should be associated with the primary
603611
storage used by the system VM.
604612

source/adminguide/systemvm.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
CloudStack uses several types of system Instances to perform
1818
tasks in the cloud. In general CloudStack manages these system VMs and
1919
creates, starts, and stops them as needed based on scale and immediate
20-
needs. However, the administrator should be aware of them and their
20+
needs. Unlike user VMs, system VMs are expunged on destroying them. However, the administrator should be aware of them and their
2121
roles to assist in debugging issues.
2222

2323

source/installguide/configuration.rst

+2
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,8 @@ Core Zone
637637

638638
- **VLAN / VNI ID.** The VLAN / VNI ID's that will be used for guest traffic.
639639

640+
.. note:: If the VNI is of a VXLAN, the protocol prefix `vxlan://` must be used, like in `vxlan://<vni>`
641+
640642
#. In a new pod, CloudStack adds the first cluster for you. You can
641643
always add more clusters later. For an overview of what a cluster is,
642644
see :ref:`about-clusters`

source/installguide/hypervisor/kvm.rst

+6
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,12 @@ cloudstack-agent and should already be installed.
478478
.. parsed-literal::
479479
remote_mode="legacy"
480480
481+
On Ubuntu 24.04 or newer set libvirtd mode to traditional mode (see https://libvirt.org/manpages/libvirtd.html#system-socket-activation):
482+
483+
.. parsed-literal::
484+
485+
systemctl mask libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tls.socket libvirtd-tcp.socket
486+
481487
482488
#. Restart libvirt
483489

source/releasenotes/about.rst

+7
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,10 @@ Up until 4.19.x.x, the JRE used for ACS was JRE 11. In 4.20.0.0, JRE has been up
5151
This means that Centos7 (EL7) is no longer supported.
5252

5353
.. _official Log4j documentation: https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html
54+
55+
Events Message Bus Change
56+
=========================
57+
On upgrading from 4.19.x or lower, existing AMQP or Kafka intergration
58+
configurations should be moved from folder
59+
``/etc/cloudstack/management/META-INF/cloudstack/core`` to
60+
``/etc/cloudstack/management/META-INF/cloudstack/event``

0 commit comments

Comments
 (0)