phpipam 추가

This commit is contained in:
ByeonJungHun
2024-01-04 12:17:23 +09:00
parent 1d01533b55
commit 7659dc51cb
10 changed files with 221 additions and 0 deletions

View File

@@ -22,5 +22,9 @@
## Docker
## Yaml
#### SaaS Management Cluster에 설치된 서비스
| Service | Image Version | Content | Official Docs |
| --- | --- | --- | --- |
| phpIPAM | v1.5.3 | [phpIPAM](./yaml/phpipam/) | [phpipam.net/documents/all-documents](https://phpipam.net/documents/all-documents/) |
## Scripts

13
yaml/phpipam/ca-pvc.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: phpipam-ca
name: phpipam-ca
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
status: {}

16
yaml/phpipam/cron-cm.yaml Normal file
View File

@@ -0,0 +1,16 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: phpipam-crontab-setting
namespace: phpipam
data:
root: |
# do daily/weekly/monthly maintenance
# min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
*/3 * * * * /usr/bin/php /phpipam/functions/scripts/discoveryCheck.php
*/3 * * * * /usr/bin/php /phpipam/functions/scripts/pingCheck.php

48
yaml/phpipam/cron.yaml Normal file
View File

@@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpipam-cron
spec:
replicas: 1
selector:
matchLabels:
app: phpipam-cron
strategy:
type: Recreate
template:
metadata:
labels:
app: phpipam-cron
spec:
containers:
- env:
- name: IPAM_DATABASE_HOST
value: phpipam-db
- name: IPAM_DATABASE_USER
value: root
- name: IPAM_DATABASE_PASS
value: Saasadmin1234@
- name: IPAM_DATABASE_NAME
value: phpipam
- name: SCAN_INTERVAL
value: 3m
- name: TZ
value: Asia/Seoul
image: phpipam/phpipam-cron:latest
name: phpipam-cron
resources: {}
volumeMounts:
- mountPath: /usr/local/share/ca-certificates
name: phpipam-ca
- name: phpipam-crontab-setting
mountPath: /etc/crontabs/root
subPath: root
restartPolicy: Always
volumes:
- name: phpipam-ca
persistentVolumeClaim:
claimName: phpipam-ca
- name: phpipam-crontab-setting
configMap:
name: phpipam-crontab-setting
status: {}

11
yaml/phpipam/db-pvc.yaml Normal file
View File

@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: phpipam-db
namespace: phpipam
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: phpipam-db
spec:
ports:
- name: "port"
port: 3306
targetPort: 3306
selector:
app: phpipamdb
status:
loadBalancer: {}

35
yaml/phpipam/db.yaml Normal file
View File

@@ -0,0 +1,35 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: phpipamdb
name: phpipamdb
namespace: phpipam
spec:
replicas: 1
selector:
matchLabels:
app: phpipamdb
template:
metadata:
labels:
app: phpipamdb
spec:
containers:
- env:
- name: MYSQL_ROOT_PASSWORD
value: "Saasadmin1234@"
image: mysql:5.7.43
name: phpipam-mariadb
ports:
- containerPort: 3306
resources: {}
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/lib/mysql
name: phpipam-db
volumes:
- name: phpipam-db
persistentVolumeClaim:
claimName: phpipam-db

View File

@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
app: phpipam-logo
name: phpipam-logo
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
status: {}

View File

@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: phpipam-web
name: phpipam-web
spec:
type: NodePort
ports:
- name: "80"
port: 80
targetPort: 80
nodePort: 31812
selector:
app: phpipam-web
status:
loadBalancer: {}

50
yaml/phpipam/web.yaml Normal file
View File

@@ -0,0 +1,50 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpipam-web
spec:
replicas: 1
selector:
matchLabels:
app: phpipam-web
strategy:
type: Recreate
template:
metadata:
labels:
app: phpipam-web
spec:
containers:
- env:
- name: IPAM_DATABASE_HOST
value: "phpipam-db"
- name: IPAM_DATABASE_USER
value: "root"
- name: IPAM_DATABASE_PASS
value: "Saasadmin1234@"
- name: IPAM_DATABASE_WEBHOST
value: "%"
- name: IPAM_DATABASE_NAME
value: "phpipam"
- name: TZ
value: "Asia/Seoul"
image: phpipam/phpipam-www:latest
name: phpipam-web
ports:
- containerPort: 80
resources: {}
volumeMounts:
- mountPath: /phpipam/css/images/logo
name: phpipam-logo
- mountPath: /usr/local/share/ca-certificates
name: phpipam-ca
readOnly: true
restartPolicy: Always
volumes:
- name: phpipam-logo
persistentVolumeClaim:
claimName: phpipam-logo
- name: phpipam-ca
persistentVolumeClaim:
claimName: phpipam-ca
status: {}