Skip to content

Commit

Permalink
Merge pull request #1 from tegridy-io/initial-release
Browse files Browse the repository at this point in the history
Initial release
  • Loading branch information
DebakelOrakel authored Feb 5, 2024
2 parents ce07c2d + bd7229b commit 9afcc97
Show file tree
Hide file tree
Showing 8 changed files with 377 additions and 6 deletions.
23 changes: 22 additions & 1 deletion class/defaults.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@
parameters:
renovate_runner:
=_metadata: {}
namespace: syn-renovate-runner

namespace:
annotations: {}
labels: {}
name: syn-renovate-runner

charts:
renovate:
source: https://docs.renovatebot.com/helm-charts
version: 37.172.4

images:
commodore:
registry: ghcr.io
repository: projectsyn/commodore-renovate
tag: v0.15.0
renovate:
registry: ghcr.io
repository: renovatebot/renovate
tag: 37.172.4

renovate: {}
2 changes: 1 addition & 1 deletion component/app.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ local inv = kap.inventory();
local params = inv.parameters.renovate_runner;
local argocd = import 'lib/argocd.libjsonnet';

local app = argocd.App('renovate-runner', params.namespace);
local app = argocd.App('renovate-runner', params.namespace.name);

{
'renovate-runner': app,
Expand Down
103 changes: 103 additions & 0 deletions component/main.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,109 @@ local inv = kap.inventory();
// The hiera parameters for the component
local params = inv.parameters.renovate_runner;


// Namespace

local namespace = kube.Namespace(params.namespace.name) {
metadata+: {
annotations+: params.namespace.annotations,
labels+: params.namespace.labels,
},
};


// Renovate Runners

local config(name) = kube.ConfigMap(name) {
metadata+: {
labels+: {
'app.kubernetes.io/instance': 'renovate-runner',
'app.kubernetes.io/managed-by': 'commodore',
'app.kubernetes.io/name': name,
},
namespace: params.namespace.name,
},
data: {
'config.json': params.renovate[name].config,
},
};

local secret(name) = kube.Secret(name) {
metadata+: {
labels+: {
'app.kubernetes.io/instance': 'renovate-runner',
'app.kubernetes.io/managed-by': 'commodore',
'app.kubernetes.io/name': name,
},
namespace: params.namespace.name,
},
stringData: {
[s]: params.renovate[name].secrets[s]
for s in std.objectFields(params.renovate[name].secrets)
},
};

local cronjob(name) = kube.CronJob(name) {
metadata+: {
labels+: {
'app.kubernetes.io/instance': 'renovate-runner',
'app.kubernetes.io/managed-by': 'commodore',
'app.kubernetes.io/name': name,
},
namespace: params.namespace.name,
},
spec+: {
schedule: params.renovate[name].schedule,
failedJobsHistoryLimit: 3,
successfulJobsHistoryLimit: 1,
jobTemplate+: {
metadata+: {
labels+: {
'app.kubernetes.io/instance': 'renovate-runner',
'app.kubernetes.io/name': name,
},
},
spec+: {
template+: {
metadata+: {
labels+: {
'app.kubernetes.io/instance': 'renovate-runner',
'app.kubernetes.io/name': name,
},
},
spec+: {
containers_:: {
default: {
image: '%(registry)s/%(repository)s:%(tag)s' % params.images[params.renovate[name].type],
imagePullPolicy: 'IfNotPresent',
env: [
{ name: 'RENOVATE_CONFIG_FILE', value: '/usr/src/app/config.json' },
],
envFrom: [ { secretRef: { name: name } } ],
volumeMounts: [
{ name: 'config', mountPath: '/usr/src/app/config.json', subPath: 'config.json' },
],
},
},
volumes_:: {
config: { configMap: { name: name } },
},
},
},
},
},
},
};


// Define outputs below
{
'00_namespace': namespace,
} + {
['10_' + name]: [
config(name),
secret(name),
cronjob(name),
]
for name in std.objectFields(params.renovate)
}
24 changes: 23 additions & 1 deletion docs/modules/ROOT/pages/references/parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,27 @@ The namespace in which to deploy this component.

[source,yaml]
----
namespace: example-namespace
parameters:
renovate_runner:
renovate:
gitlab:
type: renovate <1>
schedule: '0 * * * *' <2>
secrets: <3>
GITLAB_COM_TOKEN: my-token
RENOVATE_TOKEN: my-token
config: | <4>
{
"platform": "gitlab",
"token": "$GITLAB_COM_TOKEN",
"gitAuthor": "Renovate Bot <[email protected]>",
"autodiscover": true,
"autodiscoverFilter": ["!/my-group/syn/"],
"onboarding": true,
"printConfig": true
}
----
<1> Type of renovate run, either 'renovate' or 'commodore'.
<2> Plan when to run renovate.
<3> Any secrets needed for renovate config.
<4> Config to run with renovate.
37 changes: 34 additions & 3 deletions tests/defaults.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
# Overwrite parameters here

# parameters: {...}
parameters:
renovate_runner:
renovate:
gitlab:
type: renovate
schedule: '0 * * * *'
secrets:
GITLAB_COM_TOKEN: my-token
config: |
{
"platform": "gitlab",
"endpoint": "https://gitlab.com/api/v4",
"gitAuthor": "Renovate Bot <[email protected]>",
"autodiscover": true,
"autodiscoverFilter": ["!/my-group/"],
"onboarding": true,
"printConfig": true,
}
gitlab-commodore:
type: commodore
schedule: '0 * * * *'
secrets:
GITLAB_COM_TOKEN: my-token
RENOVATE_TOKEN: my-token
config: |
{
"platform": "gitlab",
"token": "$GITLAB_COM_TOKEN",
"gitAuthor": "Renovate Bot <[email protected]>",
"autodiscover": true,
"autodiscoverFilter": ["!/my-group/syn/"],
"onboarding": true,
"printConfig": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: Namespace
metadata:
annotations: {}
labels:
name: syn-renovate-runner
name: syn-renovate-runner
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
apiVersion: v1
data:
config.json: |
{
"platform": "gitlab",
"token": "$GITLAB_COM_TOKEN",
"gitAuthor": "Renovate Bot <[email protected]>",
"autodiscover": true,
"autodiscoverFilter": ["!/my-group/syn/"],
"onboarding": true,
"printConfig": true
}
kind: ConfigMap
metadata:
annotations: {}
labels:
app.kubernetes.io/instance: renovate-runner
app.kubernetes.io/managed-by: commodore
app.kubernetes.io/name: gitlab-commodore
name: gitlab-commodore
name: gitlab-commodore
namespace: syn-renovate-runner
---
apiVersion: v1
data: {}
kind: Secret
metadata:
annotations: {}
labels:
app.kubernetes.io/instance: renovate-runner
app.kubernetes.io/managed-by: commodore
app.kubernetes.io/name: gitlab-commodore
name: gitlab-commodore
name: gitlab-commodore
namespace: syn-renovate-runner
stringData:
GITLAB_COM_TOKEN: my-token
RENOVATE_TOKEN: my-token
type: Opaque
---
apiVersion: batch/v1
kind: CronJob
metadata:
annotations: {}
labels:
app.kubernetes.io/instance: renovate-runner
app.kubernetes.io/managed-by: commodore
app.kubernetes.io/name: gitlab-commodore
name: gitlab-commodore
name: gitlab-commodore
namespace: syn-renovate-runner
spec:
concurrencyPolicy: Forbid
failedJobsHistoryLimit: 3
jobTemplate:
metadata:
labels:
app.kubernetes.io/instance: renovate-runner
app.kubernetes.io/name: gitlab-commodore
spec:
completions: 1
parallelism: 1
template:
metadata:
labels:
app.kubernetes.io/instance: renovate-runner
app.kubernetes.io/managed-by: commodore
app.kubernetes.io/name: gitlab-commodore
name: gitlab-commodore
spec:
containers:
- env:
- name: RENOVATE_CONFIG_FILE
value: /usr/src/app/config.json
envFrom:
- secretRef:
name: gitlab-commodore
image: ghcr.io/projectsyn/commodore-renovate:v0.15.0
imagePullPolicy: IfNotPresent
name: default
volumeMounts:
- mountPath: /usr/src/app/config.json
name: config
subPath: config.json
imagePullSecrets: []
initContainers: []
restartPolicy: OnFailure
terminationGracePeriodSeconds: 30
volumes:
- configMap:
name: gitlab-commodore
name: config
schedule: 0 * * * *
successfulJobsHistoryLimit: 1
Loading

0 comments on commit 9afcc97

Please sign in to comment.