diff --git a/config/_default/config.toml b/config/_default/config.toml index 078a8f5..9aa5a0c 100644 --- a/config/_default/config.toml +++ b/config/_default/config.toml @@ -81,7 +81,7 @@ offlineSearch = true projecthome = "/home/project" labsfoldername = "labs" labsubfolderprefix = "lab" -maxlabnumber = 7 +maxlabnumber = 9 end-of-lab-title = "Cleaning up resources" end-of-lab-text = "You have reached the end of this lab. Please stop your running virtual machines to save resources on the Kubernetes cluster." diff --git a/content/en/docs/live-migration/live-migration.md b/content/en/docs/live-migration/live-migration.md index b2d244c..f0bc4af 100644 --- a/content/en/docs/live-migration/live-migration.md +++ b/content/en/docs/live-migration/live-migration.md @@ -234,7 +234,7 @@ A successfully canceled migration will show the following states: * Failed: true -## {{% task %}} (Optional) Perform migrations using the `kubevirt` command +## {{% task %}} (Optional) Perform migrations using the `virtctl` command Let's use the `kubevirt migrate` to perform an additional migration. Follow the migration with the commands we've used in the lab above. Try to cancel a live migration, and verify it in the status section of the VMI manifest. diff --git a/content/en/docs/monitoring/node-exporter.md b/content/en/docs/monitoring/node-exporter.md index 3bfdb29..e91f501 100644 --- a/content/en/docs/monitoring/node-exporter.md +++ b/content/en/docs/monitoring/node-exporter.md @@ -120,10 +120,11 @@ kind: Service metadata: name: {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-node-exporter labels: - node-exporter: true + node-exporter: "true" spec: ports: - - port: metrics + - name: metrics + port: 9100 protocol: TCP targetPort: 9100 selector: @@ -176,7 +177,7 @@ spec: scheme: http selector: matchLabels: - node-exporter: true + node-exporter: "true" ``` @@ -187,7 +188,7 @@ spec: Stop the VirtualMachineInstance: ```bash -virtctl stop {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-node-exporter --namespace=$USER +virtctl stop {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-node-exporter --namespace=$USER ``` {{% /alert %}} diff --git a/content/en/docs/monitoring/probes.md b/content/en/docs/monitoring/probes.md index f281459..7b820d0 100644 --- a/content/en/docs/monitoring/probes.md +++ b/content/en/docs/monitoring/probes.md @@ -437,7 +437,12 @@ As a precondition, the guest agent needs to be installed in the virtual machine {{% /alert %}} -## {{% task %}} (Optional) Watchdog example +## Watchdog example + +{{% alert title="Warning" color="warning" %}} +This lab is not meant to be executed. +{{% /alert %}} + A watchdog offers a more VM-centric approach, meaning the OS monitors itself by sending heartbeats to a `i6300esb` device. When the heartbeat stops, the watchdog device executes an action. In our example the `poweroff` action. Other possible actions are `reset` and `shutdown`. diff --git a/content/en/docs/monitoring/prometheus-monitoring.md b/content/en/docs/monitoring/prometheus-monitoring.md index d18807f..6cf1a9e 100644 --- a/content/en/docs/monitoring/prometheus-monitoring.md +++ b/content/en/docs/monitoring/prometheus-monitoring.md @@ -76,7 +76,7 @@ The result will be a list of KubeVirt metrics this specific pod exposes. To integrate all those KubeVirt components into a running Prometheus stack, the following configuration is required in the `KubeVirt` custom resource: * monitorAccount: `` -* monitorNamespace: `` +* monitorNamespace: `` * serviceMonitorNamespace: `` diff --git a/content/en/docs/superlab/requirements.md b/content/en/docs/superlab/requirements.md index d9e3c3c..73bfe2e 100644 --- a/content/en/docs/superlab/requirements.md +++ b/content/en/docs/superlab/requirements.md @@ -25,12 +25,12 @@ Virtual machine: * Operating System: Fedora Cloud 40 * Recommended image: `{{% param "fedoraCloudCDI" %}}` -* MariaDB database -* Node Exporter +* Database: MariaDB +* Metrics Exporter: Node Exporter Web application: -* Python Example Web Application from acend. +* Application: Python Example Web Application from acend. * Image: `{{% param "exampleWebAppImage" %}}` * The webapp will listen on port `5000` * The connection to the database can be configured with the environment variable `MYSQL_URI=mysql://user:password@hostname/database-name` @@ -51,10 +51,10 @@ You should use a secret to store the database details. All components (database Database users and password -* database-name: acend_exampledb -* database-user: acend_user -* database-password: mysqlpassword -* database-root-password: mysqlrootpassword +* database-name: `acend_exampledb` +* database-user: `acend_user` +* database-password: `mysqlpassword` +* database-root-password: `mysqlrootpassword` ## Advanced information @@ -146,7 +146,7 @@ WantedBy=multi-user.target * Set password for fedora user * Mount secret with mysql details using virtiofs * Mount additional disk for the database data - * Enable and start the mariadb and node_exporter service + * Enable and start the mariadb and node exporter service * Load the database init script * Create a kubernetes Service for the node exporter and mariadb * The easiest health checks are tcp probes against the mariadb port diff --git a/content/en/docs/superlab/solution.md b/content/en/docs/superlab/solution.md index 57b3b03..2a76252 100644 --- a/content/en/docs/superlab/solution.md +++ b/content/en/docs/superlab/solution.md @@ -381,3 +381,28 @@ spec: - name: MYSQL_URI value: mysql://$(MYSQL_DATABASE_USER):$(MYSQL_DATABASE_PASSWORD)@{{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb/$(MYSQL_DATABASE_NAME) ``` + + +## End of lab + +{{% alert title="Cleanup resources" color="warning" %}} {{% param "end-of-lab-text" %}} + +If you applied the manifests above, delete the resources with: + +```bash +kubectl delete dv {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb --namespace=$USER +kubectl delete dv {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb-base --namespace=$USER +kubectl delete dv {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb-data --namespace=$USER +kubectl delete secret {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb --namespace=$USER +kubectl delete secret {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-cloudinit-mariadb-provisioner --namespace=$USER +kubectl delete secret {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-cloudinit-mariadb --namespace=$USER +kubectl delete vm {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb-provisioner --namespace=$USER +kubectl delete vm {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb --namespace=$USER +kubectl delete svc {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-mariadb --namespace=$USER +kubectl delete svc {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-webapp --namespace=$USER +kubectl delete svc {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-node-exporter --namespace=$USER +kubectl delete ingress {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-webapp --namespace=$USER +kubectl delete deployment {{% param "labsubfolderprefix" %}}{{% param "labfoldernumber" %}}-webapp --namespace=$USER +``` + +{{% /alert %}}