mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
This introduces a new global setting `vm.configdrive.primarypool.enabled` to toggle creation/hosting of config drive iso files on primary storage, the default will be false causing them to be hosted on secondary storage. The current support is limited from hypervisor resource side and in current implementation limited to `KVM` only. The next big change is that config drive is created at a temporary location by management server and shipped to either KVM or SSVM agent via cmd-answer pattern, the data of which is not logged in logs. This saves us from adding genisoimage dependency on cloudstack-agent pkg. The APIs to reset ssh public key, password and user-data (via update VM API) requires that VM should be shutdown. Therefore, in the refactoring I removed the case of updation of existing ISO. If there are objections I'll re-put the strategy to detach+attach new config iso as a way of updation. In the refactored implementation, the folder name is changed to lower-cased configdrive. And during VM start, migration or shutdown/removal if primary storage is enable for use, the KVM agent will handle cleanup tasks otherwise SSVM agent will handle them. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
115 lines
4.2 KiB
XML
115 lines
4.2 KiB
XML
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<artifactId>cloud-secondary-storage</artifactId>
|
|
<name>Apache CloudStack Secondary Storage Service</name>
|
|
<parent>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloudstack-service-secondary-storage</artifactId>
|
|
<version>4.11.1.0-SNAPSHOT</version>
|
|
<relativePath>../pom.xml</relativePath>
|
|
</parent>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.code.gson</groupId>
|
|
<artifactId>gson</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-codec</groupId>
|
|
<artifactId>commons-codec</artifactId>
|
|
</dependency>
|
|
<!-- required deps for the systemvm -->
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-agent</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-server</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-engine-storage-configdrive</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<!-- dependencies for starting a post upload server on ssvm -->
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-all</artifactId>
|
|
<version>4.0.33.Final</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skipTests>${skipTests}</skipTests>
|
|
<systemPropertyVariables>
|
|
<log4j.configuration>file:${project.build.testSourceDirectory}/../conf/log4j.xml</log4j.configuration>
|
|
</systemPropertyVariables>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>1.2.1</version>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<mainClass>com.cloud.agent.AgentShell</mainClass>
|
|
<arguments>
|
|
<argument>zone=1</argument>
|
|
<argument>pod=1</argument>
|
|
<argument>host=192.168.56.1</argument>
|
|
<argument>name=192.168.56.10</argument>
|
|
<argument>eth1ip=192.168.56.10</argument>
|
|
<argument>eth2ip=192.168.56.10</argument>
|
|
<argument>guid=SecondaryStorage.1</argument>
|
|
<argument>secondary.storage.vm=false</argument>
|
|
<argument>instance=Secondary</argument>
|
|
</arguments>
|
|
<systemProperties>
|
|
<systemProperty>
|
|
<key>javax.net.ssl.trustStore</key>
|
|
<value>certs/realhostip.keystore</value>
|
|
<key>log.home</key>
|
|
<value>${PWD}/</value>
|
|
</systemProperty>
|
|
</systemProperties>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|