Skip to content

Commit 25a59fa

Browse files
kartik-579dheeth
andauthored
updated clair to V4 (devtron-labs#1438)
* updated installations script for clair * wip * wip * wip * updated clair deployment * updated postgres chart version - v9.6.0 * wip * Added a new job for database creation (devtron-labs#1510) * Update postgresql.yaml * Update migrator.yaml * Update postgresql.yaml * Changed Labels back to 8.6.4 * changes for bitnami quay * updated image tag * updated LTAG * updated migrator image * updated installation script * updated installation script * updated script * added comment Co-authored-by: Pawan Kumar <39653409+dheeth@users.noreply.github.com>
1 parent 7a75851 commit 25a59fa

5 files changed

Lines changed: 90 additions & 20 deletions

File tree

manifests/installation-script

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ if !defaultCacheBucket {
7474
argocd_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/argocd.yaml";
7575
argocdResource_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/argocd-resource.json";
7676
clair_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/clair.yaml";
77-
clairConfig_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/clair-config.yaml";
77+
clairConfig_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/clairv4-config.yaml";
7878
dashboard_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/dashboard.yaml";
7979
gitSensor_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/gitsensor.yaml";
8080
guard_raw = REPO_RAW_URL + LTAG + "/manifests/yamls/guard.yaml";
@@ -356,13 +356,9 @@ externalSecret = kubectl apply -n devtroncd externalSecret -u externalSecretOver
356356
log("created external secret");
357357

358358
#postgresql
359-
# if postgres already installed skip installation
360-
hasPostgresql = kubectl get sts postgresql-postgresql -n devtroncd;
361-
if !hasPostgresql {
362-
kubeYamlEdit(postgresql, "data.postgresql-password", postgresqlPassword, `/Secret//postgresql-postgresql`);
363-
postgresql = kubectl apply -n devtroncd postgresql -u postgresqlOverride;
364-
log("created postgresql");
365-
}
359+
kubeYamlEdit(postgresql, "data.postgresql-password", postgresqlPassword, `/Secret//postgresql-postgresql`);
360+
postgresql = kubectl apply -n devtroncd postgresql -u postgresqlOverride;
361+
log("created postgresql");
366362
#argocd
367363
hasArgocd = kubectl get deployment argocd-server -n devtroncd;
368364
hasargocdSecret = kubectl get secret argocd-secret -n devtroncd;
@@ -443,7 +439,7 @@ kubeYamlEdit(lens, "data.PG_PASSWORD", postgresqlPassword, `/Secret//lens-secret
443439

444440
#migrator
445441
#delete migrator job
446-
migDelete = kubectl delete -n devtroncd job postgresql-migrate-devtron postgresql-migrate-casbin postgresql-migrate-gitsensor postgresql-migrate-lens;
442+
migDelete = kubectl delete -n devtroncd job postgresql-migrate-devtron postgresql-migrate-casbin postgresql-migrate-gitsensor postgresql-migrate-lens postgresql-miscellaneous;
447443
if !migDelete {
448444
log("migration job deletion failed");
449445
}
@@ -782,8 +778,11 @@ workflow = kubectl apply -n argo workflow -u workflowOverride;
782778
log("executed workflow setup");
783779
postgresPlainPwd = base64DecoderPrefix + `echo "` + postgresqlPassword + `" | tr -d ':\n' ` + base64DecoderSuffix;
784780
postgresPlainPwd = shellScript postgresPlainPwd;
785-
clairPosrgresUrl = "postgres://postgres:"+ postgresPlainPwd +"@postgresql-postgresql.devtroncd:5432/clair?sslmode=disable";
786-
yamlEdit(clairConfig, "clair.database.options.source", clairPosrgresUrl, 0);
781+
clairPostgresUrl = "host=postgresql-postgresql.devtroncd port=5432 dbname=clairv4 user=postgres password="+ postgresPlainPwd +" sslmode=disable"
782+
log(clairPostgresUrl);
783+
yamlEdit(clairConfig, "indexer.connstring", clairPostgresUrl, 0);
784+
yamlEdit(clairConfig, "matcher.connstring", clairPostgresUrl, 0);
785+
yamlEdit(clairConfig, "notifier.connstring", clairPostgresUrl, 0);
787786
clairEncodedConfig = base64EncoderPrefix + `echo "` + clairConfig + `"` + base64EncoderSuffix;
788787
clairEncodedConfig = shellScript clairEncodedConfig;
789788
kubeYamlEdit(clair, `data.config\.yaml`, clairEncodedConfig, `/Secret//clair`);

manifests/yamls/clair.yaml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ metadata:
1010
type: Opaque
1111
data:
1212
config.yaml: |-
13-
Y2xhaXI6CiAgZGF0YWJhc2U6CiAgICAjIERhdGFiYXNlIGRyaXZlci4KICAgIHR5cGU6IHBnc3FsCiAgICBvcHRpb25zOgogICAgICAjIFBvc3RncmVTUUwgQ29ubmVjdGlvbiBzdHJpbmcuCiAgICAgICMgaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3N0YXRpYy9saWJwcS1jb25uZWN0Lmh0bWwjTElCUFEtQ09OTlNUUklORwogICAgICBzb3VyY2U6ICJwb3N0Z3JlczovL2NsYWlyOmNsYWlyQGNsYWlyLXBnLXBvc3RncmVzcWw6NTQzMi9jbGFpcj9zc2xtb2RlPWRpc2FibGUiCiAgICAgIAoKICAgICAgIyBOdW1iZXIgb2YgZWxlbWVudHMga2VwdCBpbiB0aGUgY2FjaGUuCiAgICAgICMgVmFsdWVzIHVubGlrZWx5IHRvIGNoYW5nZSAoZS5nLiBuYW1lc3BhY2VzKSBhcmUgY2FjaGVkIGluIG9yZGVyIHRvIHNhdmUgcHJldmVudCBuZWVkbGVzcyByb3VuZHRyaXBzIHRvIHRoZSBkYXRhYmFzZS4KICAgICAgY2FjaGVzaXplOiAxNjM4NAoKICAgICAgIyAzMi1iaXQgVVJMLXNhZmUgYmFzZTY0IGtleSB1c2VkIHRvIGVuY3J5cHQgcGFnaW5hdGlvbiB0b2tlbnMuCiAgICAgICMgSWYgb25lIGlzIG5vdCBwcm92aWRlZCwgaXQgd2lsbCBiZSBnZW5lcmF0ZWQuCiAgICAgICMgTXVsdGlwbGUgY2xhaXIgaW5zdGFuY2VzIGluIHRoZSBzYW1lIGNsdXN0ZXIgbmVlZCB0aGUgc2FtZSB2YWx1ZS4KICAgICAgcGFnaW5hdGlvbmtleTogIlh4b1B0Q1V6clV2NEpWNWRTK3lRK01kVzd5TEVKblJNd2lnVlkvYnBndFE9IgogIGFwaToKICAgICMgdjMgZ3JwYy9SRVNUZnVsIEFQSSBzZXJ2ZXIgYWRkcmVzcy4KICAgIGFkZHI6ICIwLjAuMC4wOjYwNjAiCgogICAgIyBIZWFsdGggc2VydmVyIGFkZHJlc3MuCiAgICAjIFRoaXMgaXMgYW4gdW5lbmNyeXB0ZWQgZW5kcG9pbnQgdXNlZnVsIGZvciBsb2FkIGJhbGFuY2VycyB0byBjaGVjayB0byBoZWFsdGhpbmVzcyBvZiB0aGUgY2xhaXIgc2VydmVyLgogICAgaGVhbHRoYWRkcjogIjAuMC4wLjA6NjA2MSIKCiAgICAjIERlYWRsaW5lIGJlZm9yZSBhbiBBUEkgcmVxdWVzdCB3aWxsIHJlc3BvbmQgd2l0aCBhIDUwMy4KICAgIHRpbWVvdXQ6IDkwMHMKCiAgICAjIE9wdGlvbmFsIFBLSSBjb25maWd1cmF0aW9uLgogICAgIyBJZiB5b3Ugd2FudCB0byBlYXNpbHkgZ2VuZXJhdGUgY2xpZW50IGNlcnRpZmljYXRlcyBhbmQgQ0FzLCB0cnkgdGhlIGZvbGxvd2luZyBwcm9qZWN0czoKICAgICMgaHR0cHM6Ly9naXRodWIuY29tL2NvcmVvcy9ldGNkLWNhCiAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGZsYXJlL2Nmc3NsCiAgICBzZXJ2ZXJuYW1lOgogICAgY2FmaWxlOgogICAga2V5ZmlsZToKICAgIGNlcnRmaWxlOgoKICB3b3JrZXI6CiAgICBuYW1lc3BhY2VfZGV0ZWN0b3JzOgogICAgLSBvcy1yZWxlYXNlCiAgICAtIGxzYi1yZWxlYXNlCiAgICAtIGFwdC1zb3VyY2VzCiAgICAtIGFscGluZS1yZWxlYXNlCiAgICAtIHJlZGhhdC1yZWxlYXNlCgogICAgZmVhdHVyZV9saXN0ZXJzOgogICAgLSBhcGsKICAgIC0gZHBrZwogICAgLSBycG0KCiAgdXBkYXRlcjoKICAgICMgRnJlcXVlbmN5IHRoZSBkYXRhYmFzZSB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB2dWxuZXJhYmlsaXRpZXMgZnJvbSB0aGUgZGVmYXVsdCBkYXRhIHNvdXJjZXMuCiAgICAjIFRoZSB2YWx1ZSAwIGRpc2FibGVzIHRoZSB1cGRhdGVyIGVudGlyZWx5LgogICAgaW50ZXJ2YWw6ICIyaCIKICAgIGVuYWJsZWR1cGRhdGVyczoKICAgIC0gZGViaWFuCiAgICAtIHVidW50dQogICAgLSByZWRoYXQKICAgIC0gb3JhY2xlCiAgICAtIGFscGluZQogICAgLSByZWRoYXQKCiAgbm90aWZpZXI6CiAgICAjIE51bWJlciBvZiBhdHRlbXB0cyBiZWZvcmUgdGhlIG5vdGlmaWNhdGlvbiBpcyBtYXJrZWQgYXMgZmFpbGVkIHRvIGJlIHNlbnQuCiAgICBhdHRlbXB0czogMwoKICAgICMgRHVyYXRpb24gYmVmb3JlIGEgZmFpbGVkIG5vdGlmaWNhdGlvbiBpcyByZXRyaWVkLgogICAgcmVub3RpZnlpbnRlcnZhbDogMmgKCiAgICBodHRwOgogICAgICAjIE9wdGlvbmFsIGVuZHBvaW50IHRoYXQgd2lsbCByZWNlaXZlIG5vdGlmaWNhdGlvbnMgdmlhIFBPU1QgcmVxdWVzdHMuCiAgICAgIGVuZHBvaW50OiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9ub3RpZnkvbWUiCgogICAgICAjIE9wdGlvbmFsIFBLSSBjb25maWd1cmF0aW9uLgogICAgICAjIElmIHlvdSB3YW50IHRvIGVhc2lseSBnZW5lcmF0ZSBjbGllbnQgY2VydGlmaWNhdGVzIGFuZCBDQXMsIHRyeSB0aGUgZm9sbG93aW5nIHByb2plY3RzOgogICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGZsYXJlL2Nmc3NsCiAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL2NvcmVvcy9ldGNkLWNhCiAgICAgIHNlcnZlcm5hbWU6CiAgICAgIGNhZmlsZToKICAgICAga2V5ZmlsZToKICAgICAgY2VydGZpbGU6CgogICAgICAjIE9wdGlvbmFsIEhUVFAgUHJveHk6IG11c3QgYmUgYSB2YWxpZCBVUkwgKGluY2x1ZGluZyB0aGUgc2NoZW1lKS4KICAgICAgcHJveHk6Cg==
13+
aW50cm9zcGVjdGlvbl9hZGRyOiA6NjA2MQpodHRwX2xpc3Rlbl9hZGRyOiA6NjA2MApsb2dfbGV2ZWw6IGRlYnVnCmluZGV4ZXI6CiAgY29ubnN0cmluZzogImhvc3Q9Y2xhaXItcGctcG9zdGdyZXNxbCBwb3J0PTU0MzIgZGJuYW1lPWNsYWlydjQgdXNlcj1jbGFpciBwYXNzd29yZD1jbGFpciBzc2xtb2RlPWRpc2FibGUiCiAgc2NhbmxvY2tfcmV0cnk6IDEwCiAgbGF5ZXJfc2Nhbl9jb25jdXJyZW5jeTogNQogIG1pZ3JhdGlvbnM6IHRydWUKbWF0Y2hlcjoKICBpbmRleGVyX2FkZHI6ICI6NjA2MCIKICBjb25uc3RyaW5nOiAiaG9zdD1jbGFpci1wZy1wb3N0Z3Jlc3FsIHBvcnQ9NTQzMiBkYm5hbWU9Y2xhaXJ2NCB1c2VyPWNsYWlyIHBhc3N3b3JkPWNsYWlyIHNzbG1vZGU9ZGlzYWJsZSIKICBtYXhfY29ubl9wb29sOiAxMDAKICBydW46ICIiCiAgbWlncmF0aW9uczogdHJ1ZQogIHVwZGF0ZXJfc2V0czoKICAgIC0gImFscGluZSIKICAgIC0gImF3cyIKICAgIC0gImRlYmlhbiIKICAgIC0gIm9yYWNsZSIKICAgIC0gInBob3RvbiIKICAgIC0gInB5dXBpbyIKICAgIC0gInJoZWwiCiAgICAtICJzdXNlIgogICAgLSAidWJ1bnR1Igpub3RpZmllcjoKICBjb25uc3RyaW5nOiAiaG9zdD1jbGFpci1wZy1wb3N0Z3Jlc3FsIHBvcnQ9NTQzMiBkYm5hbWU9Y2xhaXJ2NCB1c2VyPWNsYWlyIHBhc3N3b3JkPWNsYWlyIHNzbG1vZGU9ZGlzYWJsZSIKICBkZWxpdmVyeV9pbnRlcnZhbDogMW0KICBwb2xsX2ludGVydmFsOiA1bQogIG1pZ3JhdGlvbnM6IHRydWU=
1414
---
1515
# Source: clair/templates/service.yaml
1616
apiVersion: v1
@@ -65,11 +65,14 @@ spec:
6565
"until pg_isready -h postgresql-postgresql.devtroncd -p 5432;
6666
do echo waiting for database; sleep 1; done;"]
6767
containers:
68-
- name: clair
69-
image: "quay.io/coreos/clair:v2.1.7"
68+
- env:
69+
- name: CLAIR_CONF
70+
value: /etc/clair/config.yaml
71+
- name: CLAIR_MODE
72+
value: combo
73+
name: clair
74+
image: "quay.io/coreos/clair:v4.3.6"
7075
imagePullPolicy: IfNotPresent
71-
args:
72-
- "-log-level=info"
7376
ports:
7477
- name: "clair-api"
7578
containerPort: 6060
@@ -79,11 +82,11 @@ spec:
7982
protocol: TCP
8083
livenessProbe:
8184
httpGet:
82-
path: /health
85+
path: /healthz
8386
port: 6061
8487
readinessProbe:
8588
httpGet:
86-
path: /health
89+
path: /healthz
8790
port: 6061
8891
volumeMounts:
8992
- name: "clair-config"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
introspection_addr: :6061
2+
http_listen_addr: :6060
3+
log_level: debug
4+
indexer:
5+
connstring: "host=clair-pg-postgresql port=5432 dbname=clairv4 user=clair password=clair sslmode=disable"
6+
scanlock_retry: 10
7+
layer_scan_concurrency: 5
8+
migrations: true
9+
matcher:
10+
indexer_addr: ":6060"
11+
connstring: "host=clair-pg-postgresql port=5432 dbname=clairv4 user=clair password=clair sslmode=disable"
12+
max_conn_pool: 100
13+
run: ""
14+
migrations: true
15+
updater_sets:
16+
- "alpine"
17+
- "aws"
18+
- "debian"
19+
- "oracle"
20+
- "photon"
21+
- "pyupio"
22+
- "rhel"
23+
- "suse"
24+
- "ubuntu"
25+
notifier:
26+
connstring: "host=clair-pg-postgresql port=5432 dbname=clairv4 user=clair password=clair sslmode=disable"
27+
delivery_interval: 1m
28+
poll_interval: 5m
29+
migrations: true

manifests/yamls/migrator.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,43 @@ spec:
172172
activeDeadlineSeconds: 1500
173173
---
174174
apiVersion: batch/v1
175+
#this job is added for creating new database(clairv4).
176+
#This database is needed for clair upgrade (v2 to v4), since old database does not support migration for new clair.
177+
#Without this job, database can be created for new users, but not for existing users.
178+
kind: Job
179+
metadata:
180+
name: postgresql-miscellaneous
181+
spec:
182+
ttlSecondsAfterFinished: 1000
183+
template:
184+
spec:
185+
containers:
186+
- name: postgresql-miscellaneous
187+
image: quay.io/devtron/postgres:11.9.0-debian-10-r26
188+
env:
189+
- name: PGPASSWORD
190+
valueFrom:
191+
secretKeyRef:
192+
name: postgresql-postgresql
193+
key: postgresql-password
194+
- name: PGHOST
195+
value: postgresql-postgresql
196+
command:
197+
- /bin/sh
198+
- -c
199+
- psql -Upostgres -f /docker-entrypoint-initdb.d/db_create.sql
200+
volumeMounts:
201+
- name: custom-init-scripts
202+
mountPath: /docker-entrypoint-initdb.d/
203+
volumes:
204+
- name: custom-init-scripts
205+
configMap:
206+
name: postgresql-postgresql-init-scripts
207+
restartPolicy: OnFailure
208+
backoffLimit: 20
209+
activeDeadlineSeconds: 1500
210+
---
211+
apiVersion: batch/v1
175212
kind: CronJob
176213
metadata:
177214
name: app-sync-cronjob

manifests/yamls/postgresql.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ data:
2323
create database casbin;
2424
create database git_sensor;
2525
create database lens;
26-
create database clair;
26+
create database clairv4;
2727
---
2828
# Source: postgresql/templates/metrics-svc.yaml
2929
apiVersion: v1
@@ -147,7 +147,7 @@ spec:
147147

148148
containers:
149149
- name: postgresql-postgresql
150-
image: "quay.io/devtron/postgres:11.3.0-debian-9-r28"
150+
image: quay.io/devtron/postgres:11.9.0-debian-10-r26
151151
imagePullPolicy: "IfNotPresent"
152152
securityContext:
153153
runAsUser: 1001
@@ -171,6 +171,8 @@ spec:
171171
value: "orchestrator"
172172
- name: POSTGRESQL_ENABLE_LDAP
173173
value: "no"
174+
- name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES
175+
value: pgaudit, uuid-ossp
174176
ports:
175177
- name: tcp-postgresql
176178
containerPort: 5432

0 commit comments

Comments
 (0)