chore: refactor to vexxhost.k8s.docker_image
diff --git a/galaxy.yml b/galaxy.yml
index cf6dd31..0fe1d5f 100644
--- a/galaxy.yml
+++ b/galaxy.yml
@@ -16,6 +16,7 @@
kubernetes.core: 2.3.2
openstack.cloud: 1.7.0
community.mysql: 3.6.0
+ vexxhost.kubernetes: 1.2.0
tags:
- application
- cloud
diff --git a/plugins/filter/docker_image.py b/plugins/filter/docker_image.py
deleted file mode 100644
index dba6bab..0000000
--- a/plugins/filter/docker_image.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# Licensed 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.
-
-from __future__ import absolute_import, division, print_function
-
-__metaclass__ = type
-
-from ansible.errors import AnsibleFilterError
-from ansible.module_utils.common.collections import is_string
-
-try:
- from docker_image import reference
-
- HAS_DOCKER_IMAGE = True
-except ImportError:
- HAS_DOCKER_IMAGE = False
-
-DOCUMENTATION = """
- name: docker_image
- short_description: Parse a Docker image reference
- version_added: 0.13.0
- description:
- - Parse a Docker image and return different parts of the reference
- - This lookup module requires "docker-image-py" to be installed on the
- Ansible controller.
- options:
- _input:
- type: string
- required: true
- description:
- - Docker image reference to parse
- part:
- type: string
- default: 'ref'
- options: [name, ref, tag, domain, path]
- required: true
- description:
- - Part of the Docker image reference to return
- registry:
- type: string
- required: false
- description:
- - Override the registry in the Docker image reference
- author:
- - Mohammed Naser <mnaser@vexxhost.com>
-"""
-
-EXAMPLES = """
- - name: Generate a Docker image reference
- ansible.builtin.debug:
- msg: "{{ 'docker.io/library/memcached:1.6.3' | vexxhost.atmosphere.docker_image('name') }}"
-"""
-
-RETURN = """
- _value:
- description: The part of the Docker image reference
- type: string
-"""
-
-
-def docker_image(value, part="ref", registry=None):
- if not is_string(value):
- raise AnsibleFilterError(
- "Invalid value type (%s) for docker_image (%r)" % (type(value), value)
- )
-
- if not HAS_DOCKER_IMAGE:
- raise AnsibleFilterError(
- "Failed to import docker-image-py module, ensure it is installed on the controller"
- )
-
- def _lookup_part(ref, part):
- if part == "ref":
- return ref.string()
- if part == "name":
- return ref["name"]
- if part == "tag":
- return ref["tag"]
- if part == "domain":
- return ref.repository["domain"]
- if part == "path":
- return ref.repository["path"]
- if part == "digest":
- return ref["digest"]
- if part == "prefix":
- path_parts = ref.repository["path"].split("/")[:-1]
- path = "/".join(path_parts)
- return "%s/%s" % (ref.repository["domain"], path)
-
- ref = reference.Reference.parse(value)
- if not registry:
- return _lookup_part(ref, part)
-
- # NOTE(mnaser): We re-write the name of a few images to make sense of them
- # in the context of the override registry.
- ref_name = ref.repository["path"].split("/")[-1]
- if value == "skopeo":
- ref_name = "skopeo-stable"
-
- # NOTE(mnaser): Since the attributes inside of reference.Reference are not
- # determined during parse time, we need to re-parse the
- # string to get the correct attributes.
- ref["name"] = "{}/{}".format(registry, ref_name)
- ref = reference.Reference.parse(ref.string())
-
- return _lookup_part(ref, part)
-
-
-class FilterModule(object):
- def filters(self):
- return {"docker_image": docker_image}
diff --git a/roles/ceph_csi_rbd/vars/main.yml b/roles/ceph_csi_rbd/vars/main.yml
index 518c151..74948e4 100644
--- a/roles/ceph_csi_rbd/vars/main.yml
+++ b/roles/ceph_csi_rbd/vars/main.yml
@@ -21,25 +21,25 @@
containerPort: 8081
registrar:
image:
- repository: "{{ atmosphere_images['csi_node_driver_registrar'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_node_driver_registrar'] | vexxhost.kubernetes.docker_image('name') }}"
plugin:
image:
- repository: "{{ atmosphere_images['csi_rbd_plugin'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_rbd_plugin'] | vexxhost.kubernetes.docker_image('name') }}"
provisioner:
nodeSelector:
openstack-control-plane: enabled
provisioner:
image:
- repository: "{{ atmosphere_images['csi_rbd_provisioner'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_rbd_provisioner'] | vexxhost.kubernetes.docker_image('name') }}"
attacher:
image:
- repository: "{{ atmosphere_images['csi_rbd_attacher'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_rbd_attacher'] | vexxhost.kubernetes.docker_image('name') }}"
resizer:
image:
- repository: "{{ atmosphere_images['csi_rbd_resizer'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_rbd_resizer'] | vexxhost.kubernetes.docker_image('name') }}"
snapshotter:
image:
- repository: "{{ atmosphere_images['csi_rbd_snapshotter'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['csi_rbd_snapshotter'] | vexxhost.kubernetes.docker_image('name') }}"
storageClass:
create: true
name: general
diff --git a/roles/cert_manager/vars/main.yml b/roles/cert_manager/vars/main.yml
index 5c31124..cc3e737 100644
--- a/roles/cert_manager/vars/main.yml
+++ b/roles/cert_manager/vars/main.yml
@@ -16,8 +16,8 @@
installCRDs: true
featureGates: AdditionalCertificateOutputFormats=true
image:
- repository: "{{ atmosphere_images['cert_manager_controller'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['cert_manager_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cert_manager_controller'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['cert_manager_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
volumes:
- name: etc-ssl-certs
hostPath:
@@ -34,17 +34,17 @@
nodeSelector:
openstack-control-plane: enabled
image:
- repository: "{{ atmosphere_images['cert_manager_webhook'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['cert_manager_webhook'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cert_manager_webhook'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['cert_manager_webhook'] | vexxhost.kubernetes.docker_image('tag') }}"
cainjector:
nodeSelector:
openstack-control-plane: enabled
image:
- repository: "{{ atmosphere_images['cert_manager_cainjector'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['cert_manager_cainjector'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cert_manager_cainjector'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['cert_manager_cainjector'] | vexxhost.kubernetes.docker_image('tag') }}"
startupapicheck:
nodeSelector:
openstack-control-plane: enabled
image:
- repository: "{{ atmosphere_images['cert_manager_cli'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['cert_manager_cli'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cert_manager_cli'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['cert_manager_cli'] | vexxhost.kubernetes.docker_image('tag') }}"
diff --git a/roles/cilium/vars/main.yml b/roles/cilium/vars/main.yml
index 988dc5a..27bfdac 100644
--- a/roles/cilium/vars/main.yml
+++ b/roles/cilium/vars/main.yml
@@ -1,13 +1,13 @@
_cilium_helm_values:
image:
- repository: "{{ atmosphere_images['cilium_node'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['cilium_node'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cilium_node'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['cilium_node'] | vexxhost.kubernetes.docker_image('tag') }}"
useDigest: false
tunnel: geneve
operator:
image:
- repository: "{{ atmosphere_images['cilium_operator'] | vexxhost.atmosphere.docker_image('name') | replace('-generic', '') }}"
- tag: "{{ atmosphere_images['cilium_operator'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cilium_operator'] | vexxhost.kubernetes.docker_image('name') | replace('-generic', '') }}"
+ tag: "{{ atmosphere_images['cilium_operator'] | vexxhost.kubernetes.docker_image('tag') }}"
useDigest: false
nodeSelector:
openstack-control-plane: enabled
diff --git a/roles/containerd/defaults/main.yml b/roles/containerd/defaults/main.yml
index 76962ba..64879dd 100644
--- a/roles/containerd/defaults/main.yml
+++ b/roles/containerd/defaults/main.yml
@@ -26,7 +26,7 @@
containerd_download_unarchive_dest: "{{ download_artifact_work_directory }}/containerd-{{ containerd_version }}-{{ ansible_system | lower }}-{{ download_artifact_goarch }}" # noqa: yaml[line-length]
containerd_archive_checksum: "{{ containerd_archive_checksums[download_artifact_goarch][containerd_version] }}"
-containerd_pause_image: "{{ atmosphere_images['pause'] | vexxhost.atmosphere.docker_image('ref') }}"
+containerd_pause_image: "{{ atmosphere_images['pause'] | vexxhost.kubernetes.docker_image('ref') }}"
containerd_insecure_registries: []
# NOTE(mnaser): This is to accomodate for the uninstallation of the old packages
diff --git a/roles/coredns/vars/main.yml b/roles/coredns/vars/main.yml
index 0459a60..000e069 100644
--- a/roles/coredns/vars/main.yml
+++ b/roles/coredns/vars/main.yml
@@ -14,7 +14,7 @@
_coredns_helm_values:
image:
- repository: "{{ atmosphere_images['neutron_coredns'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['neutron_coredns'] | vexxhost.kubernetes.docker_image('name') }}"
replicaCount: 3
prometheus:
service:
diff --git a/roles/image_manifest/defaults/main.yml b/roles/image_manifest/defaults/main.yml
index 9bb6354..05cd651 100644
--- a/roles/image_manifest/defaults/main.yml
+++ b/roles/image_manifest/defaults/main.yml
@@ -6,6 +6,6 @@
atmosphere_images: "{{ dict(
atmosphere_images.keys() |
zip(
- atmosphere_images.values() | map('vexxhost.atmosphere.docker_image', 'ref', registry=image_manifest_registry)
+ atmosphere_images.values() | map('vexxhost.kubernetes.docker_image', 'ref', registry=image_manifest_registry)
)
) }}"
diff --git a/roles/ingress_nginx/vars/main.yml b/roles/ingress_nginx/vars/main.yml
index 3f86fd1..f62eb4e 100644
--- a/roles/ingress_nginx/vars/main.yml
+++ b/roles/ingress_nginx/vars/main.yml
@@ -15,10 +15,10 @@
_ingress_nginx_helm_values:
controller:
image:
- registry: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.atmosphere.docker_image('domain') }}"
- image: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
- digest: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.atmosphere.docker_image('digest') }}"
+ registry: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.kubernetes.docker_image('domain') }}"
+ image: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
+ digest: "{{ atmosphere_images['ingress_nginx_controller'] | vexxhost.kubernetes.docker_image('digest') }}"
config:
proxy-buffer-size: 16k
dnsPolicy: ClusterFirstWithHostNet
@@ -35,18 +35,18 @@
port: 7443
patch:
image:
- registry: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('domain') }}"
- image: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('tag') }}"
- digest: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('digest') }}"
+ registry: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('domain') }}"
+ image: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('tag') }}"
+ digest: "{{ atmosphere_images['ingress_nginx_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('digest') }}"
metrics:
enabled: true
defaultBackend:
enabled: true
image:
- registry: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.atmosphere.docker_image('domain') }}"
- image: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.atmosphere.docker_image('tag') }}"
+ registry: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.kubernetes.docker_image('domain') }}"
+ image: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['ingress_nginx_default_backend'] | vexxhost.kubernetes.docker_image('tag') }}"
tcp:
'5354': openstack/minidns:5354
udp:
diff --git a/roles/ipmi_exporter/tasks/main.yml b/roles/ipmi_exporter/tasks/main.yml
index 9e9ad80..c83104d 100644
--- a/roles/ipmi_exporter/tasks/main.yml
+++ b/roles/ipmi_exporter/tasks/main.yml
@@ -47,7 +47,7 @@
spec:
containers:
- name: exporter
- image: "{{ atmosphere_images['prometheus_ipmi_exporter'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['prometheus_ipmi_exporter'] | vexxhost.kubernetes.docker_image('ref') }}"
ports:
- name: metrics
containerPort: 9290
diff --git a/roles/keepalived/tasks/main.yml b/roles/keepalived/tasks/main.yml
index ec6d8d5..50eb9d3 100644
--- a/roles/keepalived/tasks/main.yml
+++ b/roles/keepalived/tasks/main.yml
@@ -118,7 +118,7 @@
automountServiceAccountToken: true
initContainers:
- name: init
- image: "{{ atmosphere_images['dep_check'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['dep_check'] | vexxhost.kubernetes.docker_image('ref') }}"
env:
- name: NAMESPACE
valueFrom:
@@ -133,7 +133,7 @@
- name: DEPENDENCY_POD_JSON
value: '[{"labels":{"application":"neutron","component":"neutron-ovs-agent"},"requireSameNode":true}]'
- name: wait-for-ip
- image: "{{ atmosphere_images['keepalived'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['keepalived'] | vexxhost.kubernetes.docker_image('ref') }}"
command:
- /bin/wait-for-ip.sh
volumeMounts:
@@ -144,7 +144,7 @@
subPath: wait-for-ip.sh
containers:
- name: keepalived
- image: "{{ atmosphere_images['keepalived'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['keepalived'] | vexxhost.kubernetes.docker_image('ref') }}"
command:
- keepalived
- -f
diff --git a/roles/kube_prometheus_stack/vars/main.yml b/roles/kube_prometheus_stack/vars/main.yml
index e566405..eeb27e8 100644
--- a/roles/kube_prometheus_stack/vars/main.yml
+++ b/roles/kube_prometheus_stack/vars/main.yml
@@ -16,8 +16,8 @@
regex: ^(container|endpoint|namespace|pod|node|service)$
alertmanagerSpec:
image:
- repository: "{{ atmosphere_images['alertmanager'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['alertmanager'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['alertmanager'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['alertmanager'] | vexxhost.kubernetes.docker_image('tag') }}"
storage:
volumeClaimTemplate:
spec:
@@ -31,12 +31,12 @@
openstack-control-plane: enabled
grafana:
image:
- repository: "{{ atmosphere_images['grafana'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['grafana'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['grafana'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['grafana'] | vexxhost.kubernetes.docker_image('tag') }}"
sidecar:
image:
- repository: "{{ atmosphere_images['grafana_sidecar'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['grafana_sidecar'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['grafana_sidecar'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['grafana_sidecar'] | vexxhost.kubernetes.docker_image('tag') }}"
additionalDataSources:
- name: Loki
type: loki
@@ -97,8 +97,8 @@
relabelings: *relabelings_instance_to_node_name
kube-state-metrics:
image:
- repository: "{{ atmosphere_images['kube_state_metrics'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['kube_state_metrics'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['kube_state_metrics'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['kube_state_metrics'] | vexxhost.kubernetes.docker_image('tag') }}"
prometheus:
monitor:
relabelings: *relabelings_instance_to_pod_name
@@ -108,8 +108,8 @@
relabelings: *relabelings_instance_to_pod_name
prometheusSpec:
image:
- repository: "{{ atmosphere_images['prometheus'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['prometheus'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['prometheus'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus'] | vexxhost.kubernetes.docker_image('tag') }}"
nodeSelector: *node_selector
secrets:
- kube-prometheus-stack-etcd-client-cert
@@ -235,23 +235,23 @@
admissionWebhooks:
patch:
image:
- repository: "{{ atmosphere_images['prometheus_operator_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['prometheus_operator_kube_webhook_certgen'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['prometheus_operator_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus_operator_kube_webhook_certgen'] | vexxhost.kubernetes.docker_image('tag') }}"
nodeSelector: *node_selector
serviceMonitor:
relabelings: *relabelings_instance_to_pod_name
nodeSelector: *node_selector
image:
- repository: "{{ atmosphere_images['prometheus_operator'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['prometheus_operator'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['prometheus_operator'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus_operator'] | vexxhost.kubernetes.docker_image('tag') }}"
prometheusConfigReloader:
image:
- repository: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.kubernetes.docker_image('tag') }}"
prometheus-node-exporter:
image:
- repository: "{{ atmosphere_images['prometheus_node_exporter'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['prometheus_node_exporter'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['prometheus_node_exporter'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus_node_exporter'] | vexxhost.kubernetes.docker_image('tag') }}"
extraArgs:
- --collector.diskstats.ignored-devices=^(ram|loop|nbd|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$
- --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|fuse.squashfuse_ll|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
diff --git a/roles/kubernetes/templates/haproxy.yaml.j2 b/roles/kubernetes/templates/haproxy.yaml.j2
index f7f3c53..cc753a9 100644
--- a/roles/kubernetes/templates/haproxy.yaml.j2
+++ b/roles/kubernetes/templates/haproxy.yaml.j2
@@ -6,7 +6,7 @@
spec:
containers:
- name: haproxy
- image: "{{ atmosphere_images['haproxy'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['haproxy'] | vexxhost.kubernetes.docker_image('ref') }}"
livenessProbe:
failureThreshold: 8
httpGet:
diff --git a/roles/kubernetes/templates/keepalived.yaml.j2 b/roles/kubernetes/templates/keepalived.yaml.j2
index 529f05d..a2b579d 100644
--- a/roles/kubernetes/templates/keepalived.yaml.j2
+++ b/roles/kubernetes/templates/keepalived.yaml.j2
@@ -7,7 +7,7 @@
spec:
containers:
- name: keepalived
- image: "{{ atmosphere_images['keepalived'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['keepalived'] | vexxhost.kubernetes.docker_image('ref') }}"
command: ["keepalived", "-f", "/etc/keepalived/keepalived.conf", "--dont-fork", "--log-console", "--log-detail", "--dump-conf"]
resources: {}
securityContext:
diff --git a/roles/loki/vars/main.yml b/roles/loki/vars/main.yml
index dffbb2c..f00b0ab 100644
--- a/roles/loki/vars/main.yml
+++ b/roles/loki/vars/main.yml
@@ -15,9 +15,9 @@
_loki_helm_values:
loki:
image:
- registry: "{{ atmosphere_images['loki'] | vexxhost.atmosphere.docker_image('domain') }}"
- repository: "{{ atmosphere_images['loki'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['loki'] | vexxhost.atmosphere.docker_image('tag') }}"
+ registry: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('domain') }}"
+ repository: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['loki'] | vexxhost.kubernetes.docker_image('tag') }}"
auth_enabled: false
commonConfig:
replication_factor: 1
@@ -40,6 +40,6 @@
size: 256Gi
gateway:
image:
- registry: "{{ atmosphere_images['loki_gateway'] | vexxhost.atmosphere.docker_image('domain') }}"
- repository: "{{ atmosphere_images['loki_gateway'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['loki_gateway'] | vexxhost.atmosphere.docker_image('tag') }}"
+ registry: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('domain') }}"
+ repository: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['loki_gateway'] | vexxhost.kubernetes.docker_image('tag') }}"
diff --git a/roles/magnum/defaults/main.yml b/roles/magnum/defaults/main.yml
index bc30e8a..285fe99 100644
--- a/roles/magnum/defaults/main.yml
+++ b/roles/magnum/defaults/main.yml
@@ -29,17 +29,17 @@
magnum_clusterctl_config:
images:
cluster-api/cluster-api-controller:
- repository: "{{ atmosphere_images['cluster_api_controller'] | vexxhost.atmosphere.docker_image('prefix') }}"
- tag: "{{ atmosphere_images['cluster_api_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cluster_api_controller'] | vexxhost.kubernetes.docker_image('prefix') }}"
+ tag: "{{ atmosphere_images['cluster_api_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
bootstrap-kubeadm/kubeadm-bootstrap-controller:
- repository: "{{ atmosphere_images['cluster_api_kubeadm_bootstrap_controller'] | vexxhost.atmosphere.docker_image('prefix') }}"
- tag: "{{ atmosphere_images['cluster_api_kubeadm_bootstrap_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cluster_api_kubeadm_bootstrap_controller'] | vexxhost.kubernetes.docker_image('prefix') }}"
+ tag: "{{ atmosphere_images['cluster_api_kubeadm_bootstrap_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
control-plane-kubeadm/kubeadm-control-plane-controller:
- repository: "{{ atmosphere_images['cluster_api_kubeadm_control_plane_controller'] | vexxhost.atmosphere.docker_image('prefix') }}"
- tag: "{{ atmosphere_images['cluster_api_kubeadm_control_plane_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cluster_api_kubeadm_control_plane_controller'] | vexxhost.kubernetes.docker_image('prefix') }}"
+ tag: "{{ atmosphere_images['cluster_api_kubeadm_control_plane_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
infrastructure-openstack/capi-openstack-controller:
- repository: "{{ atmosphere_images['cluster_api_openstack_controller'] | vexxhost.atmosphere.docker_image('prefix') }}"
- tag: "{{ atmosphere_images['cluster_api_openstack_controller'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['cluster_api_openstack_controller'] | vexxhost.kubernetes.docker_image('prefix') }}"
+ tag: "{{ atmosphere_images['cluster_api_openstack_controller'] | vexxhost.kubernetes.docker_image('tag') }}"
# List of images to load into OpenStack for Magnum
magnum_image_container_format: bare
diff --git a/roles/magnum/tasks/main.yml b/roles/magnum/tasks/main.yml
index 05eecb1..c8a3e68 100644
--- a/roles/magnum/tasks/main.yml
+++ b/roles/magnum/tasks/main.yml
@@ -201,7 +201,7 @@
value: /var/lib/registry
- name: REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED
value: "true"
- image: "{{ atmosphere_images['magnum_registry'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['magnum_registry'] | vexxhost.kubernetes.docker_image('ref') }}"
ports:
- containerPort: 5000
name: registry
@@ -263,7 +263,7 @@
restartPolicy: OnFailure
containers:
- name: loader
- image: "{{ atmosphere_images['magnum_api'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['magnum_api'] | vexxhost.kubernetes.docker_image('ref') }}"
command:
- magnum-cluster-api-image-loader
- --insecure
diff --git a/roles/node_feature_discovery/vars/main.yml b/roles/node_feature_discovery/vars/main.yml
index cfe6295..65aa7e1 100644
--- a/roles/node_feature_discovery/vars/main.yml
+++ b/roles/node_feature_discovery/vars/main.yml
@@ -14,7 +14,7 @@
_node_feature_discovery_helm_values:
image:
- repository: "{{ atmosphere_images['node_feature_discovery'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['node_feature_discovery'] | vexxhost.kubernetes.docker_image('name') }}"
master:
nodeSelector:
openstack-control-plane: enabled
diff --git a/roles/openstack_exporter/tasks/main.yml b/roles/openstack_exporter/tasks/main.yml
index 8298a06..a7ef425 100644
--- a/roles/openstack_exporter/tasks/main.yml
+++ b/roles/openstack_exporter/tasks/main.yml
@@ -37,7 +37,7 @@
openstack-control-plane: enabled
initContainers:
- name: build-config
- image: "{{ atmosphere_images['bootstrap'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['bootstrap'] | vexxhost.kubernetes.docker_image('ref') }}"
command: ["bash", "-ec"]
args:
- |
@@ -65,7 +65,7 @@
mountPath: /etc/openstack
containers:
- name: openstack-exporter
- image: "{{ atmosphere_images['prometheus_openstack_exporter'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['prometheus_openstack_exporter'] | vexxhost.kubernetes.docker_image('ref') }}"
args:
- --endpoint-type
- internal
diff --git a/roles/percona_xtradb_cluster/vars/main.yml b/roles/percona_xtradb_cluster/vars/main.yml
index 334d165..7692832 100644
--- a/roles/percona_xtradb_cluster/vars/main.yml
+++ b/roles/percona_xtradb_cluster/vars/main.yml
@@ -3,7 +3,7 @@
secretsName: percona-xtradb
pxc:
size: 3
- image: "{{ atmosphere_images['percona_xtradb_cluster'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['percona_xtradb_cluster'] | vexxhost.kubernetes.docker_image('ref') }}"
autoRecovery: true
configuration: |
[mysqld]
@@ -11,7 +11,7 @@
innodb_buffer_pool_size=4096M
sidecars:
- name: exporter
- image: "{{ atmosphere_images['prometheus_mysqld_exporter'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['prometheus_mysqld_exporter'] | vexxhost.kubernetes.docker_image('ref') }}"
env:
- name: MONITOR_PASSWORD
valueFrom:
@@ -37,6 +37,6 @@
haproxy:
enabled: true
size: 3
- image: "{{ atmosphere_images['percona_xtradb_cluster_haproxy'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['percona_xtradb_cluster_haproxy'] | vexxhost.kubernetes.docker_image('ref') }}"
nodeSelector:
openstack-control-plane: enabled
diff --git a/roles/percona_xtradb_cluster_operator/vars/main.yml b/roles/percona_xtradb_cluster_operator/vars/main.yml
index 15079c7..0f13ba0 100644
--- a/roles/percona_xtradb_cluster_operator/vars/main.yml
+++ b/roles/percona_xtradb_cluster_operator/vars/main.yml
@@ -13,6 +13,6 @@
# under the License.
_percona_xtradb_cluster_operator_helm_values:
- image: "{{ atmosphere_images['percona_xtradb_cluster_operator'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['percona_xtradb_cluster_operator'] | vexxhost.kubernetes.docker_image('ref') }}"
nodeSelector:
openstack-control-plane: enabled
diff --git a/roles/prometheus_ethtool_exporter/tasks/main.yml b/roles/prometheus_ethtool_exporter/tasks/main.yml
index e4d640f..5381e9c 100644
--- a/roles/prometheus_ethtool_exporter/tasks/main.yml
+++ b/roles/prometheus_ethtool_exporter/tasks/main.yml
@@ -31,7 +31,7 @@
valueFrom:
fieldRef:
fieldPath: status.podIP
- image: "{{ atmosphere_images['prometheus_ethtool_exporter'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['prometheus_ethtool_exporter'] | vexxhost.kubernetes.docker_image('ref') }}"
args:
- "-L"
- "$(IP)"
diff --git a/roles/prometheus_pushgateway/vars/main.yml b/roles/prometheus_pushgateway/vars/main.yml
index fb0d7ec..901e8ce 100644
--- a/roles/prometheus_pushgateway/vars/main.yml
+++ b/roles/prometheus_pushgateway/vars/main.yml
@@ -14,7 +14,7 @@
_prometheus_pushgateway_helm_values:
image:
- repository: "{{ atmosphere_images['prometheus_pushgateway'] | vexxhost.atmosphere.docker_image('name') }}"
+ repository: "{{ atmosphere_images['prometheus_pushgateway'] | vexxhost.kubernetes.docker_image('name') }}"
nodeSelector:
openstack-control-plane: enabled
serviceMonitor:
diff --git a/roles/rabbitmq/vars/main.yml b/roles/rabbitmq/vars/main.yml
index b6792eb..67d9c13 100644
--- a/roles/rabbitmq/vars/main.yml
+++ b/roles/rabbitmq/vars/main.yml
@@ -13,7 +13,7 @@
# under the License.
_rabbitmq_spec:
- image: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.kubernetes.docker_image('ref') }}"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
diff --git a/roles/rabbitmq_cluster_operator/vars/main.yml b/roles/rabbitmq_cluster_operator/vars/main.yml
index 92b4391..ceddaf7 100644
--- a/roles/rabbitmq_cluster_operator/vars/main.yml
+++ b/roles/rabbitmq_cluster_operator/vars/main.yml
@@ -14,25 +14,25 @@
_rabbitmq_cluster_operator_helm_values:
global:
- imageRegistry: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.atmosphere.docker_image('domain') }}"
+ imageRegistry: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.kubernetes.docker_image('domain') }}"
rabbitmqImage:
- repository: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['rabbitmq_server'] | vexxhost.kubernetes.docker_image('tag') }}"
credentialUpdaterImage:
- repository: "{{ atmosphere_images['rabbitmq_credential_updater'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['rabbitmq_credential_updater'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['rabbitmq_credential_updater'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['rabbitmq_credential_updater'] | vexxhost.kubernetes.docker_image('tag') }}"
clusterOperator:
fullnameOverride: rabbitmq-cluster-operator
nodeSelector:
openstack-control-plane: enabled
image:
- repository: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['rabbitmq_cluster_operator'] | vexxhost.kubernetes.docker_image('tag') }}"
msgTopologyOperator:
fullnameOverride: rabbitmq-messaging-topology-operator
nodeSelector:
openstack-control-plane: enabled
image:
- repository: "{{ atmosphere_images['rabbitmq_topology_operator'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['rabbitmq_topology_operator'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['rabbitmq_topology_operator'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['rabbitmq_topology_operator'] | vexxhost.kubernetes.docker_image('tag') }}"
useCertManager: true
diff --git a/roles/rook_ceph/vars/main.yml b/roles/rook_ceph/vars/main.yml
index 7adbfd1..49b4db5 100644
--- a/roles/rook_ceph/vars/main.yml
+++ b/roles/rook_ceph/vars/main.yml
@@ -14,8 +14,8 @@
_rook_ceph_helm_values:
image:
- repository: "{{ atmosphere_images['rook_ceph'] | vexxhost.atmosphere.docker_image('path') }}"
- tag: "{{ atmosphere_images['rook_ceph'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['rook_ceph'] | vexxhost.kubernetes.docker_image('path') }}"
+ tag: "{{ atmosphere_images['rook_ceph'] | vexxhost.kubernetes.docker_image('tag') }}"
nodeSelector:
openstack-control-plane: enabled
# NOTE(mnaser): Once we implement storage inside Atmosphere, we can rely on
diff --git a/roles/rook_ceph_cluster/vars/main.yml b/roles/rook_ceph_cluster/vars/main.yml
index 1ed5894..c0b9c57 100644
--- a/roles/rook_ceph_cluster/vars/main.yml
+++ b/roles/rook_ceph_cluster/vars/main.yml
@@ -14,7 +14,7 @@
_rook_ceph_cluster_spec:
cephVersion:
- image: "{{ atmosphere_images['ceph'] | vexxhost.atmosphere.docker_image('ref') }}"
+ image: "{{ atmosphere_images['ceph'] | vexxhost.kubernetes.docker_image('ref') }}"
external:
enable: true
diff --git a/roles/vector/vars/main.yml b/roles/vector/vars/main.yml
index 22c6b36..52c8aa9 100644
--- a/roles/vector/vars/main.yml
+++ b/roles/vector/vars/main.yml
@@ -15,8 +15,8 @@
_vector_helm_values:
role: Agent
image:
- repository: "{{ atmosphere_images['vector'] | vexxhost.atmosphere.docker_image('name') }}"
- tag: "{{ atmosphere_images['vector'] | vexxhost.atmosphere.docker_image('tag') }}"
+ repository: "{{ atmosphere_images['vector'] | vexxhost.kubernetes.docker_image('name') }}"
+ tag: "{{ atmosphere_images['vector'] | vexxhost.kubernetes.docker_image('tag') }}"
service:
enabled: false
customConfig:
diff --git a/tests/unit/plugins/filter/test_docker_image.py b/tests/unit/plugins/filter/test_docker_image.py
deleted file mode 100644
index c58a9eb..0000000
--- a/tests/unit/plugins/filter/test_docker_image.py
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# Licensed 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.
-
-import pytest
-from ansible_collections.vexxhost.atmosphere.plugins.filter.docker_image import (
- docker_image,
-)
-
-
-@pytest.mark.parametrize(
- "test_input,expected",
- [
- ("quay.io/vexxhost/glance:zed", "quay.io/vexxhost/glance:zed"),
- (
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- ),
- (
- "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- ),
- ("docker.io/library/haproxy:2.5", "docker.io/library/haproxy:2.5"),
- (
- "k8s.gcr.io/ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de", # noqa E501
- "k8s.gcr.io/ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de", # noqa E501
- ),
- ],
-)
-def test_docker_image_ref(test_input, expected):
- assert docker_image(test_input, "ref") == expected
-
-
-@pytest.mark.parametrize(
- "test_input,expected",
- [
- ("quay.io/vexxhost/glance:zed", "quay.io/vexxhost/glance"),
- (
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat",
- ),
- (
- "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- "k8s.gcr.io/sig-storage/csi-snapshotter",
- ),
- ("docker.io/library/haproxy:2.5", "docker.io/library/haproxy"),
- (
- "k8s.gcr.io/ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de", # noqa E501
- "k8s.gcr.io/ingress-nginx/controller",
- ),
- ],
-)
-def test_docker_image_name(test_input, expected):
- assert docker_image(test_input, "name") == expected
-
-
-@pytest.mark.parametrize(
- "test_input,expected",
- [
- ("quay.io/vexxhost/glance:zed", "quay.io"),
- (
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "us-docker.pkg.dev",
- ),
- (
- "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- "k8s.gcr.io",
- ),
- ("docker.io/library/haproxy:2.5", "docker.io"),
- (
- "k8s.gcr.io/ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de", # noqa E501
- "k8s.gcr.io",
- ),
- ],
-)
-def test_docker_image_domain(test_input, expected):
- assert docker_image(test_input, "domain") == expected
-
-
-@pytest.mark.parametrize(
- "test_input,expected",
- [
- ("quay.io/vexxhost/glance:zed", "vexxhost/glance"),
- (
- "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "vexxhost-infra/openstack/heat",
- ),
- (
- "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- "sig-storage/csi-snapshotter",
- ),
- ("docker.io/library/haproxy:2.5", "library/haproxy"),
- (
- "k8s.gcr.io/ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de", # noqa E501
- "ingress-nginx/controller",
- ),
- ],
-)
-def test_docker_image_path(test_input, expected):
- assert docker_image(test_input, "path") == expected