chore: move monitoring to offline install
diff --git a/.ansible-lint b/.ansible-lint
index dcd1f0f..0462af1 100644
--- a/.ansible-lint
+++ b/.ansible-lint
@@ -5,6 +5,7 @@
- charts
- molecule
- playbooks
+ - roles/kube_prometheus_stack/files/jsonnet
warn_list:
- jinja[invalid]
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a5985f5..e2e33db 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,4 +1,4 @@
-exclude: '^(atmosphere/jsonnet/vendor|charts)'
+exclude: '^(roles/kube_prometheus_stack/files/jsonnet|charts)'
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -35,14 +35,6 @@
hooks:
- id: isort
- - repo: https://github.com/google/go-jsonnet
- rev: v0.18.0
- hooks:
- - id: jsonnet-format
- files: atmosphere/jsonnet/\w\.(jsonnet|libsonnet)$
- - id: jsonnet-lint
- files: atmosphere/jsonnet/\w\.(jsonnet|libsonnet)$
-
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.32.2
hooks:
diff --git a/atmosphere/models/__init__.py b/atmosphere/models/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/atmosphere/models/__init__.py
+++ /dev/null
diff --git a/atmosphere/models/base.py b/atmosphere/models/base.py
deleted file mode 100644
index 025ba20..0000000
--- a/atmosphere/models/base.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from schematics import models
-
-
-class Model(models.Model):
- class Options:
- serialize_when_none = False
diff --git a/atmosphere/models/config.py b/atmosphere/models/config.py
deleted file mode 100644
index c63e235..0000000
--- a/atmosphere/models/config.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import os
-
-import tomli
-from schematics import types
-from schematics.exceptions import ValidationError
-
-from atmosphere.models import base
-
-CONFIG_FILE = os.environ.get("ATMOSPHERE_CONFIG", "/etc/atmosphere/config.toml")
-
-
-class ChartConfig(base.Model):
- enabled = types.BooleanType(default=True, required=True)
- overrides = types.DictType(types.BaseType(), default={})
-
-
-class KubePrometheusStackChartConfig(ChartConfig):
- namespace = types.StringType(default="monitoring", required=True)
-
-
-class OpsGenieConfig(base.Model):
- enabled = types.BooleanType(default=False, required=True)
- api_key = types.StringType()
- heartbeat = types.StringType()
-
- def validate_api_key(self, data, value):
- if data["enabled"] and not value:
- raise ValidationError(types.BaseType.MESSAGES["required"])
- return value
-
- def validate_heartbeat(self, data, value):
- if data["enabled"] and not value:
- raise ValidationError(types.BaseType.MESSAGES["required"])
- return value
-
-
-class Config(base.Model):
- image_repository = types.StringType()
- kube_prometheus_stack = types.ModelType(
- KubePrometheusStackChartConfig, default=KubePrometheusStackChartConfig()
- )
- opsgenie = types.ModelType(OpsGenieConfig, default=OpsGenieConfig())
-
- @classmethod
- def from_toml(cls, data, validate=True):
- c = cls(data, validate=validate)
- if validate:
- c.validate()
- return c
-
- @classmethod
- def from_file(cls, path=CONFIG_FILE):
- with open(path, "rb") as fd:
- data = tomli.load(fd)
- return cls.from_toml(data)
-
- @classmethod
- def from_string(cls, data: str, validate=True):
- data = tomli.loads(data)
- return cls.from_toml(data, validate)
diff --git a/atmosphere/operator/api/__init__.py b/atmosphere/operator/api/__init__.py
index 2eeaeee..e69de29 100644
--- a/atmosphere/operator/api/__init__.py
+++ b/atmosphere/operator/api/__init__.py
@@ -1,7 +0,0 @@
-import pykube
-
-
-class Cloud(pykube.objects.NamespacedAPIObject):
- version = "atmosphere.vexxhost.com/v1alpha1"
- endpoint = "clouds"
- kind = "Cloud"
diff --git a/atmosphere/operator/api/objects.py b/atmosphere/operator/api/objects.py
deleted file mode 100644
index c9d60bd..0000000
--- a/atmosphere/operator/api/objects.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from typing import ClassVar
-
-from pydantic import Field
-
-from atmosphere.operator.api import types
-
-# Kubernetes API
-
-
-class Namespace(types.KubernetesObject):
- endpoint: ClassVar[str] = "namespaces"
-
- version: str = Field("v1", alias="apiVersion", const=True)
- kind: str = Field("Namespace", const=True)
-
-
-class HelmRepository(types.NamespacedKubernetesObject):
- endpoint: ClassVar[str] = "helmrepositories"
-
- version: str = Field(
- "source.toolkit.fluxcd.io/v1beta2", alias="apiVersion", const=True
- )
- kind: str = Field("HelmRepository", const=True)
- spec: types.HelmRepositorySpec
-
-
-class HelmRelease(types.NamespacedKubernetesObject):
- endpoint: ClassVar[str] = "helmreleases"
-
- version: str = Field(
- "helm.toolkit.fluxcd.io/v2beta1", alias="apiVersion", const=True
- )
- kind: str = Field("HelmRelease", const=True)
- spec: types.HelmReleaseSpec
diff --git a/atmosphere/operator/api/types.py b/atmosphere/operator/api/types.py
deleted file mode 100644
index 964890e..0000000
--- a/atmosphere/operator/api/types.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import json
-from enum import Enum
-
-import kopf
-import pydantic
-import pykube
-import requests
-
-from atmosphere.operator import constants
-
-# Kubernetes API
-
-
-class ObjectMeta(pydantic.BaseModel):
- name: pydantic.constr(min_length=1)
- annotations: dict[str, str] = {}
- labels: dict[str, str] = {}
-
-
-class NamespacedObjectMeta(ObjectMeta):
- namespace: pydantic.constr(min_length=1)
-
-
-class KubernetesObject(pydantic.BaseModel):
- api: pykube.http.HTTPClient = None
-
- version: str = pydantic.Field(
- constants.API_VERSION_ATMOSPHERE, alias="apiVersion", const=True
- )
- metadata: ObjectMeta
-
- class Config:
- allow_population_by_field_name = True
- arbitrary_types_allowed = True
- fields = {"api": {"exclude": True}}
-
- @property
- def obj(self) -> dict:
- return self.dict(by_alias=True)
-
- def set_obj(self, *_):
- pass
-
- @property
- def namespace(self) -> str:
- return None
-
- @property
- def name(self) -> str:
- return self.metadata.name
-
- @property
- def base(self) -> None:
- return None
-
- def api_kwargs(self, **kwargs):
- return pykube.objects.APIObject.api_kwargs(self, **kwargs)
-
- def apply(self):
- resp = self.api.patch(
- **self.api_kwargs(
- headers={
- "Content-Type": "application/apply-patch+yaml",
- },
- params={
- "fieldManager": "atmosphere-operator",
- "force": True,
- },
- data=json.dumps(self.obj),
- )
- )
-
- try:
- self.api.raise_for_status(resp)
- except requests.exceptions.HTTPError:
- if resp.status_code == 404:
- raise kopf.TemporaryError("CRD is not yet installed", delay=1)
- raise
-
- self.set_obj(resp.json())
- return self
-
-
-class NamespacedKubernetesObject(KubernetesObject):
- metadata: NamespacedObjectMeta
-
- @property
- def namespace(self) -> str:
- return self.metadata.namespace
-
-
-class NamespacedObjectReference(pydantic.BaseModel):
- name: pydantic.constr(min_length=1)
- namespace: pydantic.constr(min_length=1) = None
-
-
-class CrossNamespaceObjectReference(NamespacedObjectReference):
- kind: pydantic.constr(min_length=1)
-
-
-class HelmRepositorySpec(pydantic.BaseModel):
- url: pydantic.HttpUrl
- interval: str = "60s"
-
-
-class HelmChartTemplateSpec(pydantic.BaseModel):
- chart: pydantic.constr(min_length=1)
- version: pydantic.constr(min_length=1) = None
- source_ref: CrossNamespaceObjectReference = pydantic.Field(alias="sourceRef")
-
- class Config:
- allow_population_by_field_name = True
-
-
-class HelmChartTemplate(pydantic.BaseModel):
- spec: HelmChartTemplateSpec
-
-
-class HelmReleaseActionRemediation(pydantic.BaseModel):
- retries: int = 3
-
-
-class HelmReleaseActionSpecCRDsPolicy(str, Enum):
- SKIP = "Skip"
- CREATE = "Create"
- CREATE_REPLACE = "CreateReplace"
-
-
-class HelmReleaseActionSpec(pydantic.BaseModel):
- crds: HelmReleaseActionSpecCRDsPolicy = (
- HelmReleaseActionSpecCRDsPolicy.CREATE_REPLACE
- )
- disable_wait: bool = pydantic.Field(default=True, alias="disableWait")
- remediation: HelmReleaseActionRemediation = HelmReleaseActionRemediation()
-
- class Config:
- allow_population_by_field_name = True
-
-
-class HelmReleaseValuesReference(pydantic.BaseModel):
- kind: pydantic.constr(min_length=1)
- name: pydantic.constr(min_length=1)
- values_key: str = pydantic.Field(default=None, alias="valuesKey")
- target_path: str = pydantic.Field(default=None, alias="targetPath")
-
- class Config:
- allow_population_by_field_name = True
-
-
-class HelmReleaseSpec(pydantic.BaseModel):
- chart: HelmChartTemplate
- interval: str = "60s"
- depends_on: list[NamespacedObjectReference] = pydantic.Field(
- default=[], alias="dependsOn"
- )
- install: HelmReleaseActionSpec = HelmReleaseActionSpec()
- upgrade: HelmReleaseActionSpec = HelmReleaseActionSpec()
- values: dict = {}
- values_from: list[HelmReleaseValuesReference] = pydantic.Field(
- default=[], alias="valuesFrom"
- )
-
- class Config:
- allow_population_by_field_name = True
diff --git a/atmosphere/operator/constants.py b/atmosphere/operator/constants.py
deleted file mode 100644
index 8f45dbf..0000000
--- a/atmosphere/operator/constants.py
+++ /dev/null
@@ -1,147 +0,0 @@
-API_VERSION_ATMOSPHERE = "atmosphere.vexxhost.com/v1alpha1"
-
-IMAGE_LIST = {
- "alertmanager": "quay.io/prometheus/alertmanager:v0.24.0",
- "atmosphere": "quay.io/vexxhost/atmosphere:0.13.0", # x-release-please-version
- "barbican_api": "quay.io/vexxhost/barbican:wallaby",
- "barbican_db_sync": "quay.io/vexxhost/barbican:wallaby",
- "bootstrap": "quay.io/vexxhost/heat:zed",
- "ceph_config_helper": "quay.io/vexxhost/libvirtd:yoga-focal",
- "cilium_node": "quay.io/cilium/cilium:v1.10.7@sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca", # noqa
- "cilium_operator": "quay.io/cilium/operator-generic:v1.10.7@sha256:d0b491d8d8cb45862ed7f0410f65e7c141832f0f95262643fa5ff1edfcddcafe", # noqa
- "cinder_api": "quay.io/vexxhost/cinder:zed",
- "cinder_backup_storage_init": "quay.io/vexxhost/cinder:zed",
- "cinder_backup": "quay.io/vexxhost/cinder:zed",
- "cinder_db_sync": "quay.io/vexxhost/cinder:zed",
- "cinder_scheduler": "quay.io/vexxhost/cinder:zed",
- "cinder_storage_init": "quay.io/vexxhost/cinder:zed",
- "cinder_volume_usage_audit": "quay.io/vexxhost/cinder:zed",
- "cinder_volume": "quay.io/vexxhost/cinder:zed",
- "csi_node_driver_registrar": "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.4.0",
- "csi_rbd_attacher": "k8s.gcr.io/sig-storage/csi-attacher:v3.4.0",
- "csi_rbd_plugin": "quay.io/cephcsi/cephcsi:v3.5.1",
- "csi_rbd_provisioner": "k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0",
- "csi_rbd_resizer": "k8s.gcr.io/sig-storage/csi-resizer:v1.3.0",
- "csi_rbd_snapshotter": "k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.0",
- "db_drop": "quay.io/vexxhost/heat:zed",
- "db_init": "quay.io/vexxhost/heat:zed",
- "dep_check": "quay.io/vexxhost/kubernetes-entrypoint:latest",
- "designate_api": "quay.io/vexxhost/designate:zed",
- "designate_central": "quay.io/vexxhost/designate:zed",
- "designate_db_sync": "quay.io/vexxhost/designate:zed",
- "designate_mdns": "quay.io/vexxhost/designate:zed",
- "designate_producer": "quay.io/vexxhost/designate:zed",
- "designate_sink": "quay.io/vexxhost/designate:zed",
- "designate_worker": "quay.io/vexxhost/designate:zed",
- "flux_helm_controller": "ghcr.io/fluxcd/helm-controller:v0.22.2",
- "flux_kustomize_controller": "ghcr.io/fluxcd/kustomize-controller:v0.27.0",
- "flux_notification_controller": "ghcr.io/fluxcd/notification-controller:v0.25.1",
- "flux_source_controller": "ghcr.io/fluxcd/source-controller:v0.26.1",
- "glance_api": "quay.io/vexxhost/glance:zed",
- "glance_db_sync": "quay.io/vexxhost/glance:zed",
- "glance_metadefs_load": "quay.io/vexxhost/glance:zed",
- "glance_registry": "quay.io/vexxhost/glance:zed",
- "glance_storage_init": "quay.io/vexxhost/glance:zed",
- "grafana_sidecar": "quay.io/kiwigrid/k8s-sidecar:1.19.2",
- "grafana": "docker.io/grafana/grafana:9.2.3",
- "haproxy": "docker.io/library/haproxy:2.5",
- "heat_api": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_cfn": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_cloudwatch": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_db_sync": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_engine_cleaner": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_engine": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "heat_purge_deleted": "us-docker.pkg.dev/vexxhost-infra/openstack/heat:wallaby",
- "horizon_db_sync": "us-docker.pkg.dev/vexxhost-infra/openstack/horizon:wallaby",
- "horizon": "us-docker.pkg.dev/vexxhost-infra/openstack/horizon:wallaby",
- "keepalived": "us-docker.pkg.dev/vexxhost-infra/openstack/keepalived:2.0.19",
- "keystone_api": "quay.io/vexxhost/keystone:wallaby",
- "keystone_credential_cleanup": "quay.io/vexxhost/heat:zed",
- "keystone_credential_rotate": "quay.io/vexxhost/keystone:wallaby",
- "keystone_credential_setup": "quay.io/vexxhost/keystone:wallaby",
- "keystone_db_sync": "quay.io/vexxhost/keystone:wallaby",
- "keystone_domain_manage": "quay.io/vexxhost/heat:zed",
- "keystone_fernet_rotate": "quay.io/vexxhost/keystone:wallaby",
- "keystone_fernet_setup": "quay.io/vexxhost/keystone:wallaby",
- "ks_endpoints": "quay.io/vexxhost/heat:zed",
- "ks_service": "quay.io/vexxhost/heat:zed",
- "ks_user": "quay.io/vexxhost/heat:zed",
- "kube_apiserver": "k8s.gcr.io/kube-apiserver:v1.22.17",
- "kube_controller_manager": "k8s.gcr.io/kube-controller-manager:v1.22.17",
- "kube_coredns": "k8s.gcr.io/coredns/coredns:v1.8.4",
- "kube_etcd": "k8s.gcr.io/etcd:3.5.6-0",
- "kube_proxy": "k8s.gcr.io/kube-proxy:v1.22.17",
- "kube_scheduler": "k8s.gcr.io/kube-scheduler:v1.22.17",
- "kube_state_metrics": "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.6.0",
- "libvirt": "quay.io/vexxhost/libvirtd:yoga-focal",
- "magnum_api": "quay.io/vexxhost/magnum:zed",
- "magnum_conductor": "quay.io/vexxhost/magnum:zed",
- "magnum_db_sync": "quay.io/vexxhost/magnum:zed",
- "magnum_registry": "docker.io/library/registry:2.7.1",
- "memcached": "docker.io/library/memcached:1.6.17",
- "neutron_bagpipe_bgp": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_coredns": "docker.io/coredns/coredns:1.9.3",
- "neutron_db_sync": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_dhcp": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_ironic_agent": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_l2gw": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_l3": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_linuxbridge_agent": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_metadata": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_netns_cleanup_cron": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_openvswitch_agent": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_server": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_sriov_agent_init": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "neutron_sriov_agent": "us-docker.pkg.dev/vexxhost-infra/openstack/neutron:wallaby",
- "nova_api": "quay.io/vexxhost/nova:wallaby",
- "nova_archive_deleted_rows": "quay.io/vexxhost/nova:wallaby",
- "nova_cell_setup_init": "quay.io/vexxhost/heat:zed",
- "nova_cell_setup": "quay.io/vexxhost/nova:wallaby",
- "nova_compute_ironic": "docker.io/kolla/ubuntu-source-nova-compute-ironic:wallaby",
- "nova_compute_ssh": "quay.io/vexxhost/nova-ssh:wallaby",
- "nova_compute": "quay.io/vexxhost/nova:wallaby",
- "nova_conductor": "quay.io/vexxhost/nova:wallaby",
- "nova_consoleauth": "quay.io/vexxhost/nova:wallaby",
- "nova_db_sync": "quay.io/vexxhost/nova:wallaby",
- "nova_novncproxy_assets": "quay.io/vexxhost/nova:wallaby",
- "nova_novncproxy": "quay.io/vexxhost/nova:wallaby",
- "nova_placement": "quay.io/vexxhost/nova:wallaby",
- "nova_scheduler": "quay.io/vexxhost/nova:wallaby",
- "nova_service_cleaner": "quay.io/vexxhost/cli:latest",
- "nova_spiceproxy_assets": "quay.io/vexxhost/nova:wallaby",
- "nova_spiceproxy": "quay.io/vexxhost/nova:wallaby",
- "octavia_api": "quay.io/vexxhost/octavia:zed",
- "octavia_db_sync": "quay.io/vexxhost/octavia:zed",
- "octavia_health_manager_init": "quay.io/vexxhost/heat:zed",
- "octavia_health_manager": "quay.io/vexxhost/octavia:zed",
- "octavia_housekeeping": "quay.io/vexxhost/octavia:zed",
- "octavia_worker": "quay.io/vexxhost/octavia:zed",
- "openvswitch_db_server": "quay.io/vexxhost/openvswitch:2.17.3",
- "openvswitch_vswitchd": "quay.io/vexxhost/openvswitch:2.17.3",
- "pause": "k8s.gcr.io/pause:3.5",
- "percona_xtradb_cluster_haproxy": "docker.io/percona/percona-xtradb-cluster-operator:1.10.0-haproxy",
- "percona_xtradb_cluster_operator": "docker.io/percona/percona-xtradb-cluster-operator:1.10.0",
- "percona_xtradb_cluster": "docker.io/percona/percona-xtradb-cluster:5.7.39-31.61",
- "placement_db_sync": "quay.io/vexxhost/placement:wallaby",
- "placement": "quay.io/vexxhost/placement:wallaby",
- "prometheus_config_reloader": "quay.io/prometheus-operator/prometheus-config-reloader:v0.60.1",
- "prometheus_ethtool_exporter": "quay.io/vexxhost/ethtool-exporter:5f05120a743a71adcbceb9f8ee1d43ecc7c4183a",
- "prometheus_ipmi_exporter": "us-docker.pkg.dev/vexxhost-infra/openstack/ipmi-exporter:1.4.0",
- "prometheus_memcached_exporter": "quay.io/prometheus/memcached-exporter:v0.10.0",
- "prometheus_mysqld_exporter": "quay.io/prometheus/mysqld-exporter:v0.14.0",
- "prometheus_node_exporter": "quay.io/prometheus/node-exporter:v1.3.1",
- "prometheus_openstack_exporter": "ghcr.io/openstack-exporter/openstack-exporter:1.6.0",
- "prometheus_operator_kube_webhook_certgen": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.3.0",
- "prometheus_operator": "quay.io/prometheus-operator/prometheus-operator:v0.60.1",
- "prometheus_pushgateway": "docker.io/prom/pushgateway:v1.4.2",
- "prometheus": "quay.io/prometheus/prometheus:v2.39.1",
- "rabbit_init": "docker.io/library/rabbitmq:3.10.2-management",
- "senlin_api": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "senlin_conductor": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "senlin_db_sync": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "senlin_engine_cleaner": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "senlin_engine": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "senlin_health_manager": "us-docker.pkg.dev/vexxhost-infra/openstack/senlin:wallaby",
- "skopeo": "quay.io/skopeo/stable:latest",
- "tempest_run_tests": "us-docker.pkg.dev/vexxhost-infra/openstack/tempest:30.1.0-4",
-}
diff --git a/atmosphere/operator/controllers/__init__.py b/atmosphere/operator/controllers/__init__.py
index 2e2e8ae..89e0cdf 100644
--- a/atmosphere/operator/controllers/__init__.py
+++ b/atmosphere/operator/controllers/__init__.py
@@ -1,2 +1 @@
-from atmosphere.operator.controllers import cloud # noqa: F401
from atmosphere.operator.controllers import openstack # noqa: F401
diff --git a/atmosphere/operator/controllers/cloud.py b/atmosphere/operator/controllers/cloud.py
deleted file mode 100644
index 573edca..0000000
--- a/atmosphere/operator/controllers/cloud.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import kopf
-
-from atmosphere import clients
-from atmosphere.models import config
-from atmosphere.operator.api import Cloud, objects, types
-from atmosphere.tasks import constants
-from atmosphere.tasks.composite import openstack_helm
-
-
-@kopf.on.resume(Cloud.version, Cloud.kind)
-@kopf.on.create(Cloud.version, Cloud.kind)
-def create_fn(namespace: str, name: str, spec: dict, **_):
- cfg = config.Config.from_file()
- api = clients.get_pykube_api()
-
- objects.Namespace(
- api=api,
- metadata=types.ObjectMeta(
- name=constants.NAMESPACE_MONITORING,
- ),
- ).apply()
-
- if cfg.kube_prometheus_stack.enabled:
- objects.HelmRepository(
- api=api,
- metadata=types.NamespacedObjectMeta(
- name=constants.HELM_REPOSITORY_PROMETHEUS_COMMUINTY,
- namespace=cfg.kube_prometheus_stack.namespace,
- ),
- spec=types.HelmRepositorySpec(
- url=constants.HELM_REPOSITORY_PROMETHEUS_COMMUINTY_URL,
- ),
- ).apply()
- objects.HelmRelease(
- api=api,
- metadata=types.NamespacedObjectMeta(
- name=constants.HELM_RELEASE_KUBE_PROMETHEUS_STACK_NAME,
- namespace=cfg.kube_prometheus_stack.namespace,
- ),
- spec=types.HelmReleaseSpec(
- chart=types.HelmChartTemplate(
- spec=types.HelmChartTemplateSpec(
- chart=constants.HELM_RELEASE_KUBE_PROMETHEUS_STACK_NAME,
- version=constants.HELM_RELEASE_KUBE_PROMETHEUS_STACK_VERSION,
- source_ref=types.CrossNamespaceObjectReference(
- kind="HelmRepository",
- name=constants.HELM_REPOSITORY_PROMETHEUS_COMMUINTY,
- namespace=cfg.kube_prometheus_stack.namespace,
- ),
- )
- ),
- values={
- **constants.HELM_RELEASE_KUBE_PROMETHEUS_STACK_VALUES,
- **cfg.kube_prometheus_stack.overrides,
- **{
- "alertmanager": {
- "config": openstack_helm.generate_alertmanager_config_for_opsgenie(
- cfg.opsgenie
- )
- }
- },
- },
- ),
- ).apply()
diff --git a/atmosphere/tasks/composite/openstack_helm.py b/atmosphere/tasks/composite/openstack_helm.py
index 4b5926b..031a571 100644
--- a/atmosphere/tasks/composite/openstack_helm.py
+++ b/atmosphere/tasks/composite/openstack_helm.py
@@ -3,6 +3,17 @@
from atmosphere.models import config
+# values={
+# **constants.HELM_RELEASE_KUBE_PROMETHEUS_STACK_VALUES,
+# **cfg.kube_prometheus_stack.overrides,
+# **{
+# "alertmanager": {
+# "config": openstack_helm.generate_alertmanager_config_for_opsgenie(
+# cfg.opsgenie
+# )
+# }
+# },
+# },
def generate_alertmanager_config_for_opsgenie(
opsgenie: config.OpsGenieConfig,
) -> dict:
diff --git a/atmosphere/tasks/constants.py b/atmosphere/tasks/constants.py
deleted file mode 100644
index 09e40f8..0000000
--- a/atmosphere/tasks/constants.py
+++ /dev/null
@@ -1,385 +0,0 @@
-import pkg_resources
-
-from atmosphere import utils
-
-NODE_SELECTOR_CONTROL_PLANE = {
- "openstack-control-plane": "enabled",
-}
-
-NAMESPACE_CERT_MANAGER = "cert-manager"
-NAMESPACE_MONITORING = "monitoring"
-
-HELM_REPOSITORY_PROMETHEUS_COMMUINTY = "prometheus-community"
-HELM_REPOSITORY_PROMETHEUS_COMMUINTY_URL = (
- "https://prometheus-community.github.io/helm-charts"
-)
-
-PROMETHEUS_MONITOR_RELABELING_SET_NODE_NAME_TO_INSTANCE = {
- "sourceLabels": ["__meta_kubernetes_pod_node_name"],
- "targetLabel": "instance",
-}
-PROMETHEUS_MONITOR_RELABELING_SET_POD_NAME_TO_INSTANCE = {
- "sourceLabels": ["__meta_kubernetes_pod_name"],
- "targetLabel": "instance",
-}
-PROMETHEUS_MONITOR_RELABELING_DROP_ALL_KUBERNETES_LABELS = {
- "action": "labeldrop",
- "regex": "^(container|endpoint|namespace|pod|node|service)$",
-}
-
-PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME = [
- PROMETHEUS_MONITOR_RELABELING_SET_POD_NAME_TO_INSTANCE,
- PROMETHEUS_MONITOR_RELABELING_DROP_ALL_KUBERNETES_LABELS,
-]
-PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME = [
- PROMETHEUS_MONITOR_RELABELING_SET_NODE_NAME_TO_INSTANCE,
- PROMETHEUS_MONITOR_RELABELING_DROP_ALL_KUBERNETES_LABELS,
-]
-PROMETHEUS_MONITOR_RELABELINGS_KUBELET = [
- {"sourceLabels": ["__metrics_path__"], "targetLabel": "metrics_path"},
- {"sourceLabels": ["node"], "targetLabel": "instance"},
- PROMETHEUS_MONITOR_RELABELING_DROP_ALL_KUBERNETES_LABELS,
-]
-
-HELM_RELEASE_KUBE_PROMETHEUS_STACK_NAME = "kube-prometheus-stack"
-HELM_RELEASE_KUBE_PROMETHEUS_STACK_VERSION = "41.7.3"
-HELM_RELEASE_KUBE_PROMETHEUS_STACK_VALUES = {
- "defaultRules": {
- "disabled": {
- # NOTE(mnaser): https://github.com/prometheus-community/helm-charts/issues/144
- # https://github.com/openshift/cluster-monitoring-operator/issues/248
- "etcdHighNumberOfFailedGRPCRequests": True
- }
- },
- "alertmanager": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- },
- "alertmanagerSpec": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "alertmanager"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "alertmanager"
- )["tag"],
- },
- "storage": {
- "volumeClaimTemplate": {
- "spec": {
- "storageClassName": "general",
- "accessModes": ["ReadWriteOnce"],
- "resources": {"requests": {"storage": "40Gi"}},
- }
- }
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- },
- },
- "grafana": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository("grafana")[
- "name"
- ],
- "tag": utils.get_image_ref_using_legacy_image_repository("grafana")["tag"],
- },
- "sidecar": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "grafana_sidecar"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "grafana_sidecar"
- )["tag"],
- }
- },
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- },
- "kubeApiServer": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME
- }
- },
- "kubelet": {
- "serviceMonitor": {
- "cAdvisorRelabelings": PROMETHEUS_MONITOR_RELABELINGS_KUBELET,
- "probesRelabelings": PROMETHEUS_MONITOR_RELABELINGS_KUBELET,
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_KUBELET,
- }
- },
- "kubeControllerManager": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME,
- }
- },
- "coreDns": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- }
- },
- "kubeEtcd": {
- "service": {
- "port": 2379,
- "targetPort": 2379,
- },
- "serviceMonitor": {
- "scheme": "https",
- "serverName": "localhost",
- "insecureSkipVerify": False,
- "caFile": "/etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/ca.crt",
- "certFile": "/etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/healthcheck-client.crt",
- "keyFile": "/etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/healthcheck-client.key",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME,
- },
- },
- "kubeScheduler": {
- "service": {"port": 10259, "targetPort": 10259},
- "serviceMonitor": {
- "https": True,
- "insecureSkipVerify": True,
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME,
- },
- },
- "kubeProxy": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME
- }
- },
- "kube-state-metrics": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "kube_state_metrics"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "kube_state_metrics"
- )["tag"],
- },
- "prometheus": {
- "monitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- }
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- },
- "prometheus": {
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- },
- "prometheusSpec": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "prometheus"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository("prometheus")[
- "tag"
- ],
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- "secrets": ["kube-prometheus-stack-etcd-client-cert"],
- },
- "additionalServiceMonitors": [
- {
- "name": "ceph",
- "jobLabel": "application",
- "selector": {"matchLabels": {"application": "ceph"}},
- "namespaceSelector": {"matchNames": ["openstack"]},
- "endpoints": [
- {
- "port": "metrics",
- "honorLabels": True,
- "relabelings": [
- {
- "action": "replace",
- "regex": "(.*)",
- "replacement": "ceph",
- "targetLabel": "cluster",
- },
- PROMETHEUS_MONITOR_RELABELING_DROP_ALL_KUBERNETES_LABELS,
- ],
- }
- ],
- },
- {
- "name": "coredns",
- "jobLabel": "app.kubernetes.io/name",
- "namespaceSelector": {"matchNames": ["openstack"]},
- "selector": {
- "matchLabels": {
- "app.kubernetes.io/name": "coredns",
- "app.kubernetes.io/component": "metrics",
- }
- },
- "endpoints": [
- {
- "port": "metrics",
- "relabelings": [
- {
- "sourceLabels": [
- "__meta_kubernetes_pod_label_application"
- ],
- "targetLabel": "application",
- },
- ]
- + PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME,
- }
- ],
- },
- {
- "name": "memcached",
- "jobLabel": "application",
- "namespaceSelector": {"matchNames": ["openstack"]},
- "selector": {
- "matchLabels": {"application": "memcached", "component": "server"}
- },
- "endpoints": [
- {
- "port": "metrics",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME,
- }
- ],
- },
- {
- "name": "openstack-exporter",
- "jobLabel": "jobLabel",
- "namespaceSelector": {"matchNames": ["openstack"]},
- "selector": {"matchLabels": {"application": "openstack-exporter"}},
- "endpoints": [
- {
- "interval": "1m",
- "scrapeTimeout": "30s",
- "port": "metrics",
- "relabelings": [
- {
- "action": "replace",
- "regex": "(.*)",
- "replacement": "default",
- "targetLabel": "instance",
- }
- ],
- }
- ],
- },
- ],
- "additionalPodMonitors": [
- {
- "name": "ethtool-exporter",
- "jobLabel": "job",
- "selector": {"matchLabels": {"application": "ethtool-exporter"}},
- "podMetricsEndpoints": [
- {
- "port": "metrics",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME,
- }
- ],
- },
- {
- "name": "ipmi-exporter",
- "jobLabel": "job",
- "selector": {"matchLabels": {"application": "ipmi-exporter"}},
- "podMetricsEndpoints": [
- {
- "port": "metrics",
- "interval": "60s",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME,
- }
- ],
- },
- {
- "name": "percona-xtradb-pxc",
- "jobLabel": "app.kubernetes.io/component",
- "namespaceSelector": {"matchNames": ["openstack"]},
- "selector": {
- "matchLabels": {
- "app.kubernetes.io/component": "pxc",
- "app.kubernetes.io/instance": "percona-xtradb",
- }
- },
- "podMetricsEndpoints": [
- {
- "port": "metrics",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME,
- }
- ],
- },
- {
- "name": "rabbitmq",
- "jobLabel": "app.kubernetes.io/component",
- "namespaceSelector": {"matchNames": ["openstack"]},
- "selector": {
- "matchLabels": {"app.kubernetes.io/component": "rabbitmq"}
- },
- "podMetricsEndpoints": [
- {
- "port": "prometheus",
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME,
- }
- ],
- },
- ],
- },
- "prometheusOperator": {
- "admissionWebhooks": {
- "patch": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_operator_kube_webhook_certgen"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_operator_kube_webhook_certgen"
- )["tag"],
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- }
- },
- "serviceMonitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_POD_NAME
- },
- "nodeSelector": NODE_SELECTOR_CONTROL_PLANE,
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_operator"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_operator"
- )["tag"],
- },
- "prometheusConfigReloader": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_config_reloader"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_config_reloader"
- )["tag"],
- }
- },
- },
- "prometheus-node-exporter": {
- "image": {
- "repository": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_node_exporter"
- )["name"],
- "tag": utils.get_image_ref_using_legacy_image_repository(
- "prometheus_node_exporter"
- )["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)$", # noqa: E501
- "--collector.filesystem.mount-points-exclude=^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+|var/lib/kubelet/plugins/kubernetes.io/csi/.+|run/containerd/.+)($|/)", # noqa: E501
- "--collector.netclass.ignored-devices=^(lxc|cilium_|qbr|qvb|qvo|tap|ovs-system|br|tbr|gre_sys).*$",
- "--collector.netdev.device-exclude=^(lxc|cilium_|qbr|qvb|qvo|tap|ovs-system|br|tbr|gre_sys).*$",
- ],
- "prometheus": {
- "monitor": {
- "relabelings": PROMETHEUS_MONITOR_RELABELINGS_INSTANCE_TO_NODE_NAME
- }
- },
- },
- "additionalPrometheusRulesMap": utils.load_jsonnet_from_path(
- pkg_resources.resource_filename("atmosphere.jsonnet", "rules.jsonnet")
- ),
-}
diff --git a/atmosphere/tests/conftest.py b/atmosphere/tests/conftest.py
deleted file mode 100644
index f318749..0000000
--- a/atmosphere/tests/conftest.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import pytest
-import responses
-
-
-@pytest.fixture
-def kubeconfig(tmpdir):
- kubeconfig = tmpdir.join("kubeconfig")
- kubeconfig.write(
- """
-apiVersion: v1
-clusters:
-- cluster: {server: 'https://localhost:9443'}
- name: test
-contexts:
-- context: {cluster: test, user: test}
- name: test
-current-context: test
-kind: Config
-preferences: {}
-users:
-- name: test
- user: {token: testtoken}
- """
- )
- return kubeconfig
-
-
-@pytest.fixture
-def requests_mock():
- return responses.RequestsMock(target="pykube.http.KubernetesHTTPAdapter._do_send")
-
-
-@pytest.fixture
-def api(kubeconfig):
- import pykube
-
- config = pykube.KubeConfig.from_file(str(kubeconfig))
- return pykube.HTTPClient(config)
-
-
-@pytest.fixture
-def pykube(mocker):
- # TODO(mnaser): We should get rid of this fixture and rename the other one
- # to pykube.
- mocked_api = mocker.MagicMock()
- mocker.patch("atmosphere.clients.get_pykube_api", return_value=mocked_api)
- return mocked_api
diff --git a/atmosphere/tests/unit/operator/test_objects.py b/atmosphere/tests/unit/operator/test_objects.py
deleted file mode 100644
index 5434138..0000000
--- a/atmosphere/tests/unit/operator/test_objects.py
+++ /dev/null
@@ -1,219 +0,0 @@
-import json
-
-import responses
-from hypothesis import given
-from hypothesis import provisional as prov
-from hypothesis import strategies as st
-
-from atmosphere.operator.api import objects, types
-
-
-class TestNamespace:
- @given(st.builds(objects.Namespace))
- def test_property(self, instance):
- assert isinstance(instance, objects.Namespace)
- assert isinstance(instance.metadata, types.ObjectMeta)
-
- def test_apply(self, api, requests_mock):
- instance = objects.Namespace(
- api=api,
- metadata=types.ObjectMeta(
- name="openstack",
- annotations={
- "annotate": "this",
- },
- labels={
- "foo": "bar",
- },
- ),
- )
-
- with requests_mock as rsps:
- rsps.add(
- responses.PATCH,
- "https://localhost:9443/api/v1/namespaces/openstack?fieldManager=atmosphere-operator&force=True",
- json={},
- )
-
- instance.apply()
-
- assert len(rsps.calls) == 1
- assert json.loads(rsps.calls[0].request.body) == {
- "apiVersion": "v1",
- "kind": "Namespace",
- "metadata": {
- "name": "openstack",
- "annotations": {
- "annotate": "this",
- },
- "labels": {
- "foo": "bar",
- },
- },
- }
-
-
-class TestHelmRepository:
- @given(
- st.builds(
- objects.HelmRepository,
- spec=st.builds(types.HelmRepositorySpec, url=prov.urls()),
- )
- )
- def test_property(self, instance):
- assert isinstance(instance, objects.HelmRepository)
- assert isinstance(instance.spec, types.HelmRepositorySpec)
-
- def test_apply(self, api, requests_mock):
- instance = objects.HelmRepository(
- api=api,
- metadata=types.NamespacedObjectMeta(
- name="openstack-helm",
- namespace="openstack",
- annotations={
- "annotate": "this",
- },
- labels={
- "foo": "bar",
- },
- ),
- spec=types.HelmRepositorySpec(
- url="https://tarballs.opendev.org/openstack/openstack-helm/",
- ),
- )
-
- with requests_mock as rsps:
- rsps.add(
- responses.PATCH,
- "https://localhost:9443/apis/source.toolkit.fluxcd.io/v1beta2/namespaces/openstack/helmrepositories/openstack-helm?fieldManager=atmosphere-operator&force=True", # noqa E501
- json={},
- )
-
- instance.apply()
-
- assert len(rsps.calls) == 1
- assert json.loads(rsps.calls[0].request.body) == {
- "apiVersion": "source.toolkit.fluxcd.io/v1beta2",
- "kind": "HelmRepository",
- "metadata": {
- "name": "openstack-helm",
- "namespace": "openstack",
- "annotations": {
- "annotate": "this",
- },
- "labels": {
- "foo": "bar",
- },
- },
- "spec": {
- "interval": "60s",
- "url": "https://tarballs.opendev.org/openstack/openstack-helm/",
- },
- }
-
-
-class TestHelmRelease:
- @given(st.builds(objects.HelmRelease))
- def test_property(self, instance):
- assert isinstance(instance, objects.HelmRelease)
- assert isinstance(instance.spec, types.HelmReleaseSpec)
-
- def test_apply(self, api, requests_mock):
- instance = objects.HelmRelease(
- api=api,
- metadata=types.NamespacedObjectMeta(
- name="neutron",
- namespace="openstack",
- annotations={
- "annotate": "this",
- },
- labels={
- "foo": "bar",
- },
- ),
- spec=types.HelmReleaseSpec(
- chart=types.HelmChartTemplate(
- spec=types.HelmChartTemplateSpec(
- chart="neutron",
- version="0.1.0",
- source_ref=types.CrossNamespaceObjectReference(
- kind="HelmRepository",
- name="openstack-helm",
- namespace="openstack",
- ),
- )
- ),
- values={
- "foo": "bar",
- },
- values_from=[
- types.HelmReleaseValuesReference(
- kind="Secret",
- name="rabbitmq-neutron-default-user",
- values_key="username",
- target_path="rabbitmq.username",
- )
- ],
- ),
- )
-
- with requests_mock as rsps:
- rsps.add(
- responses.PATCH,
- "https://localhost:9443/apis/helm.toolkit.fluxcd.io/v2beta1/namespaces/openstack/helmreleases/neutron?fieldManager=atmosphere-operator&force=True", # noqa E501
- json={},
- )
-
- instance.apply()
-
- assert len(rsps.calls) == 1
- assert json.loads(rsps.calls[0].request.body) == {
- "apiVersion": "helm.toolkit.fluxcd.io/v2beta1",
- "kind": "HelmRelease",
- "metadata": {
- "name": instance.metadata.name,
- "namespace": instance.metadata.namespace,
- "labels": instance.metadata.labels,
- "annotations": instance.metadata.annotations,
- },
- "spec": {
- "chart": {
- "spec": {
- "chart": "neutron",
- "version": "0.1.0",
- "sourceRef": {
- "kind": "HelmRepository",
- "name": "openstack-helm",
- "namespace": "openstack",
- },
- },
- },
- "dependsOn": [],
- "install": {
- "crds": "CreateReplace",
- "disableWait": True,
- "remediation": {
- "retries": 3,
- },
- },
- "interval": "60s",
- "upgrade": {
- "crds": "CreateReplace",
- "disableWait": True,
- "remediation": {
- "retries": 3,
- },
- },
- "values": {
- "foo": "bar",
- },
- "valuesFrom": [
- {
- "kind": "Secret",
- "name": "rabbitmq-neutron-default-user",
- "valuesKey": "username",
- "targetPath": "rabbitmq.username",
- },
- ],
- },
- }
diff --git a/atmosphere/tests/unit/operator/test_types.py b/atmosphere/tests/unit/operator/test_types.py
deleted file mode 100644
index 8e5bf42..0000000
--- a/atmosphere/tests/unit/operator/test_types.py
+++ /dev/null
@@ -1,120 +0,0 @@
-from hypothesis import given
-from hypothesis import provisional as prov
-from hypothesis import strategies as st
-
-from atmosphere.operator.api import types
-
-
-class TestObjectMeta:
- @given(st.builds(types.ObjectMeta))
- def test_property(self, instance):
- assert isinstance(instance, types.ObjectMeta)
- assert isinstance(instance.name, str)
- assert instance.name != ""
-
-
-class TestNamespacedObjectMeta:
- @given(st.builds(types.NamespacedObjectMeta))
- def test_property(self, instance):
- assert isinstance(instance, types.NamespacedObjectMeta)
- assert isinstance(instance.name, str)
- assert instance.name != ""
- assert isinstance(instance.namespace, str)
- assert instance.namespace != ""
-
-
-class TestKubernetesObject:
- @given(st.builds(types.KubernetesObject))
- def test_property(self, instance):
- assert isinstance(instance, types.KubernetesObject)
- assert isinstance(instance.metadata, types.ObjectMeta)
-
-
-class TestNamespacedKubernetesObject:
- @given(st.builds(types.NamespacedKubernetesObject))
- def test_property(self, instance):
- assert isinstance(instance, types.NamespacedKubernetesObject)
- assert isinstance(instance.metadata, types.NamespacedObjectMeta)
-
-
-class TestCrossNamespaceObjectReference:
- @given(st.builds(types.CrossNamespaceObjectReference))
- def test_property(self, instance):
- assert isinstance(instance, types.CrossNamespaceObjectReference)
- assert isinstance(instance.kind, str)
- assert instance.kind != ""
- assert isinstance(instance.name, str)
- assert instance.name != ""
- assert isinstance(instance.namespace, str) or instance.namespace is None
- assert instance.namespace != ""
-
-
-class TestHelmRepositorySpec:
- @given(st.builds(types.HelmRepositorySpec, url=prov.urls()))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmRepositorySpec)
- assert isinstance(instance.url, str)
- assert instance.url != ""
- assert isinstance(instance.interval, str)
- assert instance.interval != ""
-
-
-class TestHelmChartTemplateSpec:
- @given(st.builds(types.HelmChartTemplateSpec))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmChartTemplateSpec)
- assert isinstance(instance.chart, str)
- assert instance.chart != ""
- assert isinstance(instance.version, str) or instance.version is None
- assert instance.version != ""
-
-
-class TestHelmChartTemplate:
- @given(st.builds(types.HelmChartTemplate))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmChartTemplate)
- assert isinstance(instance.spec, types.HelmChartTemplateSpec)
-
-
-class HelmReleaseActionRemediation:
- @given(st.builds(types.HelmReleaseActionRemediation))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmReleaseActionRemediation)
- assert isinstance(instance.retries, int)
-
-
-class TestHelmReleaseActionSpec:
- @given(st.builds(types.HelmReleaseActionSpec))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmReleaseActionSpec)
- assert isinstance(instance.crds, types.HelmReleaseActionSpecCRDsPolicy)
- assert isinstance(instance.disable_wait, bool)
- assert instance.disable_wait in [True, False]
- assert isinstance(instance.remediation, types.HelmReleaseActionRemediation)
-
-
-class TestHelmReleaseValuesReference:
- @given(st.builds(types.HelmReleaseValuesReference))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmReleaseValuesReference)
- assert isinstance(instance.kind, str)
- assert instance.kind != ""
- assert isinstance(instance.name, str)
- assert instance.name != ""
- assert isinstance(instance.values_key, str) or instance.values_key is None
- assert instance.values_key != ""
- assert isinstance(instance.target_path, str) or instance.target_path is None
- assert instance.target_path != ""
-
-
-class TestHelmReleaseSpec:
- @given(st.builds(types.HelmReleaseSpec))
- def test_property(self, instance):
- assert isinstance(instance, types.HelmReleaseSpec)
- assert isinstance(instance.interval, str)
- assert instance.interval != ""
- assert isinstance(instance.chart, types.HelmChartTemplate)
- assert isinstance(instance.install, types.HelmReleaseActionSpec)
- assert isinstance(instance.upgrade, types.HelmReleaseActionSpec)
- assert isinstance(instance.values, dict)
- assert isinstance(instance.values_from, list)
diff --git a/atmosphere/utils.py b/atmosphere/utils.py
deleted file mode 100644
index e1b7614..0000000
--- a/atmosphere/utils.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import json
-import os
-
-import _jsonnet
-import tomli
-from docker_image import reference
-
-from atmosphere.operator import constants
-
-CONFIG_FILE = os.environ.get("ATMOSPHERE_CONFIG", "/etc/atmosphere/config.toml")
-
-
-def load_jsonnet_from_path(path: str) -> any:
- raw = _jsonnet.evaluate_file(path)
- return json.loads(raw)
-
-
-def get_legacy_image_repository(config_path: str = CONFIG_FILE) -> str or None:
- try:
- with open(config_path, "rb") as fd:
- data = tomli.load(fd)
- except FileNotFoundError:
- return None
-
- if data.get("image_repository", ""):
- return data["image_repository"]
-
- return None
-
-
-def get_image_ref_using_legacy_image_repository(image_name: str) -> str:
- override_registry = get_legacy_image_repository()
-
- ref = reference.Reference.parse(constants.IMAGE_LIST[image_name])
- if not override_registry:
- return ref
-
- # 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 image_name == "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(override_registry, ref_name)
- ref = reference.Reference.parse(ref.string())
-
- return ref
diff --git a/jsonnetfile.lock.json b/jsonnetfile.lock.json
deleted file mode 100644
index 2c79f2f..0000000
--- a/jsonnetfile.lock.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "version": 1,
- "dependencies": [
- {
- "source": {
- "git": {
- "remote": "https://github.com/ceph/ceph.git",
- "subdir": "monitoring/ceph-mixin"
- }
- },
- "version": "296ba0641a161e6f809a03f39d85faf9d695315b",
- "sum": "ZnyCIu25NBI6Q3Ru7QK1DHf7DBMEURSMQdEJXzCyIgA="
- },
- {
- "source": {
- "git": {
- "remote": "https://github.com/grafana/grafonnet-lib.git",
- "subdir": "grafonnet"
- }
- },
- "version": "30280196507e0fe6fa978a3e0eaca3a62844f817",
- "sum": "342u++/7rViR/zj2jeJOjshzglkZ1SY+hFNuyCBFMdc="
- },
- {
- "source": {
- "git": {
- "remote": "https://github.com/grafana/jsonnet-libs.git",
- "subdir": "grafana-builder"
- }
- },
- "version": "d73aff453c9784cd6922119f3ce33d8d355a79e1",
- "sum": "tDR6yT2GVfw0wTU12iZH+m01HrbIr6g/xN+/8nzNkU0="
- },
- {
- "source": {
- "git": {
- "remote": "https://github.com/grafana/jsonnet-libs.git",
- "subdir": "memcached-mixin"
- }
- },
- "version": "d73aff453c9784cd6922119f3ce33d8d355a79e1",
- "sum": "kl5GJvwAVAh0qIKsAFpNXm/jhHhv/8tBbpri7VCpZ2I="
- },
- {
- "source": {
- "git": {
- "remote": "https://github.com/povilasv/coredns-mixin.git",
- "subdir": ""
- }
- },
- "version": "8b121c41b6c0741f1603b2d75ccd324050c4bd03",
- "sum": "4CxwtfVX/OIS5w5+FkExG5evxiatOEMhaWChWaFc9S4="
- },
- {
- "source": {
- "git": {
- "remote": "https://github.com/prometheus/mysqld_exporter.git",
- "subdir": "mysqld-mixin"
- }
- },
- "version": "503f1fa222f0afc74a1dcf4a0ef5a7c2dfa4d105",
- "sum": "G69++5ExKgQ9niW0Owmw0orc8voP0Qll2WZJ1fHAqzE="
- }
- ],
- "legacyImports": false
-}
diff --git a/playbooks/openstack.yml b/playbooks/openstack.yml
index 8543a0d..9166ef8 100644
--- a/playbooks/openstack.yml
+++ b/playbooks/openstack.yml
@@ -32,6 +32,11 @@
gather_facts: false
become: true
roles:
+ # TODO(mnaser): We should get rid of this very soon.
+ - role: atmosphere
+ tags:
+ - atmosphere
+
- role: csi
tags:
- csi
diff --git a/plugins/filter/to_toml.py b/plugins/filter/to_toml.py
deleted file mode 100644
index 341da4e..0000000
--- a/plugins/filter/to_toml.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/python
-
-import json
-
-import tomli_w
-
-
-class FilterModule(object):
- def filters(self):
- return {"to_toml": self.to_toml}
-
- def to_toml(self, variable):
- s = json.dumps(dict(variable))
- d = json.loads(s)
- return tomli_w.dumps(d)
diff --git a/plugins/lookup/jsonnet.py b/plugins/lookup/jsonnet.py
new file mode 100644
index 0000000..925d994
--- /dev/null
+++ b/plugins/lookup/jsonnet.py
@@ -0,0 +1,84 @@
+# Copyright (c) 2023 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
+
+import json
+import os
+
+from ansible.errors import AnsibleLookupError
+from ansible.plugins.lookup import LookupBase
+
+try:
+ import rjsonnet
+
+ HAS_RJSONNET = True
+except ImportError:
+ HAS_RJSONNET = False
+
+
+DOCUMENTATION = """
+ name: jsonnet
+ author: Mohammed Naser (@mnaser) <mnaser@vexxhost.com>
+ version_added: "0.13"
+ short_description: Compile jsonnet file
+ description:
+ - This lookup returns the compiled jsonnet file
+ options:
+ _terms:
+ description: jsonnet file path
+ required: True
+"""
+
+
+def import_callback(base, rel):
+ """
+ :param base: The directory containing the code that did the import.
+ :param rel: The path imported by the code.
+ """
+ path = os.path.join(base, rel)
+ with open(path, "r") as f:
+ return path, f.read()
+
+
+class LookupModule(LookupBase):
+ def run(self, terms, variables=None, **kwargs):
+ if not HAS_RJSONNET:
+ raise AnsibleLookupError("rjsonnet is required for this lookup")
+
+ ret = []
+
+ for term in terms:
+ file = self.find_file_in_search_path(variables, "files", term)
+ if not file:
+ raise AnsibleLookupError("Could not find file %s" % term)
+
+ def import_callback(base, rel):
+ """
+ :param base: The directory containing the code that did the import.
+ :param rel: The path imported by the code.
+ """
+ path = self.find_file_in_search_path(variables, base, rel)
+ with open(path, "r") as f:
+ return path, f.read()
+
+ compiled_string = rjsonnet.evaluate_file(
+ file, import_callback=import_callback
+ )
+ compiled = json.loads(compiled_string)
+ ret.append(compiled)
+
+ return ret
diff --git a/poetry.lock b/poetry.lock
index ba01ff2..4c33614 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -467,14 +467,6 @@
python-versions = ">=3.7"
[[package]]
-name = "jsonnet"
-version = "0.18.0"
-description = "Python bindings for Jsonnet - The data templating language"
-category = "main"
-optional = true
-python-versions = "*"
-
-[[package]]
name = "jsonpatch"
version = "1.32"
description = "Apply JSON-Patches (RFC 6902)"
@@ -874,21 +866,6 @@
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
-name = "pydantic"
-version = "1.10.4"
-description = "Data validation and settings management using python type hints"
-category = "main"
-optional = true
-python-versions = ">=3.7"
-
-[package.dependencies]
-typing-extensions = ">=4.2.0"
-
-[package.extras]
-dotenv = ["python-dotenv (>=0.10.4)"]
-email = ["email-validator (>=1.0.3)"]
-
-[[package]]
name = "pyflakes"
version = "2.5.0"
description = "passive checker of Python programs"
@@ -1173,11 +1150,11 @@
jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]]
-name = "schematics"
-version = "2.1.1"
-description = "Python Data Structures for Humans"
+name = "rjsonnet"
+version = "0.5.2"
+description = "Python bindings to Rust jrsonnet crate"
category = "main"
-optional = true
+optional = false
python-versions = "*"
[[package]]
@@ -1238,7 +1215,7 @@
name = "tomli"
version = "2.0.1"
description = "A lil' TOML parser"
-category = "main"
+category = "dev"
optional = false
python-versions = ">=3.7"
@@ -1324,12 +1301,12 @@
multidict = ">=4.0"
[extras]
-operator = ["schematics", "pydantic", "pykube-ng", "tomli", "jsonnet", "kopf"]
+operator = ["pykube-ng", "jsonnet", "kopf"]
[metadata]
lock-version = "1.1"
python-versions = "^3.10"
-content-hash = "034ac062f5dca8bb749b33d8a4cd4d646a41e7c0da24771ea1522041fa183413"
+content-hash = "30ef77f5ad337a807a63b695477163d8d7ee19bd2c7a4e58921a56c5570049c3"
[metadata.files]
aiohttp = [
@@ -1773,9 +1750,6 @@
{file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"},
{file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
]
-jsonnet = [
- {file = "jsonnet-0.18.0.tar.gz", hash = "sha256:4ccd13427e9097b6b7d6d38f78f638a55ab8b452a257639e8e9af2178ec235d4"},
-]
jsonpatch = [
{file = "jsonpatch-1.32-py2.py3-none-any.whl", hash = "sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397"},
{file = "jsonpatch-1.32.tar.gz", hash = "sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"},
@@ -2098,44 +2072,6 @@
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
-pydantic = [
- {file = "pydantic-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5635de53e6686fe7a44b5cf25fcc419a0d5e5c1a1efe73d49d48fe7586db854"},
- {file = "pydantic-1.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6dc1cc241440ed7ca9ab59d9929075445da6b7c94ced281b3dd4cfe6c8cff817"},
- {file = "pydantic-1.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51bdeb10d2db0f288e71d49c9cefa609bca271720ecd0c58009bd7504a0c464c"},
- {file = "pydantic-1.10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78cec42b95dbb500a1f7120bdf95c401f6abb616bbe8785ef09887306792e66e"},
- {file = "pydantic-1.10.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8775d4ef5e7299a2f4699501077a0defdaac5b6c4321173bcb0f3c496fbadf85"},
- {file = "pydantic-1.10.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:572066051eeac73d23f95ba9a71349c42a3e05999d0ee1572b7860235b850cc6"},
- {file = "pydantic-1.10.4-cp310-cp310-win_amd64.whl", hash = "sha256:7feb6a2d401f4d6863050f58325b8d99c1e56f4512d98b11ac64ad1751dc647d"},
- {file = "pydantic-1.10.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:39f4a73e5342b25c2959529f07f026ef58147249f9b7431e1ba8414a36761f53"},
- {file = "pydantic-1.10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:983e720704431a6573d626b00662eb78a07148c9115129f9b4351091ec95ecc3"},
- {file = "pydantic-1.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75d52162fe6b2b55964fbb0af2ee58e99791a3138588c482572bb6087953113a"},
- {file = "pydantic-1.10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fdf8d759ef326962b4678d89e275ffc55b7ce59d917d9f72233762061fd04a2d"},
- {file = "pydantic-1.10.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:05a81b006be15655b2a1bae5faa4280cf7c81d0e09fcb49b342ebf826abe5a72"},
- {file = "pydantic-1.10.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d88c4c0e5c5dfd05092a4b271282ef0588e5f4aaf345778056fc5259ba098857"},
- {file = "pydantic-1.10.4-cp311-cp311-win_amd64.whl", hash = "sha256:6a05a9db1ef5be0fe63e988f9617ca2551013f55000289c671f71ec16f4985e3"},
- {file = "pydantic-1.10.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:887ca463c3bc47103c123bc06919c86720e80e1214aab79e9b779cda0ff92a00"},
- {file = "pydantic-1.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdf88ab63c3ee282c76d652fc86518aacb737ff35796023fae56a65ced1a5978"},
- {file = "pydantic-1.10.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a48f1953c4a1d9bd0b5167ac50da9a79f6072c63c4cef4cf2a3736994903583e"},
- {file = "pydantic-1.10.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a9f2de23bec87ff306aef658384b02aa7c32389766af3c5dee9ce33e80222dfa"},
- {file = "pydantic-1.10.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:cd8702c5142afda03dc2b1ee6bc358b62b3735b2cce53fc77b31ca9f728e4bc8"},
- {file = "pydantic-1.10.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6e7124d6855b2780611d9f5e1e145e86667eaa3bd9459192c8dc1a097f5e9903"},
- {file = "pydantic-1.10.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b53e1d41e97063d51a02821b80538053ee4608b9a181c1005441f1673c55423"},
- {file = "pydantic-1.10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:55b1625899acd33229c4352ce0ae54038529b412bd51c4915349b49ca575258f"},
- {file = "pydantic-1.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:301d626a59edbe5dfb48fcae245896379a450d04baeed50ef40d8199f2733b06"},
- {file = "pydantic-1.10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6f9d649892a6f54a39ed56b8dfd5e08b5f3be5f893da430bed76975f3735d15"},
- {file = "pydantic-1.10.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d7b5a3821225f5c43496c324b0d6875fde910a1c2933d726a743ce328fbb2a8c"},
- {file = "pydantic-1.10.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f2f7eb6273dd12472d7f218e1fef6f7c7c2f00ac2e1ecde4db8824c457300416"},
- {file = "pydantic-1.10.4-cp38-cp38-win_amd64.whl", hash = "sha256:4b05697738e7d2040696b0a66d9f0a10bec0efa1883ca75ee9e55baf511909d6"},
- {file = "pydantic-1.10.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a9a6747cac06c2beb466064dda999a13176b23535e4c496c9d48e6406f92d42d"},
- {file = "pydantic-1.10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb992a1ef739cc7b543576337bebfc62c0e6567434e522e97291b251a41dad7f"},
- {file = "pydantic-1.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:990406d226dea0e8f25f643b370224771878142155b879784ce89f633541a024"},
- {file = "pydantic-1.10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e82a6d37a95e0b1b42b82ab340ada3963aea1317fd7f888bb6b9dfbf4fff57c"},
- {file = "pydantic-1.10.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9193d4f4ee8feca58bc56c8306bcb820f5c7905fd919e0750acdeeeef0615b28"},
- {file = "pydantic-1.10.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2b3ce5f16deb45c472dde1a0ee05619298c864a20cded09c4edd820e1454129f"},
- {file = "pydantic-1.10.4-cp39-cp39-win_amd64.whl", hash = "sha256:9cbdc268a62d9a98c56e2452d6c41c0263d64a2009aac69246486f01b4f594c4"},
- {file = "pydantic-1.10.4-py3-none-any.whl", hash = "sha256:4948f264678c703f3877d1c8877c4e3b2e12e549c57795107f08cf70c6ec7774"},
- {file = "pydantic-1.10.4.tar.gz", hash = "sha256:b9a3859f24eb4e097502a3be1fb4b2abb79b6103dd9e2e0edb70613a4459a648"},
-]
pyflakes = [
{file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
{file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
@@ -2377,9 +2313,22 @@
{file = "rich-13.3.0-py3-none-any.whl", hash = "sha256:dd62e48284e540ae03235258699c07d5b48dbc1fd1905c6091b5ce72d7c69195"},
{file = "rich-13.3.0.tar.gz", hash = "sha256:98ce3ede653f23fbc02b0f8bd8a16a6b2bb4cfbdcfccf736eb28ba2810af241e"},
]
-schematics = [
- {file = "schematics-2.1.1-py2.py3-none-any.whl", hash = "sha256:be2d451bfb86789975e5ec0864aec569b63cea9010f0d24cbbd992a4e564c647"},
- {file = "schematics-2.1.1.tar.gz", hash = "sha256:34c87f51a25063bb498ae1cc201891b134cfcb329baf9e9f4f3ae869b767560f"},
+rjsonnet = [
+ {file = "rjsonnet-0.5.2-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:f6e72ea6859cd7d64dd04a7c6ba53d7abe6437336b8e51768e482b82f352b380"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:162e3a5a01591ccc4b0e589a1afcbbe01abab3762fef110cb25f6dbd5be18b1f"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2fdf3f967b924020a752c45e772c107586f458c71dff1de18977cf5cc84de48"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a3159d1309bbff4e34406e1f0259191bba5d7b7f91021061f6211298bdc22307"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:357a75e5ea45c674c430b7a7146d3be182e64a1b4fcb569ba9878e0ca04e8369"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d14d5245c0448676125556578d489b93c13525ceb4313aa6ddfba9677b5342c5"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5a8b72d318b2f1f24df3f7f5ed5436522f02aaf3ee8b8f4d635417fe863f6a7"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bae1eb251b4e2cd7aadcc57ba99e009f1a0bb257d348095f18e7fb3f882ab36"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6b01c34690d64068fb01ad62356b5b7b40bdc1b8804cfbcc6fa6a80ee86e6905"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:1a8a7e587fcab68253d47bb8b76b7fe75821f649612dbca9bc43caccd8d883b9"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:1388aeb0b3caa6ce206517f8da95ed22ccca074b6f8eca94a91d526bb76bb392"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e0f5f447ea76fb279d3310ff695cee6fee52c0101d2260bafb62de2abdc44c8d"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-win32.whl", hash = "sha256:f402453f6051893ddc83377afbda6bcf6cc2a81613a65090d8dc50327ab8996c"},
+ {file = "rjsonnet-0.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:6b7c5d2d1ee0fed32f448681cc011b93bfb718290173a15f5f055124c089ecec"},
+ {file = "rjsonnet-0.5.2.tar.gz", hash = "sha256:95062261ffdef831a9e44a35e2d3a97a91d3870dac364ed6beae57d0851eeecd"},
]
six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
diff --git a/pyproject.toml b/pyproject.toml
index 6948ea2..a717c2a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,25 +10,16 @@
[tool.poetry.dependencies]
python = "^3.10"
-pydantic = { version = "^1.10.4", optional = true }
-schematics = { version = "^2.1.1", optional = true }
pykube-ng = { version = "^22.7.0", optional = true }
-tomli = { version = "^2.0.1", optional = true }
-jsonnet = { version = "^0.18.0", optional = true }
kopf = { version = "^1.36.0", optional = true, extras = ["uvloop"] }
openstacksdk = "<0.99.0"
docker-image-py = "^0.1.12"
"oslo.serialization" = "^5.0.0"
+rjsonnet = "^0.5.2"
[tool.poetry.extras]
operator = [
- "schematics",
- "pydantic",
"pykube-ng",
- "structlog",
- "taskflow",
- "tomli",
- "jsonnet",
"kopf",
]
@@ -36,14 +27,11 @@
ansible-core = "^2.13.4"
flake8 = "^5.0.4"
flake8-isort = "^4.2.0"
-hypothesis = "6.61.0"
jmespath = "^1.0.1"
molecule = "^4.0.1"
pytest = "^7.1.3"
pytest-cov = "^3.0.0"
pytest-mock = "^3.8.2"
-tomli-w = "^1.0.0"
-responses = "^0.22.0"
pytest-forked = "^1.4.0"
pytest-xdist = "^3.1.0"
diff --git a/roles/atmosphere/defaults/main.yml b/roles/atmosphere/defaults/main.yml
index 377ff32..34db33e 100644
--- a/roles/atmosphere/defaults/main.yml
+++ b/roles/atmosphere/defaults/main.yml
@@ -1,9 +1 @@
atmosphere_image: "{{ atmosphere_images['atmosphere'] | vexxhost.atmosphere.docker_image('ref') }}"
-
-atmosphere_config:
- image_repository: "{{ atmosphere_image_repository | default('') }}"
- kube_prometheus_stack:
- overrides: "{{ kube_prometheus_stack_values | default({}) }}"
- opsgenie: "{{ atmosphere_opsgenie_config | default({}) }}"
-
-atmosphere_cloud_spec: {}
diff --git a/roles/atmosphere/tasks/main.yml b/roles/atmosphere/tasks/main.yml
index e6ac04b..9a6cbd0 100644
--- a/roles/atmosphere/tasks/main.yml
+++ b/roles/atmosphere/tasks/main.yml
@@ -11,6 +11,5 @@
- cluster_role_binding.yml
- namespace.yml
- service_account.yml
- - secret.yml
- deployment.yml
- resources.yml
diff --git a/roles/atmosphere/templates/crds.yml b/roles/atmosphere/templates/crds.yml
index 2a31263..2507006 100644
--- a/roles/atmosphere/templates/crds.yml
+++ b/roles/atmosphere/templates/crds.yml
@@ -2,32 +2,6 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
- name: clouds.atmosphere.vexxhost.com
-spec:
- scope: Namespaced
- group: atmosphere.vexxhost.com
- names:
- kind: Cloud
- plural: clouds
- singular: cloud
- versions:
- - name: v1alpha1
- served: true
- storage: true
- schema:
- openAPIV3Schema:
- type: object
- properties:
- spec:
- type: object
- x-kubernetes-preserve-unknown-fields: true
- status:
- type: object
- x-kubernetes-preserve-unknown-fields: true
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
name: endpoints.identity.openstack.atmosphere.vexxhost.com
spec:
scope: Namespaced
diff --git a/roles/atmosphere/templates/resources.yml b/roles/atmosphere/templates/resources.yml
index c52dbc1..6e7dc4d 100644
--- a/roles/atmosphere/templates/resources.yml
+++ b/roles/atmosphere/templates/resources.yml
@@ -23,10 +23,3 @@
name: member
impliedRoleRef:
name: load-balancer-member
----
-apiVersion: atmosphere.vexxhost.com/v1alpha1
-kind: Cloud
-metadata:
- name: atmosphere
- namespace: openstack
-spec: {{ _atmosphere_cloud_spec | combine(atmosphere_cloud_spec, recursive=True) | to_json }}
diff --git a/roles/atmosphere/templates/secret.yml b/roles/atmosphere/templates/secret.yml
deleted file mode 100644
index 1ea5263..0000000
--- a/roles/atmosphere/templates/secret.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: atmosphere-config
- namespace: openstack
-data:
- config.toml: "{{ atmosphere_config | vexxhost.atmosphere.to_toml | b64encode }}"
diff --git a/roles/atmosphere/vars/main.yml b/roles/atmosphere/vars/main.yml
deleted file mode 100644
index 2710cb7..0000000
--- a/roles/atmosphere/vars/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-_atmosphere_cloud_spec:
- imageRepository: "{{ atmosphere_image_repository | default(None) }}"
- ingressClassName: "{{ atmosphere_ingress_class_name }}"
- certManagerClusterIssuer: "{{ atmosphere_ingress_cluster_issuer }}"
- regionName: "{{ openstack_helm_endpoints_region_name }}"
diff --git a/roles/ipmi_exporter/tasks/main.yml b/roles/ipmi_exporter/tasks/main.yml
index 578dccd..9e9ad80 100644
--- a/roles/ipmi_exporter/tasks/main.yml
+++ b/roles/ipmi_exporter/tasks/main.yml
@@ -74,10 +74,3 @@
- key: feature.node.kubernetes.io/cpu-cpuid.HYPERVISOR
operator: NotIn
values: ["true"]
- # NOTE(mnaser): Since we haven't moved to the operator pattern yet, we need to
- # keep retrying a few times as the CRDs might not be installed
- # yet.
- retries: 60
- delay: 5
- register: _result
- until: _result is not failed
diff --git a/roles/kube_prometheus_stack/defaults/main.yml b/roles/kube_prometheus_stack/defaults/main.yml
new file mode 100644
index 0000000..7b904fd
--- /dev/null
+++ b/roles/kube_prometheus_stack/defaults/main.yml
@@ -0,0 +1,20 @@
+# Copyright (c) 2023 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.
+
+kube_prometheus_stack_helm_release_name: kube-prometheus-stack
+kube_prometheus_stack_helm_chart_path: "{{ role_path }}/../../charts/kube-prometheus-stack/"
+kube_prometheus_stack_helm_chart_ref: /usr/local/src/kube-prometheus-stack
+
+kube_prometheus_stack_helm_release_namespace: monitoring
+kube_prometheus_stack_helm_values: {}
diff --git a/atmosphere/jsonnet/__init__.py b/roles/kube_prometheus_stack/files/jsonnet/__init__.py
similarity index 100%
rename from atmosphere/jsonnet/__init__.py
rename to roles/kube_prometheus_stack/files/jsonnet/__init__.py
diff --git a/atmosphere/jsonnet/ceph.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/ceph.libsonnet
similarity index 89%
rename from atmosphere/jsonnet/ceph.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/ceph.libsonnet
index b72a889..b803d02 100644
--- a/atmosphere/jsonnet/ceph.libsonnet
+++ b/roles/kube_prometheus_stack/files/jsonnet/ceph.libsonnet
@@ -1,4 +1,4 @@
-local ceph = import 'vendor/ceph-mixin/mixin.libsonnet';
+local ceph = import 'vendor/github.com/ceph/ceph/monitoring/ceph-mixin/mixin.libsonnet';
local DISABLED_NODE_ALERTS = [
// * Dropped `CephNodeDiskspaceWarning` because we already have a
diff --git a/atmosphere/jsonnet/jsonnetfile.json b/roles/kube_prometheus_stack/files/jsonnet/jsonnetfile.json
similarity index 100%
rename from atmosphere/jsonnet/jsonnetfile.json
rename to roles/kube_prometheus_stack/files/jsonnet/jsonnetfile.json
diff --git a/atmosphere/jsonnet/jsonnetfile.lock.json b/roles/kube_prometheus_stack/files/jsonnet/jsonnetfile.lock.json
similarity index 100%
rename from atmosphere/jsonnet/jsonnetfile.lock.json
rename to roles/kube_prometheus_stack/files/jsonnet/jsonnetfile.lock.json
diff --git a/atmosphere/jsonnet/legacy.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/legacy.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet
diff --git a/atmosphere/jsonnet/mysqld.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/mysqld.libsonnet
similarity index 77%
rename from atmosphere/jsonnet/mysqld.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/mysqld.libsonnet
index 9ddf46b..034f2aa 100644
--- a/atmosphere/jsonnet/mysqld.libsonnet
+++ b/roles/kube_prometheus_stack/files/jsonnet/mysqld.libsonnet
@@ -46,9 +46,9 @@
prometheusAlerts: {
groups:
(
- std.parseYaml(importstr 'vendor/mysqld-mixin/alerts/general.yaml').groups +
- std.parseYaml(importstr 'vendor/mysqld-mixin/alerts/galera.yaml').groups +
- std.parseYaml(importstr 'vendor/mysqld-mixin/rules/rules.yaml').groups
+ std.parseYaml(importstr 'vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/general.yaml').groups +
+ std.parseYaml(importstr 'vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/galera.yaml').groups +
+ std.parseYaml(importstr 'vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/rules/rules.yaml').groups
),
},
} + addAlerts
diff --git a/atmosphere/jsonnet/rules.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/rules.jsonnet
similarity index 65%
rename from atmosphere/jsonnet/rules.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/rules.jsonnet
index 610332f..e562e6e 100644
--- a/atmosphere/jsonnet/rules.jsonnet
+++ b/roles/kube_prometheus_stack/files/jsonnet/rules.jsonnet
@@ -2,9 +2,9 @@
local ceph = import 'ceph.libsonnet';
local mysqld = import 'mysqld.libsonnet';
-local memcached = import 'vendor/memcached-mixin/mixin.libsonnet';
+local memcached = import 'vendor/github.com/grafana/jsonnet-libs/memcached-mixin/mixin.libsonnet';
-local coredns = (import 'vendor/coredns-mixin/mixin.libsonnet') + {
+local coredns = (import 'vendor/github.com/povilasv/coredns-mixin/mixin.libsonnet') + {
_config+:: {
corednsSelector: 'job="coredns"',
},
diff --git a/atmosphere/jsonnet/vendor/ceph-mixin b/roles/kube_prometheus_stack/files/jsonnet/vendor/ceph-mixin
similarity index 100%
rename from atmosphere/jsonnet/vendor/ceph-mixin
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/ceph-mixin
diff --git a/atmosphere/jsonnet/vendor/coredns-mixin b/roles/kube_prometheus_stack/files/jsonnet/vendor/coredns-mixin
similarity index 100%
rename from atmosphere/jsonnet/vendor/coredns-mixin
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/coredns-mixin
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/.gitignore b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/.gitignore
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/.gitignore
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/.gitignore
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/CMakeLists.txt b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/CMakeLists.txt
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/CMakeLists.txt
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/CMakeLists.txt
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/Makefile b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/Makefile
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/Makefile
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/Makefile
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/README.md b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/README.md
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/README.md
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/README.md
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.jsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.jsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/alerts.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/config.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/config.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/config.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/config.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.jsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.jsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/cephfs.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/cephfs.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/cephfs.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/cephfs.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/host.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/host.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/host.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/host.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/osd.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/osd.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/osd.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/osd.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/pool.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/pool.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/pool.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/pool.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rbd.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rbd.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rbd.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rbd.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rgw.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rgw.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rgw.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/rgw.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/utils.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/utils.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/utils.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards/utils.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/.lint b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/.lint
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/.lint
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/.lint
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/ceph-cluster.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/ceph-cluster.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/ceph-cluster.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/ceph-cluster.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/cephfs-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/cephfs-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/cephfs-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/cephfs-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/host-details.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/host-details.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/host-details.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/host-details.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/hosts-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/hosts-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/hosts-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/hosts-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osd-device-details.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osd-device-details.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osd-device-details.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osd-device-details.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osds-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osds-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osds-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/osds-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-detail.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-detail.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-detail.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-detail.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/pool-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-detail.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-detail.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-detail.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-detail.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-sync-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-sync-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-sync-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/radosgw-sync-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-details.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-details.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-details.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-details.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/dashboards_out/rbd-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnet-bundler-build.sh b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnet-bundler-build.sh
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnet-bundler-build.sh
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnet-bundler-build.sh
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.lock.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.lock.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.lock.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/jsonnetfile.lock.json
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/lint-jsonnet.sh b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/lint-jsonnet.sh
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/lint-jsonnet.sh
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/lint-jsonnet.sh
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/mixin.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/mixin.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/mixin.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/mixin.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.yml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.yml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.yml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/prometheus_alerts.yml
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-alerts.txt b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-alerts.txt
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-alerts.txt
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-alerts.txt
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-grafonnet.txt b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-grafonnet.txt
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-grafonnet.txt
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-grafonnet.txt
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-lint.txt b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-lint.txt
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-lint.txt
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/requirements-lint.txt
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/test-jsonnet.sh b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/test-jsonnet.sh
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/test-jsonnet.sh
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/test-jsonnet.sh
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/README.md b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/README.md
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/README.md
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/README.md
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/__init__.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/__init__.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/__init__.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/__init__.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/settings.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/settings.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/settings.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/settings.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_alerts.yml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_alerts.yml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_alerts.yml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_alerts.yml
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_syntax.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_syntax.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_syntax.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_syntax.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_unittests.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_unittests.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_unittests.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/test_unittests.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/utils.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/utils.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/utils.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/utils.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/validate_rules.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/validate_rules.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/validate_rules.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_alerts/validate_rules.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/__init__.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/__init__.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/__init__.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/__init__.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/__init__.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/__init__.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/__init__.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/__init__.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/ceph-cluster.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/ceph-cluster.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/ceph-cluster.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/ceph-cluster.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/environment.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/environment.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/environment.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/environment.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/host-details.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/host-details.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/host-details.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/host-details.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/hosts_overview.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/hosts_overview.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/hosts_overview.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/hosts_overview.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osd-device-details.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osd-device-details.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osd-device-details.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osd-device-details.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osds-overview.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osds-overview.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osds-overview.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/osds-overview.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw-detail.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw-detail.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw-detail.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw-detail.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw_overview.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw_overview.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw_overview.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/radosgw_overview.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/self.feature b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/self.feature
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/self.feature
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/self.feature
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/steps/__init__.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/steps/__init__.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/steps/__init__.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/features/steps/__init__.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/requirements.txt b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/requirements.txt
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/requirements.txt
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/requirements.txt
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/util.py b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/util.py
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/util.py
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tests_dashboards/util.py
diff --git a/atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tox.ini b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tox.ini
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tox.ini
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/ceph/ceph/monitoring/ceph-mixin/tox.ini
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alert_condition.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alert_condition.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alert_condition.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alert_condition.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/bar_gauge_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/bar_gauge_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/bar_gauge_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/bar_gauge_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudmonitoring.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudmonitoring.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudmonitoring.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudmonitoring.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pie_chart_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pie_chart_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pie_chart_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pie_chart_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/stat_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/stat_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/stat_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/stat_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/transformation.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/transformation.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/transformation.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/grafonnet-lib/grafonnet/transformation.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/grafana-builder/grafana.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/grafana-builder/grafana.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/grafana-builder/grafana.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/grafana-builder/grafana.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/README.md b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/README.md
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/README.md
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/README.md
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/alerts.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/alerts.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/alerts.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/alerts.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboard.png b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboard.png
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboard.png
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboard.png
Binary files differ
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.jsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.jsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/dashboards.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/jsonnetfile.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/jsonnetfile.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/jsonnetfile.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/jsonnetfile.json
diff --git a/atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/mixin.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/mixin.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/mixin.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/grafana/jsonnet-libs/memcached-mixin/mixin.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/.circleci/config.yml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/.circleci/config.yml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/.circleci/config.yml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/.circleci/config.yml
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/.gitignore b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/.gitignore
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/.gitignore
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/.gitignore
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/LICENSE b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/LICENSE
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/LICENSE
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/LICENSE
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/Makefile b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/Makefile
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/Makefile
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/Makefile
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/README.md b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/README.md
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/README.md
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/README.md
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/add-runbook-links.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/add-runbook-links.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/add-runbook-links.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/add-runbook-links.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/alerts.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/alerts.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/alerts.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/alerts.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/coredns.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/coredns.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/coredns.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/coredns.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/forward.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/forward.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/forward.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/alerts/forward.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/config.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/config.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/config.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/config.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/coredns.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/coredns.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/coredns.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/coredns.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/dashboards.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/dashboards.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/dashboards.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/dashboards/dashboards.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/jsonnetfile.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/jsonnetfile.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/jsonnetfile.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/jsonnetfile.json
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/alerts.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/alerts.jsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/alerts.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/alerts.jsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/dashboards.jsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/dashboards.jsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/dashboards.jsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/dashboards.jsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/utils.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/utils.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/utils.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/lib/utils.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/mixin.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/mixin.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/mixin.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/mixin.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/tests.yaml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/tests.yaml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/povilasv/coredns-mixin/tests.yaml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/povilasv/coredns-mixin/tests.yaml
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/.gitignore b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/.gitignore
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/.gitignore
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/.gitignore
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/Makefile b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/Makefile
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/Makefile
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/Makefile
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/README.md b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/README.md
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/README.md
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/README.md
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/galera.yaml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/galera.yaml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/galera.yaml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/galera.yaml
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/general.yaml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/general.yaml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/general.yaml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/alerts/general.yaml
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/dashboards/mysql-overview.json b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/dashboards/mysql-overview.json
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/dashboards/mysql-overview.json
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/dashboards/mysql-overview.json
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/mixin.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/mixin.libsonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/mixin.libsonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/mixin.libsonnet
diff --git a/atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/rules/rules.yaml b/roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/rules/rules.yaml
similarity index 100%
rename from atmosphere/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/rules/rules.yaml
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/github.com/prometheus/mysqld_exporter/mysqld-mixin/rules/rules.yaml
diff --git a/atmosphere/jsonnet/vendor/grafana-builder b/roles/kube_prometheus_stack/files/jsonnet/vendor/grafana-builder
similarity index 100%
rename from atmosphere/jsonnet/vendor/grafana-builder
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/grafana-builder
diff --git a/atmosphere/jsonnet/vendor/grafonnet b/roles/kube_prometheus_stack/files/jsonnet/vendor/grafonnet
similarity index 100%
rename from atmosphere/jsonnet/vendor/grafonnet
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/grafonnet
diff --git a/atmosphere/jsonnet/vendor/memcached-mixin b/roles/kube_prometheus_stack/files/jsonnet/vendor/memcached-mixin
similarity index 100%
rename from atmosphere/jsonnet/vendor/memcached-mixin
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/memcached-mixin
diff --git a/atmosphere/jsonnet/vendor/mysqld-mixin b/roles/kube_prometheus_stack/files/jsonnet/vendor/mysqld-mixin
similarity index 100%
rename from atmosphere/jsonnet/vendor/mysqld-mixin
rename to roles/kube_prometheus_stack/files/jsonnet/vendor/mysqld-mixin
diff --git a/roles/kube_prometheus_stack/meta/main.yml b/roles/kube_prometheus_stack/meta/main.yml
index 8dc536b..c5fe74f 100644
--- a/roles/kube_prometheus_stack/meta/main.yml
+++ b/roles/kube_prometheus_stack/meta/main.yml
@@ -25,4 +25,7 @@
dependencies:
- role: defaults
- - role: atmosphere
+ - role: upload_helm_chart
+ vars:
+ upload_helm_chart_src: "{{ kube_prometheus_stack_helm_chart_path }}"
+ upload_helm_chart_dest: "{{ kube_prometheus_stack_helm_chart_ref }}"
diff --git a/roles/kube_prometheus_stack/tasks/main.yml b/roles/kube_prometheus_stack/tasks/main.yml
index 6eebd3f..3d4bd07 100644
--- a/roles/kube_prometheus_stack/tasks/main.yml
+++ b/roles/kube_prometheus_stack/tasks/main.yml
@@ -40,10 +40,35 @@
ca.crt: "{{ _etcd_ca_crt.content }}"
healthcheck-client.crt: "{{ _etcd_healthcheck_client_crt.content }}"
healthcheck-client.key: "{{ _etcd_healthcheck_client_key.content }}"
- # NOTE(mnaser): Since we haven't moved to the operator pattern yet, we need to
- # keep retrying a few times as the namespace might not be
- # created yet.
- retries: 60
- delay: 5
- register: _result
- until: _result is not failed
+
+- name: Uninstall the legacy HelmRelease
+ run_once: true
+ block:
+ - name: Suspend the existing HelmRelease
+ kubernetes.core.k8s:
+ state: patched
+ api_version: helm.toolkit.fluxcd.io/v2beta1
+ kind: HelmRelease
+ name: "{{ kube_prometheus_stack_helm_release_name }}"
+ namespace: "{{ kube_prometheus_stack_helm_release_namespace }}"
+ definition:
+ spec:
+ suspend: true
+
+ - name: Remove the existing HelmRelease
+ kubernetes.core.k8s:
+ state: absent
+ api_version: helm.toolkit.fluxcd.io/v2beta1
+ kind: HelmRelease
+ name: "{{ kube_prometheus_stack_helm_release_name }}"
+ namespace: "{{ kube_prometheus_stack_helm_release_namespace }}"
+
+- name: Deploy Helm chart
+ run_once: true
+ kubernetes.core.helm:
+ name: "{{ kube_prometheus_stack_helm_release_name }}"
+ chart_ref: "{{ kube_prometheus_stack_helm_chart_ref }}"
+ release_namespace: "{{ kube_prometheus_stack_helm_release_namespace }}"
+ create_namespace: true
+ kubeconfig: /etc/kubernetes/admin.conf
+ values: "{{ _kube_prometheus_stack_helm_values | combine(kube_prometheus_stack_helm_values, recursive=True) }}"
diff --git a/roles/kube_prometheus_stack/vars/main.yml b/roles/kube_prometheus_stack/vars/main.yml
new file mode 100644
index 0000000..ba9ee9b
--- /dev/null
+++ b/roles/kube_prometheus_stack/vars/main.yml
@@ -0,0 +1,244 @@
+_kube_prometheus_stack_helm_values:
+ defaultRules:
+ disabled:
+ # NOTE(mnaser): https://github.com/prometheus-community/helm-charts/issues/144
+ # https://github.com/openshift/cluster-monitoring-operator/issues/248
+ etcdHighNumberOfFailedGRPCRequests: true
+ alertmanager:
+ serviceMonitor:
+ relabelings: &relabelings_instance_to_pod_name
+ - &relabeling_set_pod_name_to_instance
+ sourceLabels:
+ - __meta_kubernetes_pod_name
+ targetLabel: instance
+ - &relabeling_drop_all_kubernetes_labels
+ action: labeldrop
+ 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') }}"
+ storage:
+ volumeClaimTemplate:
+ spec:
+ storageClassName: general
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 40Gi
+ nodeSelector: &node_selector
+ openstack-control-plane: enabled
+ grafana:
+ image:
+ repository: "{{ atmosphere_images['grafana'] | vexxhost.atmosphere.docker_image('name') }}"
+ tag: "{{ atmosphere_images['grafana'] | vexxhost.atmosphere.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') }}"
+ serviceMonitor:
+ relabelings: *relabelings_instance_to_pod_name
+ nodeSelector: *node_selector
+ kubeApiServer:
+ serviceMonitor:
+ relabelings: &relabelings_instance_to_node_name
+ - sourceLabels:
+ - __meta_kubernetes_pod_node_name
+ targetLabel: instance
+ - *relabeling_drop_all_kubernetes_labels
+ kubelet:
+ serviceMonitor:
+ cAdvisorRelabelings: &relabelings_kubelet
+ - sourceLabels:
+ - __metrics_path__
+ targetLabel: metrics_path
+ - sourceLabels:
+ - node
+ targetLabel: instance
+ - *relabeling_drop_all_kubernetes_labels
+ probesRelabelings: *relabelings_kubelet
+ relabelings: *relabelings_kubelet
+ kubeControllerManager:
+ serviceMonitor:
+ relabelings: *relabelings_instance_to_node_name
+ coreDns:
+ serviceMonitor:
+ relabelings: *relabelings_instance_to_pod_name
+ kubeEtcd:
+ service:
+ port: 2379
+ targetPort: 2379
+ serviceMonitor:
+ scheme: https
+ serverName: localhost
+ insecureSkipVerify: false
+ caFile: /etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/ca.crt
+ certFile: /etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/healthcheck-client.crt
+ keyFile: /etc/prometheus/secrets/kube-prometheus-stack-etcd-client-cert/healthcheck-client.key
+ relabelings: *relabelings_instance_to_node_name
+ kubeScheduler:
+ service:
+ port: 10259
+ targetPort: 10259
+ serviceMonitor:
+ https: true
+ insecureSkipVerify: true
+ relabelings: *relabelings_instance_to_node_name
+ kubeProxy:
+ serviceMonitor:
+ 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') }}"
+ prometheus:
+ monitor:
+ relabelings: *relabelings_instance_to_pod_name
+ nodeSelector: *node_selector
+ prometheus:
+ serviceMonitor:
+ 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') }}"
+ nodeSelector: *node_selector
+ secrets:
+ - kube-prometheus-stack-etcd-client-cert
+ additionalServiceMonitors:
+ - name: ceph
+ jobLabel: application
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ application: ceph
+ endpoints:
+ - port: metrics
+ honorLabels: true
+ relabelings:
+ - action: replace
+ regex: (.*)
+ replacement: ceph
+ targetLabel: cluster
+ - *relabeling_drop_all_kubernetes_labels
+ - name: coredns
+ jobLabel: app.kubernetes.io/name
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/name: coredns
+ endpoints:
+ - port: metrics
+ relabelings:
+ - sourceLabels:
+ - __meta_kubernetes_pod_label_application
+ targetLabel: application
+ - *relabeling_set_pod_name_to_instance
+ - *relabeling_drop_all_kubernetes_labels
+ - name: memcached
+ jobLabel: application
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ application: memcached
+ component: server
+ endpoints:
+ - port: metrics
+ relabelings: *relabelings_instance_to_pod_name
+ - name: openstack-exporter
+ jobLabel: jobLabel
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ application: openstack-exporter
+ endpoints:
+ - port: metrics
+ interval: 1m
+ relabelings:
+ - action: replace
+ regex: (.*)
+ replacement: default
+ targetLabel: instance
+ scrapeTimeout: 30s
+ additionalPodMonitors:
+ - name: ethtool-exporter
+ jobLabel: job
+ selector:
+ matchLabels:
+ application: ethtool-exporter
+ podMetricsEndpoints:
+ - port: metrics
+ relabelings: *relabelings_instance_to_node_name
+ - name: ipmi-exporter
+ jobLabel: job
+ selector:
+ matchLabels:
+ application: ipmi-exporter
+ podMetricsEndpoints:
+ - interval: 60s
+ port: metrics
+ relabelings: *relabelings_instance_to_node_name
+ - name: percona-xtradb-pxc
+ jobLabel: app.kubernetes.io/component
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ app.kubernetes.io/component: pxc
+ app.kubernetes.io/instance: percona-xtradb
+ podMetricsEndpoints:
+ - port: metrics
+ relabelings: *relabelings_instance_to_pod_name
+ - name: rabbitmq
+ jobLabel: app.kubernetes.io/component
+ namespaceSelector:
+ matchNames:
+ - openstack
+ selector:
+ matchLabels:
+ app.kubernetes.io/component: rabbitmq
+ podMetricsEndpoints:
+ - port: prometheus
+ relabelings: *relabelings_instance_to_pod_name
+ prometheusOperator:
+ 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') }}"
+ 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') }}"
+ prometheusConfigReloader:
+ image:
+ repository: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.atmosphere.docker_image('name') }}"
+ tag: "{{ atmosphere_images['prometheus_config_reloader'] | vexxhost.atmosphere.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') }}"
+ 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)$
+ - --collector.filesystem.mount-points-exclude=^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+|var/lib/kubelet/plugins/kubernetes.io/csi/.+|run/containerd/.+)($|/)
+ - --collector.netclass.ignored-devices=^(lxc|cilium_|qbr|qvb|qvo|tap|ovs-system|br|tbr|gre_sys).*$
+ - --collector.netdev.device-exclude=^(lxc|cilium_|qbr|qvb|qvo|tap|ovs-system|br|tbr|gre_sys).*$
+ prometheus:
+ monitor:
+ relabelings: *relabelings_instance_to_node_name
+ additionalPrometheusRulesMap: "{{ lookup('vexxhost.atmosphere.jsonnet', 'jsonnet/rules.jsonnet') }}"
diff --git a/roles/openstack_exporter/tasks/main.yml b/roles/openstack_exporter/tasks/main.yml
index 202054c..bf20d2b 100644
--- a/roles/openstack_exporter/tasks/main.yml
+++ b/roles/openstack_exporter/tasks/main.yml
@@ -129,10 +129,3 @@
targetPort: metrics
selector:
application: openstack-exporter
- # NOTE(mnaser): Since we haven't moved to the operator pattern yet, we need to
- # keep retrying a few times as the CRDs might not be installed
- # yet.
- retries: 60
- delay: 5
- register: _result
- until: _result is not failed
diff --git a/roles/openstack_helm_ingress/tasks/main.yml b/roles/openstack_helm_ingress/tasks/main.yml
index ae13029..1b70b19 100644
--- a/roles/openstack_helm_ingress/tasks/main.yml
+++ b/roles/openstack_helm_ingress/tasks/main.yml
@@ -39,10 +39,3 @@
- secretName: "{{ openstack_helm_ingress_secret_name }}"
hosts:
- "{{ openstack_helm_ingress_host }}"
- # NOTE(mnaser): The Atmosphere operator is so fast that the Ingress webhook
- # is not up yet by the time we run this for the first time, so
- # we retry until we let the operator handle creating the ingress.
- retries: 60
- delay: 5
- register: _result
- until: _result is not failed
diff --git a/roles/prometheus_pushgateway/tasks/main.yml b/roles/prometheus_pushgateway/tasks/main.yml
index 9270594..f617f14 100644
--- a/roles/prometheus_pushgateway/tasks/main.yml
+++ b/roles/prometheus_pushgateway/tasks/main.yml
@@ -43,10 +43,3 @@
create_namespace: true
kubeconfig: /etc/kubernetes/admin.conf
values: "{{ _prometheus_pushgateway_helm_values | combine(prometheus_pushgateway_helm_values, recursive=True) }}"
- # NOTE(mnaser): The Atmosphere operator is so fast that the CRDs for ServiceMonitor
- # are not installed yet by the time we run this for the first
- # time, so we retry until we let the operator handle deploy.
- retries: 60
- delay: 5
- register: _result
- until: _result is not failed