mirror of
https://github.com/openshift/community.okd.git
synced 2026-03-26 19:03:14 +00:00
* Update ldap image in tests The bitnami openldap image we had been using is no longer being support by them. It has been moved over to a bitnamilegacy namespace, but it's not clear how long that will remain. We should find a better solution at some point. * Update versions in Dockerfile The dockerfile was built around python3.9 which forced the use of ansible 2.15. This updates the base image to ubi10 which uses python3.12 by default. The version of the oc/kubectl client package was updated to 4.20 as well. * Try and make it work * Remove backslash * debug * try and force 3.12 * use ubi9 * debug * try adding packaging * debug * Lots of changes * Add check for none * Fix python version
219 lines
6.7 KiB
YAML
219 lines
6.7 KiB
YAML
---
|
|
- name: Read registry information
|
|
community.okd.openshift_registry_info:
|
|
check: yes
|
|
register: registry
|
|
|
|
- name: Display registry information
|
|
debug: var=registry
|
|
|
|
- block:
|
|
- set_fact:
|
|
prune_ns: "prune-images"
|
|
prune_registry: "{{ registry.public_hostname }}"
|
|
container:
|
|
name: "httpd"
|
|
from: "centos/python-38-centos7:20210629-304c7c8"
|
|
pod_name: "test-pod"
|
|
|
|
- name: Ensure namespace is created
|
|
community.okd.k8s:
|
|
kind: Namespace
|
|
name: "{{ prune_ns }}"
|
|
|
|
- name: Import image into internal registry
|
|
community.okd.openshift_import_image:
|
|
namespace: "{{ prune_ns }}"
|
|
name: "{{ container.name }}"
|
|
source: "{{ container.from }}"
|
|
|
|
- name: Create simple Pod
|
|
community.okd.k8s:
|
|
namespace: "{{ prune_ns }}"
|
|
wait: yes
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: "{{ pod_name }}"
|
|
spec:
|
|
containers:
|
|
- name: test-container
|
|
image: "{{ prune_registry }}/{{ prune_ns }}/{{ container.name }}:latest"
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- while true;do date;sleep 5; done
|
|
|
|
- name: Create limit range for images size
|
|
community.okd.k8s:
|
|
namespace: "{{ prune_ns }}"
|
|
definition:
|
|
kind: "LimitRange"
|
|
metadata:
|
|
name: "image-resource-limits"
|
|
spec:
|
|
limits:
|
|
- type: openshift.io/Image
|
|
max:
|
|
storage: 1Gi
|
|
|
|
- name: Prune images from namespace
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
check_mode: yes
|
|
register: prune
|
|
|
|
- name: Assert that nothing to prune as image is in used
|
|
assert:
|
|
that:
|
|
- prune is not changed
|
|
- prune is successful
|
|
- prune.deleted_images == []
|
|
- prune.updated_image_streams == []
|
|
|
|
- name: Delete Pod created before
|
|
community.okd.k8s:
|
|
state: absent
|
|
name: "{{ pod_name }}"
|
|
kind: Pod
|
|
namespace: "{{ prune_ns }}"
|
|
wait: yes
|
|
|
|
- name: Prune images from namespace
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
check_mode: yes
|
|
register: prune
|
|
|
|
- name: Read ImageStream
|
|
kubernetes.core.k8s_info:
|
|
version: image.openshift.io/v1
|
|
kind: ImageStream
|
|
namespace: "{{ prune_ns }}"
|
|
name: "{{ container.name }}"
|
|
register: isinfo
|
|
|
|
- set_fact:
|
|
is_image_name: "{{ isinfo.resources.0.status.tags[0]['items'].0.image }}"
|
|
|
|
- name: Assert that corresponding Image and ImageStream were candidate for pruning
|
|
assert:
|
|
that:
|
|
- prune is changed
|
|
- prune.deleted_images | length == 1
|
|
- prune.deleted_images.0.metadata.name == is_image_name
|
|
- prune.updated_image_streams | length == 1
|
|
- prune.updated_image_streams.0.metadata.name == container.name
|
|
- prune.updated_image_streams.0.metadata.namespace == prune_ns
|
|
- prune.updated_image_streams.0.status.tags == []
|
|
|
|
- name: Prune images from namespace keeping images and referrer younger than 60minutes
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
keep_younger_than: 60
|
|
check_mode: yes
|
|
register: younger
|
|
|
|
- assert:
|
|
that:
|
|
- younger is not changed
|
|
- younger is successful
|
|
- younger.deleted_images == []
|
|
- younger.updated_image_streams == []
|
|
|
|
- name: Prune images over size limit
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
prune_over_size_limit: yes
|
|
check_mode: yes
|
|
register: prune_over_size
|
|
|
|
- assert:
|
|
that:
|
|
- prune_over_size is not changed
|
|
- prune_over_size is successful
|
|
- prune_over_size.deleted_images == []
|
|
- prune_over_size.updated_image_streams == []
|
|
|
|
- name: Update limit range for images size
|
|
community.okd.k8s:
|
|
namespace: "{{ prune_ns }}"
|
|
definition:
|
|
kind: "LimitRange"
|
|
metadata:
|
|
name: "image-resource-limits"
|
|
spec:
|
|
limits:
|
|
- type: openshift.io/Image
|
|
max:
|
|
storage: 1Ki
|
|
|
|
- name: Prune images over size limit (check_mode=yes)
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
prune_over_size_limit: yes
|
|
check_mode: yes
|
|
register: prune
|
|
|
|
- name: Assert Images and ImageStream were candidate for prune
|
|
assert:
|
|
that:
|
|
- prune is changed
|
|
- prune.deleted_images | length == 1
|
|
- prune.deleted_images.0.metadata.name == is_image_name
|
|
- prune.updated_image_streams | length == 1
|
|
- prune.updated_image_streams.0.metadata.name == container.name
|
|
- prune.updated_image_streams.0.metadata.namespace == prune_ns
|
|
- prune.updated_image_streams.0.status.tags == []
|
|
|
|
- name: Prune images over size limit
|
|
community.okd.openshift_adm_prune_images:
|
|
registry_url: "{{ prune_registry }}"
|
|
namespace: "{{ prune_ns }}"
|
|
prune_over_size_limit: yes
|
|
register: prune
|
|
|
|
- name: Assert that Images and ImageStream were candidate for prune
|
|
assert:
|
|
that:
|
|
- prune is changed
|
|
- prune.deleted_images | length == 1
|
|
- prune.deleted_images.0.details.name == is_image_name
|
|
- prune.updated_image_streams | length == 1
|
|
- prune.updated_image_streams.0.metadata.name == container.name
|
|
- prune.updated_image_streams.0.metadata.namespace == prune_ns
|
|
- '"tags" not in prune.updated_image_streams.0.status'
|
|
|
|
- name: Validate that ImageStream was updated
|
|
kubernetes.core.k8s_info:
|
|
version: image.openshift.io/v1
|
|
kind: ImageStream
|
|
namespace: "{{ prune_ns }}"
|
|
name: "{{ container.name }}"
|
|
register: stream
|
|
|
|
- name: Assert that ImageStream was updated
|
|
assert:
|
|
that:
|
|
- stream.resources | length == 1
|
|
- '"tags" not in stream.resources.0.status'
|
|
|
|
always:
|
|
- name: Delete namespace
|
|
community.okd.k8s:
|
|
name: "{{ prune_ns }}"
|
|
kind: Namespace
|
|
state: absent
|
|
ignore_errors: true
|
|
|
|
when:
|
|
- registry.public_hostname is not none
|
|
- registry.public_hostname | length > 0
|
|
- registry.check.reached
|