allineamento
This commit is contained in:
@@ -117,6 +117,11 @@ wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/cri
|
||||
sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
|
||||
rm -f crictl-$VERSION-linux-amd64.tar.gz
|
||||
|
||||
|
||||
|
||||
Taint:kubectl taint nodes edge-node-2 edgenode=true:NoExecute
|
||||
Label: kubectl label node edge-node-2 edgeproject=resilki
|
||||
|
||||
edge-cleanup.sh:
|
||||
|
||||
#!/bin/bash
|
||||
@@ -274,3 +279,17 @@ done
|
||||
|
||||
verifica :
|
||||
mosquitto_sub -h localhost -t sensors/home/livingroom
|
||||
|
||||
#### modifiche per rasperry##############################################
|
||||
|
||||
#cgroups
|
||||
vi /boot/firmware/cmdline.txt
|
||||
Add cgroup parameters:Add the following to the end of the existing line (do not create a new line):
|
||||
textcgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
|
||||
|
||||
#streaming
|
||||
su /etc/kubeedge/config/edgecore.yaml
|
||||
modules:
|
||||
edgeStream:
|
||||
enable: true
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ spec:
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 1
|
||||
@@ -33,7 +33,7 @@ spec:
|
||||
collect_statistics_interval = 10000
|
||||
persistence:
|
||||
storageClassName: csi-rbdfs-sc
|
||||
storage: "5Gi"
|
||||
storage: "2Gi"
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
|
||||
58
add-on/act-runner.yaml
Normal file
58
add-on/act-runner.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: gitea-act-runner-dind
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: gitea-act-runner-dind
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: gitea-act-runner-dind
|
||||
spec:
|
||||
containers:
|
||||
- name: runner
|
||||
image: vegardit/gitea-act-runner:dind-latest
|
||||
securityContext:
|
||||
privileged: true
|
||||
env:
|
||||
- name: GITEA_INSTANCE_URL
|
||||
value: "http://gitea.italiadatacenter.com"
|
||||
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: gitea-runner-secret
|
||||
key: registration-token
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /data
|
||||
- name: docker-storage
|
||||
mountPath: /var/lib/docker
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: gitea-runner-data-pvc
|
||||
- name: docker-storage
|
||||
emptyDir: {}
|
||||
---
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: gitea-runner-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
registration-token: "Yx9aGssgXzcsoX75KOpFY1OliQz5cO9bTR0tuo4Z"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: gitea-runner-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
139
add-on/certm.yaml
Normal file
139
add-on/certm.yaml
Normal file
@@ -0,0 +1,139 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
deployment.kubernetes.io/revision: "1"
|
||||
meta.helm.sh/release-name: cert-manager
|
||||
meta.helm.sh/release-namespace: cert-manager
|
||||
creationTimestamp: "2026-02-08T14:54:09Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: cert-manager
|
||||
app.kubernetes.io/version: v1.19.3
|
||||
helm.sh/chart: cert-manager-v1.19.3
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
resourceVersion: "90308180"
|
||||
uid: addcc5cd-6990-45bc-81c0-8a5b84388744
|
||||
spec:
|
||||
progressDeadlineSeconds: 600
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: "9402"
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: cert-manager
|
||||
app.kubernetes.io/version: v1.19.3
|
||||
helm.sh/chart: cert-manager-v1.19.3
|
||||
spec:
|
||||
initContainers:
|
||||
- name: resolve-gateway
|
||||
image: busybox:1.35
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
GW_IP=$(getent hosts main-gateway-nginx.nginx-gateway.svc.cluster.local 2>/dev/null | awk '{print $1}')
|
||||
if [ -n "$GW_IP" ]; then
|
||||
echo "$GW_IP main-gateway-nginx.nginx-gateway.svc.cluster.local" >> /etc/hosts
|
||||
echo "$GW_IP main-gateway-nginx" >> /etc/hosts
|
||||
echo "Risoluzione aggiunta: $GW_IP main-gateway-nginx"
|
||||
else
|
||||
echo "Avviso: impossibile risolvere main-gateway-nginx.nginx-gateway.svc.cluster.local"
|
||||
fi
|
||||
containers:
|
||||
- args:
|
||||
- --v=2
|
||||
- --config=/var/cert-manager/config/config.yaml
|
||||
- --cluster-resource-namespace=$(POD_NAMESPACE)
|
||||
- --leader-election-namespace=kube-system
|
||||
- --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.19.3
|
||||
- --max-concurrent-challenges=60
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
image: quay.io/jetstack/cert-manager-controller:v1.19.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 8
|
||||
httpGet:
|
||||
path: /livez
|
||||
port: http-healthz
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 15
|
||||
name: cert-manager-controller
|
||||
ports:
|
||||
- containerPort: 9402
|
||||
name: http-metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9403
|
||||
name: http-healthz
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
volumeMounts:
|
||||
- mountPath: /var/cert-manager/config
|
||||
name: config
|
||||
dnsPolicy: ClusterFirst
|
||||
enableServiceLinks: false
|
||||
hostAliases:
|
||||
- ip: "127.0.0.1"
|
||||
hostnames:
|
||||
- "localhost.local"
|
||||
- "example.local"
|
||||
# Aggiungi altri domini locali qui:
|
||||
# - ip: "10.0.0.1"
|
||||
# hostnames:
|
||||
# - "internal.domain"
|
||||
# - "api.domain"
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
serviceAccount: cert-manager
|
||||
serviceAccountName: cert-manager
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- configMap:
|
||||
defaultMode: 420
|
||||
name: cert-manager
|
||||
name: config
|
||||
0
add-on/dbgate.docker
Normal file
0
add-on/dbgate.docker
Normal file
@@ -3,6 +3,20 @@ kind: Namespace
|
||||
metadata:
|
||||
name: dbgate
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: dbgate-data
|
||||
namespace: dbgate
|
||||
data:
|
||||
# Aggiungere qui i file di configurazione iniziali di dbgate (es. connections.yaml)
|
||||
# I file verranno montati in /root/.dbgate nel container.
|
||||
# Esempio:
|
||||
# connections.yaml: |
|
||||
# - id: con1
|
||||
# engine: mysql@dbgate-plugin-mysql
|
||||
# ...
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
@@ -33,6 +47,10 @@ spec:
|
||||
- name: CONNECTIONS
|
||||
value: ""
|
||||
|
||||
volumeMounts:
|
||||
- name: dbgate-data
|
||||
mountPath: /root/.dbgate
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
@@ -41,6 +59,11 @@ spec:
|
||||
limits:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
|
||||
volumes:
|
||||
- name: dbgate-data
|
||||
configMap:
|
||||
name: dbgate-data
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
62
add-on/dns.json
Normal file
62
add-on/dns.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"response": {
|
||||
"zone": {
|
||||
"name": "italiadatacenter.com",
|
||||
"type": "Primary",
|
||||
"lastModified": "2026-06-17T06:07:53.4067414Z",
|
||||
"disabled": false,
|
||||
"soaSerial": 2026061700,
|
||||
"internal": false,
|
||||
"catalog": null,
|
||||
"dnssecStatus": "Unsigned",
|
||||
"hasDnssecPrivateKeys": false,
|
||||
"notifyFailed": false,
|
||||
"notifyFailedFor": []
|
||||
},
|
||||
"records": [
|
||||
{
|
||||
"name": "italiadatacenter.com",
|
||||
"type": "NS",
|
||||
"ttl": 14400,
|
||||
"ttlString": "4h",
|
||||
"disabled": false,
|
||||
"rData": {
|
||||
"nameServer": "pt.idc"
|
||||
},
|
||||
"dnssecStatus": "Unknown",
|
||||
"lastUsedOn": "0001-01-01T00:00:00",
|
||||
"lastModified": "2026-03-27T08:57:05.078Z",
|
||||
"expiryTtl": 0,
|
||||
"expiryTtlString": "0s"
|
||||
},
|
||||
{
|
||||
"name": "italiadatacenter.com",
|
||||
"type": "SOA",
|
||||
"ttl": 900,
|
||||
"ttlString": "15m",
|
||||
"disabled": false,
|
||||
"rData": {
|
||||
"primaryNameServer": "pt.idc",
|
||||
"responsiblePerson": "hostadmin@italiadatacenter.com",
|
||||
"serial": 2026061700,
|
||||
"refresh": 900,
|
||||
"retry": 300,
|
||||
"expire": 604800,
|
||||
"minimum": 900,
|
||||
"refreshString": "15m",
|
||||
"retryString": "5m",
|
||||
"expireString": "1w",
|
||||
"minimumString": "15m",
|
||||
"useSerialDateScheme": true
|
||||
},
|
||||
"dnssecStatus": "Unknown",
|
||||
"lastUsedOn": "2026-06-17T17:37:31.9215889Z",
|
||||
"lastModified": "2026-03-27T08:57:05.078Z",
|
||||
"expiryTtl": 0,
|
||||
"expiryTtlString": "0s"
|
||||
}
|
||||
]
|
||||
},
|
||||
"server": "pt.idc",
|
||||
"status": "ok"
|
||||
}
|
||||
64
add-on/migrazione st2idc applicazioni. sporteams.txt
Normal file
64
add-on/migrazione st2idc applicazioni. sporteams.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
microservices
|
||||
./run_st2idc.sh sporteams-platform/microservices/tornei sporteams/tornei ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/accessi sporteams/accessi ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/sponsor sporteams/sponsor ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/eventi-club sporteams/eventi-club ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/notifiche sporteams/notifiche ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/convocazioni sporteams/convocazioni ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/eventi-wow sporteams/eventi-wow ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/gare sporteams/gare ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/referti sporteams/referti ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/mail-sms sporteams/mail-sms ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/anagrafiche sporteams/anagrafiche ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/allenamenti sporteams/allenamenti ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/strutture sporteams/strutture ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/localita sporteams/localita ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/companies sporteams/companies ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/microservices/moduli sporteams/moduli ./st_transform.env
|
||||
|
||||
progetti
|
||||
./run_st2idc.sh sporteams-platform/progetti/club/club-backend sporteams/club-backend ./st_transform.env
|
||||
./run_st2idc.sh sporteams-platform/progetti/club/club-frontend sporteams/club-frontend ./st_transform.env
|
||||
|
||||
|
||||
|
||||
|
||||
lnd tornei
|
||||
staysafe lite
|
||||
giornalista 4.0
|
||||
geco
|
||||
|
||||
|
||||
commesse
|
||||
enba
|
||||
sestra
|
||||
ncslab
|
||||
app camminatori
|
||||
|
||||
|
||||
microservices esterni
|
||||
prenotazioni-enba
|
||||
accessi-enba
|
||||
prenotazioni-csi
|
||||
accessi-csi
|
||||
prenotazioni-club
|
||||
accessi-club (microservizio giuneco per gli accessi per club)
|
||||
|
||||
frontend:
|
||||
homepage
|
||||
wow-festival
|
||||
match
|
||||
|
||||
gateway:
|
||||
webhooks
|
||||
licenze
|
||||
gateway accessi
|
||||
wow-festival2
|
||||
csi
|
||||
mockapi
|
||||
match
|
||||
|
||||
cross services
|
||||
supertoken
|
||||
mongodb
|
||||
nocodb
|
||||
49
add-on/migrazione st2idc applicazioni.txt
Normal file
49
add-on/migrazione st2idc applicazioni.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
Limec Club
|
||||
|
||||
|
||||
Run clonazioni:
|
||||
|
||||
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/accessi Sporteams/limecaccessi ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/strutture Sporteams/limecstrutture ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/convocazioni Sporteams/limecconvocazioni ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/mail-sms Sporteams/limecmail-sms ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/sponsor Sporteams/limecsponsor ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/piano-carriere Sporteams/limecpiano-carriere ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/limec-licenze Sporteams/limec-licenze ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/limec-backend Sporteams/limec-backend ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/limec-frontend Sporteams/limec-frontend ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/anagrafiche Sporteams/limecanagrafiche ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/cross-services/supertokens Sporteams/limecsupertokens ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/moduli Sporteams/limecmoduli ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/companies Sporteams/limeccompanies ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/eventi-club Sporteams/limeceventi-club ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/gare Sporteams/ ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/notifiche Sporteams/limecnotifiche ./limec_transform.env true
|
||||
./run_st2idc.sh sporteams-platform/progetti/limec/microservices/allenamenti Sporteams/limecallenamenti ./limec_transform.env true
|
||||
|
||||
|
||||
# Modalità completa
|
||||
./clone-and-transform.sh -u https://gitlab.com -t glpat-xxx -r group/proj -d ./repo
|
||||
|
||||
# Modalità transformation (skip GitLab clone)
|
||||
./clone-and-transform.sh -transformation -d ./existing-repo --gitea-repo group/proj -f ./transform.env
|
||||
|
||||
|
||||
limec-backend-dev ["gateway-limec-dev.pigreco66.it"] 30h
|
||||
limec-frontend-dev ["limecdev.pigreco66.it"] 22h
|
||||
limeccompanies-dev ["limeccompaniesdev.pigreco66.it"] 5d2h
|
||||
limeceventi-club-dev ["limeceventiclubdev.pigreco66.it"] 3d17h
|
||||
limecmoduli-dev ["limecmoduliapidev.pigreco66.it"] 4d3h
|
||||
limecsupertokens-dev ["limecsupertokensdev.pigreco66.it"] 5d7
|
||||
|
||||
nest.limecaccessi-dev.svc.cluster.local
|
||||
nest.limecsponsor-dev.svc.cluster.local
|
||||
nest.limecanagrafiche-dev.svc.cluster.local
|
||||
|
||||
- gateway-limec-dev.pigreco66.it
|
||||
- limecdev.pigreco66.it
|
||||
- limeccompaniesdev.pigreco66.it
|
||||
- limeceventiclubdev.pigreco66.it
|
||||
- limecmoduliapidev.pigreco66.it
|
||||
- limecsupertokensdev.pigreco66.it
|
||||
54
add-on/migrazione st2idc database.txt
Normal file
54
add-on/migrazione st2idc database.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
Walk4All
|
||||
acc398
|
||||
accessi
|
||||
accessi_microservizio
|
||||
agim
|
||||
allenamenti
|
||||
anagrafiche
|
||||
anagrafiche_info
|
||||
asdgestold
|
||||
autocertificazioni
|
||||
camminatori
|
||||
club
|
||||
cmdb
|
||||
companies
|
||||
contatti
|
||||
convocazioni
|
||||
csi
|
||||
enba
|
||||
eventi
|
||||
eventi_wow
|
||||
gare
|
||||
geco
|
||||
licenze
|
||||
localita
|
||||
mail_sms
|
||||
match
|
||||
moduli
|
||||
moduli_info
|
||||
nocodb
|
||||
notifiche
|
||||
pgare
|
||||
piano_carriere
|
||||
referti
|
||||
segdigi
|
||||
segdigiold
|
||||
sestra
|
||||
sonar
|
||||
sonarq9
|
||||
sponsor
|
||||
sporteams-app
|
||||
strutture
|
||||
supertokens
|
||||
supertokens_match
|
||||
supertokens_sestra
|
||||
tornei
|
||||
|
||||
|
||||
./backuppg.sh dbdev16 anagrafiche postgresql-16-postgresql-0
|
||||
|
||||
SELECT './backuppg.sh dbdev16 '||datname||' postgresql-16-postgresql-0'
|
||||
FROM pg_database
|
||||
WHERE datistemplate = false
|
||||
AND datname <> 'postgres'
|
||||
ORDER BY datname
|
||||
10
add-on/nfs-service.yaml
Normal file
10
add-on/nfs-service.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nfs-backend
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 500Gi
|
||||
@@ -76,6 +76,26 @@ backup:
|
||||
|
||||
|
||||
--- pgadmin -------------------
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: pgadmin-servers
|
||||
data:
|
||||
servers.json: |
|
||||
{
|
||||
"Servers": {
|
||||
"1": {
|
||||
"Name": "pg-test-rw",
|
||||
"Group": "Servers",
|
||||
"Host": "leodeancluster-rw.leodean-dev.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "leodean",
|
||||
"Username": "leodeanAdmin",
|
||||
"SSLMode": "disable"
|
||||
}
|
||||
}
|
||||
}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
@@ -100,6 +120,17 @@ spec:
|
||||
value: pgadmin@italiadatacenter.com
|
||||
- name: PGADMIN_DEFAULT_PASSWORD
|
||||
value: KAYQE1QA7uwUZ8uI
|
||||
- name: PGADMIN_SERVER_JSON_FILE
|
||||
value: /pgadmin4/servers.json
|
||||
volumeMounts:
|
||||
- name: pgadmin-servers-json
|
||||
mountPath: /pgadmin4/servers.json
|
||||
subPath: servers.json
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: pgadmin-servers-json
|
||||
configMap:
|
||||
name: pgadmin-servers
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
2
add-on/verdaccio.txt
Normal file
2
add-on/verdaccio.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
helm repo add verdaccio https://charts.verdaccio.org
|
||||
helm install npm verdaccio/verdaccio
|
||||
3
kubegreen.txt
Normal file
3
kubegreen.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
kubegreen
|
||||
|
||||
kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml
|
||||
3
kyverno.txt
Normal file
3
kyverno.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
helm repo add kyverno https://kyverno.github.io/kyverno/
|
||||
helm repo update
|
||||
helm install kyverno kyverno/kyverno -n kyverno --create-namespace
|
||||
55
pipeline/_customize.sh
Normal file
55
pipeline/_customize.sh
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# Usage: ./customize.sh dev|qa|prod
|
||||
echo "tetst" $IMAGE_TAG_backend
|
||||
ENV=$1
|
||||
VALUES_DIR="env/$ENV"
|
||||
PROPERTIES_FILE="properties.env"
|
||||
YAML_DIR="kubernetes"
|
||||
|
||||
# Estrai l'hash completo del commit e crea una variabile temporanea per la sostituzione
|
||||
TAG=$(git rev-parse HEAD)
|
||||
TMP_TAG_FILE=$(mktemp)
|
||||
TMP_VALUES_FILE=$(mktemp)
|
||||
echo "TAG=$TAG" > "$TMP_TAG_FILE"
|
||||
cat ./imglist >> "$TMP_TAG_FILE"
|
||||
|
||||
|
||||
if [ ! -d "$VALUES_DIR" ] || ! ls "$VALUES_DIR"/*.env &>/dev/null; then
|
||||
echo "Nessun file .env trovato in $VALUES_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PROPERTIES_FILE" ]; then
|
||||
echo "File $PROPERTIES_FILE non trovato."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Crea una lista key=value temporanea partendo da tutti i file *.env in env/$ENV e aggiunge env dinamico
|
||||
> "$TMP_VALUES_FILE"
|
||||
for env_file in "$VALUES_DIR"/*.env; do
|
||||
cat "$env_file" >> "$TMP_VALUES_FILE"
|
||||
printf '\n' >> "$TMP_VALUES_FILE"
|
||||
done
|
||||
printf '\nenv=%s\n' "$ENV" >> "$TMP_VALUES_FILE"
|
||||
|
||||
# Trova tutti i file .yaml nella directory kubernetes e sottodirectory
|
||||
find "$YAML_DIR" -type f -name "*.yaml" | while read YAML_FILE; do
|
||||
|
||||
while IFS='=' read -r key value; do
|
||||
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
||||
done < "$TMP_VALUES_FILE"
|
||||
|
||||
while IFS='=' read -r key value; do
|
||||
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
||||
done < "$PROPERTIES_FILE"
|
||||
|
||||
# Sostituzione dinamica della chiave TAG
|
||||
while IFS='=' read -r key value; do
|
||||
sed -i "s|<$key>|$value|g" "$YAML_FILE"
|
||||
done < "$TMP_TAG_FILE"
|
||||
|
||||
echo "Sostituzione completata per file $YAML_FILE ambiente $ENV."
|
||||
cat $YAML_FILE
|
||||
done
|
||||
|
||||
rm -f "$TMP_TAG_FILE" "$TMP_VALUES_FILE"
|
||||
@@ -12,6 +12,11 @@ set -euo pipefail
|
||||
|
||||
GATEWAY_NAME="main-gateway"
|
||||
GATEWAY_NS="nginx-gateway"
|
||||
DNS_API_BASE="http://10.20.1.10:5380/api/zones/records/add"
|
||||
DNS_API_TOKEN="fb85a1eaa5216eeefda11c0e500cfeb8cfaa1ddda9eaae0781e656eaf52852a6"
|
||||
DNS_ZONE="italiadatacenter.com"
|
||||
DNS_IP="10.20.1.100"
|
||||
DNS_TTL="3600"
|
||||
|
||||
HOSTNAME_VAL="${1:-}"
|
||||
NAME_VAL="${2:-}"
|
||||
@@ -79,3 +84,14 @@ echo "Listener aggiunto alla risorsa ${GATEWAY_NS}/${GATEWAY_NAME}:"
|
||||
echo " hostname : ${HOSTNAME_VAL}"
|
||||
echo " name : ${NAME_VAL}"
|
||||
echo " secret : ${SECRET_NAME}"
|
||||
|
||||
# Se l'hostname e' del tipo <server>.italiadatacenter.com, registra/aggiorna il record A via API DNS.
|
||||
if [[ "$HOSTNAME_VAL" =~ ^[a-zA-Z0-9-]+\.italiadatacenter\.com$ ]]; then
|
||||
echo "Hostname conforme al dominio ${DNS_ZONE}. Aggiorno il record DNS..."
|
||||
curl --fail --silent --show-error \
|
||||
-H "Authorization: Bearer ${DNS_API_TOKEN}" \
|
||||
-X GET "${DNS_API_BASE}?domain=${HOSTNAME_VAL}&zone=${DNS_ZONE}&type=A&ipAddress=${DNS_IP}&ttl=${DNS_TTL}&overwrite=true"
|
||||
echo "Record DNS creato/aggiornato: ${HOSTNAME_VAL} -> ${DNS_IP}"
|
||||
else
|
||||
echo "Hostname fuori formato <server>.${DNS_ZONE}: salto creazione record DNS"
|
||||
fi
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Usa properties.env nella directory corrente, oppure un path passato come primo argomento.
|
||||
PROPERTIES_FILE="${1:-properties.env}"
|
||||
# Uso: ./addlistener.sh [env] [properties_file]
|
||||
# env e' ignorato: endpoint viene sempre letto dalla chiave "endpoint".
|
||||
ENVIRONMENT="${1:-dev}"
|
||||
PROPERTIES_FILE="${2:-env/${ENVIRONMENT}/values.env}"
|
||||
|
||||
if [[ -n "$ENVIRONMENT" ]]; then
|
||||
echo "Ambiente richiesto: $ENVIRONMENT (chiave usata: endpoint)"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$PROPERTIES_FILE" ]]; then
|
||||
echo "Warning: file non trovato: $PROPERTIES_FILE" >&2
|
||||
|
||||
@@ -7,9 +7,26 @@ REPO_NAME=$1
|
||||
COMMIT_SHA=$(git rev-parse HEAD)
|
||||
REGISTRY_URL=$2
|
||||
|
||||
# Esegui build_src.sh se presente prima della build container
|
||||
if [ -f "./build_src.sh" ]; then
|
||||
echo "build_src.sh trovato, lo rendo eseguibile e lo eseguo"
|
||||
chmod +x ./build_src.sh
|
||||
./build_src.sh
|
||||
fi
|
||||
|
||||
# Controlla se la directory containers esiste
|
||||
if [ ! -d "containers" ]; then
|
||||
echo "⚠️ Directory 'containers' non trovata, niente da fare"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for dir in containers/*/; do
|
||||
CONTAINER_NAME=$(basename "$dir")
|
||||
cp -R src/${CONTAINER_NAME}/. containers/${CONTAINER_NAME}/.
|
||||
if [ -d "src/${CONTAINER_NAME}" ]; then
|
||||
cp -R "src/${CONTAINER_NAME}/." "containers/${CONTAINER_NAME}/."
|
||||
else
|
||||
echo "Directory src/${CONTAINER_NAME} non trovata, skip copia sorgenti"
|
||||
fi
|
||||
ls -la $dir
|
||||
|
||||
# Cerca sia dockerfile che Dockerfile
|
||||
@@ -41,17 +58,23 @@ for dir in containers/*/; do
|
||||
|
||||
if [ -f "$DOCKERFILE" ]; then
|
||||
if [ -n "$BUILD_PLATFORM" ]; then
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
docker buildx create --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
docker buildx build --platform "$BUILD_PLATFORM" -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" -f "$DOCKERFILE" "$dir" --push
|
||||
else
|
||||
docker build -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" -f "$DOCKERFILE" "$dir"
|
||||
docker push "$IMAGE_TAG"
|
||||
docker push "$IMAGE_TAG_LATEST"
|
||||
docker buildx build \
|
||||
--cache-from=type=registry,ref="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:cache" \
|
||||
--cache-to=type=registry,ref="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:cache",mode=max \
|
||||
-t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" \
|
||||
-f "$DOCKERFILE" "$dir" --push
|
||||
fi
|
||||
echo "Build e push completate: $IMAGE_TAG"
|
||||
|
||||
# Cleanup immagini locali dopo il push (buildx --push potrebbe non averle in locale)
|
||||
docker image rm -f "$IMAGE_TAG" "$IMAGE_TAG_LATEST" >/dev/null 2>&1 || true
|
||||
echo "Cleanup immagini locali completato: $IMAGE_TAG, $IMAGE_TAG_LATEST"
|
||||
|
||||
# Cleanup globale ad ogni ciclo: immagini inutilizzate e cache builder
|
||||
docker image prune -af
|
||||
docker builder prune -af
|
||||
else
|
||||
echo "Dockerfile non trovato in $dir"
|
||||
fi
|
||||
|
||||
41
pipeline/build_imagelist.sh
Normal file
41
pipeline/build_imagelist.sh
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
echo "progetto" $1
|
||||
REPO_NAME=$1
|
||||
COMMIT_SHA=$(git rev-parse HEAD)
|
||||
REGISTRY_URL=$2
|
||||
|
||||
# Controlla se la directory containers esiste
|
||||
if [ ! -d "containers" ]; then
|
||||
echo "⚠️ Directory 'containers' non trovata, niente da fare"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for dir in containers/*/; do
|
||||
CONTAINER_NAME=$(basename "$dir")
|
||||
if [ -d "src/${CONTAINER_NAME}" ]; then
|
||||
cp -R "src/${CONTAINER_NAME}/." "containers/${CONTAINER_NAME}/."
|
||||
else
|
||||
echo "Directory src/${CONTAINER_NAME} non trovata, skip copia sorgenti"
|
||||
fi
|
||||
ls -la $dir
|
||||
|
||||
# Cerca sia dockerfile che Dockerfile
|
||||
if [ -f "$dir/dockerfile" ]; then
|
||||
DOCKERFILE="$dir/dockerfile"
|
||||
elif [ -f "$dir/Dockerfile" ]; then
|
||||
DOCKERFILE="$dir/Dockerfile"
|
||||
else
|
||||
echo "Dockerfile non trovato in $dir"
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
|
||||
IMAGE_TAG="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:${COMMIT_SHA}"
|
||||
IMAGE_TAG_LATEST="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:latest"
|
||||
echo "IMAGE_TAG_${CONTAINER_NAME}=$IMAGE_TAG" >> ./imglist
|
||||
|
||||
done
|
||||
@@ -3,6 +3,8 @@ set -euo pipefail
|
||||
|
||||
# Esegue kubectl apply per ogni sottodirectory di kubernetes separatamente
|
||||
|
||||
ENVIRONMENT="${1:-dev}"
|
||||
|
||||
YAML_DIR="kubernetes"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -57,4 +59,4 @@ done
|
||||
echo "Deploy completato di tutte le directory YAML."
|
||||
|
||||
echo "Eseguo check su endpoint da pubblicare"
|
||||
/root/work/pipeline/addlistener.sh
|
||||
/root/work/pipeline/addlistener.sh "$ENVIRONMENT"
|
||||
|
||||
@@ -18,10 +18,10 @@ Kyverno - installazione
|
||||
Kyverno - predisposizione policy per taint autmatica edgenode
|
||||
-->kubeedge - label/taint per progetto
|
||||
git - gestione release
|
||||
kubeedge - possibilità aggiornamento OS edge node
|
||||
|
||||
|
||||
git tagging
|
||||
curl -X 'POST' \
|
||||
git tagging
|
||||
curl -X 'POST' \
|
||||
'https://git.italiadatacenter.com/api/v1/repos/STS_Lab/idcidp/tags?access_token=65fc5f07365bd3f89c5b9ddca3d2d2e7b3777a88' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
@@ -29,4 +29,21 @@ curl -X 'POST' \
|
||||
"message": "string",
|
||||
"tag_name": "v1.0",
|
||||
"target": "ab3e33a214"
|
||||
}'
|
||||
}'
|
||||
|
||||
step in pipeline di tagging
|
||||
|
||||
Sporteams Ingestion
|
||||
runner in container
|
||||
bottone on/off
|
||||
sonarqube
|
||||
ambienti qa/dev
|
||||
mysql
|
||||
bricks php,apache,mysql
|
||||
bricks blank
|
||||
bricks storage, nfs
|
||||
services:
|
||||
link pgadmin con istanza in linea
|
||||
Kagent -->draft proposta
|
||||
Knative
|
||||
|
||||
15
utils.txt
15
utils.txt
@@ -46,9 +46,6 @@ EOF
|
||||
kubectl -n demo-apps exec -it swiss-army-knife -- sh
|
||||
|
||||
|
||||
# Source - https://stackoverflow.com/a/59558862
|
||||
# Posted by P Ekambaram, modified by community. See post 'Timeline' for change history
|
||||
# Retrieved 2026-02-28, License - CC BY-SA 4.0
|
||||
|
||||
gateway-nginx-nodeport.nginx-gateway.svc.cluster.local:30864
|
||||
|
||||
@@ -56,4 +53,14 @@ kubectl exec -n nginx-gateway main-gateway-nginx-6968db7f9f-6v4qg -- ss -tulnp
|
||||
|
||||
kubectl edit gateway main-gateway -n nginx-gateway
|
||||
|
||||
glpat-E67BjdXoKvSEgHG31XZW0GM6MQpvOjEKdTozNzF5OQ8.01.171191k74
|
||||
Pulizia disco:
|
||||
docker system prune -af
|
||||
docker builder prune -af
|
||||
|
||||
|
||||
db postgresql-------------------------------------
|
||||
|
||||
kubectl get clusters.postgresql.cnpg.io -n stsharedservices-dev
|
||||
|
||||
kubectl cnpg hibernate on stpgclusterdev -n stsharedservices-dev
|
||||
kubectl cnpg hibernate off stpgclusterdev -n stsharedservices-dev
|
||||
|
||||
Reference in New Issue
Block a user