diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d9de7bc --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "quoteProps": "preserve", + "trailingComma": "none" +} diff --git a/.renovate/autoMerge.json5 b/.renovate/autoMerge.json5 index 6afcfd0..b4e47b4 100644 --- a/.renovate/autoMerge.json5 +++ b/.renovate/autoMerge.json5 @@ -1,22 +1,22 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "packageRules": [ - { - "description": "Auto merge container digests", - "matchDatasources": ["docker"], - "automerge": true, - "automergeType": "branch", - "matchUpdateTypes": ["digest"], - "matchPackagePrefixes": ["ghcr.io/onedr0p", "ghcr.io/bjw-s"], - "ignoreTests": true - }, - { - "description": "Auto merge KPS minors and patches", - "matchDatasources": ["helm"], - "automerge": true, - "matchUpdateTypes": ["minor", "patch"], - "matchDepNames": ["kube-prometheus-stack"], - "ignoreTests": false - } - ] + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "packageRules": [ + { + "description": "Auto merge container digests", + "matchDatasources": ["docker"], + "automerge": true, + "automergeType": "branch", + "matchUpdateTypes": ["digest"], + "matchPackagePrefixes": ["ghcr.io/onedr0p", "ghcr.io/bjw-s"], + "ignoreTests": true + }, + { + "description": "Auto merge KPS minors and patches", + "matchDatasources": ["helm"], + "automerge": true, + "matchUpdateTypes": ["minor", "patch"], + "matchDepNames": ["kube-prometheus-stack"], + "ignoreTests": false + } + ] } diff --git a/.renovate/customManagers.json5 b/.renovate/customManagers.json5 index 1840864..dcaeea4 100644 --- a/.renovate/customManagers.json5 +++ b/.renovate/customManagers.json5 @@ -1,37 +1,49 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "customDatasources": { - "grafana-dashboards": { - "defaultRegistryUrlTemplate": "https://grafana.com/api/dashboards/{{packageName}}", - "format": "json", - "transformTemplates": [ - "{\"releases\":[{\"version\": $string(revision)}]}" - ] - } + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "customDatasources": { + "grafana-dashboards": { + "defaultRegistryUrlTemplate": "https://grafana.com/api/dashboards/{{packageName}}", + "format": "json", + "transformTemplates": [ + "{\"releases\":[{\"version\": $string(revision)}]}" + ] + } + }, + "customManagers": [ + { + "customType": "regex", + "description": "Process Grafana dashboards", + "fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(\\.j2)?$"], + "matchStrings": [ + "depName=\"(?\\S+)\"\\n.*?gnetId: (?\\d+)\\n.*?revision: (?\\d+)" + ], + "datasourceTemplate": "custom.grafana-dashboards", + "versioningTemplate": "regex:^(?\\d+)$" }, - "customManagers": [ - { - "customType": "regex", - "description": "Process Grafana dashboards", - "fileMatch": [ - "(^|/)kubernetes/.+\\.ya?ml(\\.j2)?$" - ], - "matchStrings": [ - "depName=\"(?\\S+)\"\\n.*?gnetId: (?\\d+)\\n.*?revision: (?\\d+)" - ], - "datasourceTemplate": "custom.grafana-dashboards", - "versioningTemplate": "regex:^(?\\d+)$" - } - ], - "packageRules": [ - { - "addLabels": ["renovate/grafana-dashboard"], - "commitMessageExtra": "to revision {{newVersion}}", - "commitMessageTopic": "dashboard {{depName}}", - "matchDatasources": ["grafana-dashboards", "custom.grafana-dashboards"], - "matchUpdateTypes": ["major"], - "semanticCommitScope": "grafana-dashboards", - "semanticCommitType": "chore" - } - ] - } + { + "customType": "regex", + "description": ["Process custom dependencies"], + "fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"], + "matchStrings": [ + // # renovate: datasource=helm depName=cilium repository=https://helm.cilium.io + // version: 1.15.1 + "datasource=(?\\S+) depName=(?\\S+)( repository=(?\\S+))?\\n.+: (&\\S+\\s)?(?\\S+)", + // # renovate: datasource=github-releases depName=rancher/system-upgrade-controller + // https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.2/crd.yaml + "datasource=(?\\S+) depName=(?\\S+)\\n.+/(?(v|\\d)[^/]+)" + ], + "datasourceTemplate": "{{#if datasource}}{{{datasource}}}{{else}}github-releases{{/if}}" + } + ], + "packageRules": [ + { + "addLabels": ["renovate/grafana-dashboard"], + "commitMessageExtra": "to revision {{newVersion}}", + "commitMessageTopic": "dashboard {{depName}}", + "matchDatasources": ["grafana-dashboards", "custom.grafana-dashboards"], + "matchUpdateTypes": ["major"], + "semanticCommitScope": "grafana-dashboards", + "semanticCommitType": "chore" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 67d6e32..caf044e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -42,5 +42,9 @@ "files.trimTrailingWhitespace": true, "ansible.python.interpreterPath": "/usr/bin/python3", "sops.defaults.ageKeyFile": "age.key", - "ansible.validation.lint.path": "~/projects/valinor/.venv/bin/ansible-lint" + "ansible.validation.lint.path": "~/projects/valinor/.venv/bin/ansible-lint", + "prettier.quoteProps": "preserve", + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, } diff --git a/renovate.json5 b/renovate.json5 index 603ecc7..504e914 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -8,57 +8,39 @@ ], "ignorePaths": [".archive/**"], "flux": { - "fileMatch": [ - "kubernetes/.+\\.ya?ml$" - ] + "fileMatch": ["kubernetes/.+\\.ya?ml$"] }, "helm-values": { - "fileMatch": [ - "kubernetes/.+\\.ya?ml$" - ] + "fileMatch": ["kubernetes/.+\\.ya?ml$"] }, "kubernetes": { - "fileMatch": [ - "kubernetes/.+\\.ya?ml$" - ] + "fileMatch": ["kubernetes/.+\\.ya?ml$"] }, "regexManagers": [ { "description": [ "Process CRD dependencies - Chart and Github Release are the same version" ], - "fileMatch": [ - "kubernetes/.+\\.ya?ml$" - ], + "fileMatch": ["kubernetes/.+\\.ya?ml$"], "matchStrings": [ - "# renovate: registryUrl=(?\\S+) chart=(?\\S+)\n.*?(?[^-\\s]*)\n", + "# renovate: registryUrl=(?\\S+) chart=(?\\S+)\n.*?(?[^-\\s]*)\n" ], "datasourceTemplate": "helm" }, { - "description": [ - "Generic Docker image Regex manager" - ], - "fileMatch": [ - "infrastructure/.+\\.ya?ml$", - "infrastructure/.+\\.tf$" - ], + "description": ["Generic Docker image Regex manager"], + "fileMatch": ["infrastructure/.+\\.ya?ml$", "infrastructure/.+\\.tf$"], "matchStrings": [ - "# renovate: docker-image( versioning=(?.*=?))?\n .*[:|=] \"?(?.*?):(?[^\"\n]*=?)\"?", + "# renovate: docker-image( versioning=(?.*=?))?\n .*[:|=] \"?(?.*?):(?[^\"\n]*=?)\"?" ], "datasourceTemplate": "docker", "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}" }, { - "description": [ - "Raw GitHub URL Regex manager" - ], - "fileMatch": [ - "infrastructure/.+\\.ya?ml$", - "kubernetes/.+\\.ya?ml$" - ], + "description": ["Raw GitHub URL Regex manager"], + "fileMatch": ["infrastructure/.+\\.ya?ml$", "kubernetes/.+\\.ya?ml$"], "matchStrings": [ - "https:\\/\\/raw.githubusercontent.com\\/(?[\\w\\d\\-_]+\\/[\\w\\d\\-_]+)\\/(?[\\w\\d\\.\\-_]+)\\/.*", + "https:\\/\\/raw.githubusercontent.com\\/(?[\\w\\d\\-_]+\\/[\\w\\d\\-_]+)\\/(?[\\w\\d\\.\\-_]+)\\/.*" ], "datasourceTemplate": "github-releases", "versioningTemplate": "semver" @@ -67,87 +49,60 @@ "packageRules": [ { "description": "Use custom versioning for Vector", - "matchDatasources": [ - "docker" - ], - "matchPackageNames": [ - "docker.io/timberio/vector" - ], + "matchDatasources": ["docker"], + "matchPackageNames": ["docker.io/timberio/vector"], "versioning": "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-(?.*)$" }, { "description": "Use custom versioning for Minio", - "matchDatasources": [ - "docker" - ], + "matchDatasources": ["docker"], "versioning": "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T.*Z(-(?.*))?$", - "matchPackageNames": [ - "quay.io/minio/minio" - ] + "matchPackageNames": ["quay.io/minio/minio"] }, { "description": "Flux Group", "groupName": "Flux", - "matchPackagePatterns": [ - "^flux", - "^ghcr.io/fluxcd/" - ], - "matchDatasources": [ - "docker", - "github-tags" - ], + "matchPackagePatterns": ["^flux", "^ghcr.io/fluxcd/"], + "matchDatasources": ["docker", "github-tags"], "versioning": "semver", "group": { - "commitMessageTopic": "{{{groupName}}} group", + "commitMessageTopic": "{{{groupName}}} group" }, - "separateMinorPatch": true, + "separateMinorPatch": true }, { "description": "Mastodon images", "groupName": "Mastodon", - "matchPackagePatterns": [ - "mastodon", - "^ghcr.io/mastodon/" - ], - "matchDatasources": [ - "docker", - "github-tags" - ], + "matchPackagePatterns": ["mastodon", "^ghcr.io/mastodon/"], + "matchDatasources": ["docker", "github-tags"], "versioning": "semver", "group": { - "commitMessageTopic": "{{{groupName}}} group", + "commitMessageTopic": "{{{groupName}}} group" }, - "separateMinorPatch": true, + "separateMinorPatch": true }, { "description": "1Password Connect images", "groupName": "1password-connect", "matchPackageNames": [ "docker.io/1password/connect-sync", - "docker.io/1password/connect-api", - ], - "matchDatasources": [ - "docker" + "docker.io/1password/connect-api" ], + "matchDatasources": ["docker"], "group": { "commitMessageTopic": "{{{groupName}}} group" }, - "separateMinorPatch": true, + "separateMinorPatch": true }, { "description": "Rook-Ceph image and chart", "groupName": "Rook Ceph", - "matchPackagePatterns": [ - "rook.ceph" - ], - "matchDatasources": [ - "docker", - "helm" - ], + "matchPackagePatterns": ["rook.ceph"], + "matchDatasources": ["docker", "helm"], "group": { "commitMessageTopic": "{{{groupName}}} group" }, - "separateMinorPatch": true, + "separateMinorPatch": true }, { "description": "Cilium image and chart", @@ -155,16 +110,13 @@ "matchPackageNames": [ "quay.io/cilium/cilium", "quay.io/cilium/operator-generic", - "cilium", - ], - "matchDatasources": [ - "helm", - "docker" + "cilium" ], + "matchDatasources": ["helm", "docker"], "group": { "commitMessageTopic": "{{{groupName}}} group" }, - "separateMinorPatch": true, + "separateMinorPatch": true }, { "description": "External Snapshotter charts", @@ -173,9 +125,7 @@ "snapshot-controller", "snapshot-validation-webhook" ], - "matchDatasources": [ - "helm" - ], + "matchDatasources": ["helm"], "group": { "commitMessageTopic": "{{{groupName}}} group" }, @@ -184,42 +134,23 @@ { "description": "Thanos image and chart - versions do not match", "groupName": "Thanos", - "matchPackagePatterns": [ - "quay.io/thanos/thanos", - "thanos" - ], - "matchDatasources": [ - "docker", - "github-releases", - "helm" - ], - "matchUpdateTypes": [ - "minor", - "patch" - ], + "matchPackagePatterns": ["quay.io/thanos/thanos", "thanos"], + "matchDatasources": ["docker", "github-releases", "helm"], + "matchUpdateTypes": ["minor", "patch"], "group": { "commitMessageTopic": "{{{groupName}}} group" - }, + } }, { "description": "Vector image and chart - versions do not match", "groupName": "Vector", - "matchPackagePatterns": [ - "vector" - ], - "matchDatasources": [ - "docker", - "github-releases", - "helm" - ], - "matchUpdateTypes": [ - "minor", - "patch" - ], + "matchPackagePatterns": ["vector"], + "matchDatasources": ["docker", "github-releases", "helm"], + "matchUpdateTypes": ["minor", "patch"], "group": { "commitMessageTopic": "{{{groupName}}} group" - }, - }, + } + } // Version strategies ] }