feat(cert-checker): add Kubernetes resources for certificate checking functionality
- Implemented a new module for cert-checker with Kubernetes resources including ServiceAccount, Role, RoleBinding, ConfigMap, and CronJob. - Added Python script to check certificate expiry and restart deployments if necessary. - Configured environment variables for deployment name, namespace, and service details. - Included requirements for the Python environment. feat(devolo-exporter): introduce Devolo exporter for Prometheus metrics - Created a new module for Devolo exporter with Kubernetes resources including ServiceAccount, ConfigMap, Deployment, and Service. - Developed Python scripts to scrape metrics from Devolo devices and expose them to Prometheus. - Configured environment variables for Devolo device IP, model, and ports. - Added requirements for the Python environment.
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# Variables you can override:
|
||||
# enable_hyperv: true|false (default false)
|
||||
# install_docker: true|false (default true)
|
||||
|
||||
- name: Ensure Windows Containers feature is installed
|
||||
ansible.windows.win_feature:
|
||||
name: Containers
|
||||
state: present
|
||||
include_management_tools: yes
|
||||
register: containers_feature
|
||||
|
||||
- name: Ensure Hyper-V (optional, needed for some isolation modes)
|
||||
ansible.windows.win_feature:
|
||||
name: Hyper-V
|
||||
state: present
|
||||
include_management_tools: yes
|
||||
register: hyperv_feature
|
||||
when: enable_hyperv | default(false)
|
||||
|
||||
- name: Reboot if required after feature installation
|
||||
ansible.windows.win_reboot:
|
||||
msg: "Rebooting after enabling Containers/Hyper-V features"
|
||||
pre_reboot_delay: 15
|
||||
when: containers_feature.reboot_required or
|
||||
(enable_hyperv | default(false) and hyperv_feature.reboot_required | default(false))
|
||||
|
||||
- name: Ensure NuGet provider is available (for PowerShell packages)
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
if (-not (Get-PackageProvider -Name NuGet -ErrorAction SilentlyContinue)) {
|
||||
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
|
||||
Write-Output "installed"
|
||||
} else {
|
||||
Write-Output "present"
|
||||
}
|
||||
register: nuget_provider
|
||||
changed_when: "'installed' in nuget_provider.stdout"
|
||||
|
||||
- name: Ensure DockerMsftProvider module (package provider) is installed
|
||||
ansible.windows.win_psmodule:
|
||||
name: DockerMsftProvider
|
||||
state: present
|
||||
when: install_docker | default(true)
|
||||
|
||||
- name: Install/Update Docker (Mirantis / Microsoft packaged) runtime
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
$pkg = Get-Package -Name docker -ErrorAction SilentlyContinue
|
||||
if (-not $pkg) {
|
||||
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
|
||||
Write-Output "installed"
|
||||
} else {
|
||||
Write-Output "present"
|
||||
}
|
||||
register: docker_pkg
|
||||
changed_when: "'installed' in docker_pkg.stdout"
|
||||
when: install_docker | default(true)
|
||||
|
||||
- name: Ensure Docker service is enabled and running
|
||||
ansible.windows.win_service:
|
||||
name: docker
|
||||
start_mode: auto
|
||||
state: started
|
||||
when: install_docker | default(true)
|
||||
|
||||
- name: (Optional) Pull a test Windows base image
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
docker image inspect mcr.microsoft.com/windows/nanoserver:ltsc2022 2>$null
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
|
||||
Write-Output "pulled"
|
||||
} else {
|
||||
Write-Output "present"
|
||||
}
|
||||
register: base_image
|
||||
changed_when: "'pulled' in base_image.stdout"
|
||||
when: install_docker | default(true)
|
||||
|
||||
- name: Debug summary
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
containers_feature_changed: "{{ containers_feature.changed }}"
|
||||
hyperv_feature_changed: "{{ (hyperv_feature.changed if (enable_hyperv | default(false)) else false) | default(false) }}"
|
||||
docker_installed_changed: "{{ (docker_pkg.changed if (install_docker | default(true)) else false) | default(false) }}"
|
||||
Reference in New Issue
Block a user