$ kubectl create ns phpipam-system
- pvc-phpipam.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: phpipam
name: phpipam
namespace: phpipam-system
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: nfs-client
volumeMode: Filesystem
- mariadb.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: phpipam-db
name: phpipam-db
namespace: phpipam-system
spec:
selector:
matchLabels:
app: phpipam-db
template:
metadata:
labels:
app: phpipam-db
spec:
containers:
- env:
- name: MYSQL_ROOT_PASSWORD
value: QGJ0anQoKCkpMjI=
image: mariadb:latest
imagePullPolicy: IfNotPresent
name: phpipam-db
ports:
- containerPort: 3306
name: mysql
protocol: TCP
resources:
requests:
memory: 256Mi
cpu: 0.2
limits:
memory: 512Mi
cpu: 0.5
volumeMounts:
- mountPath: /var/lib/mysql
name: phpipam
restartPolicy: Always
securityContext:
fsGroup: 1001
runAsUser: 1001
volumes:
- name: phpipam
persistentVolumeClaim:
claimName: phpipam
- service-mariadb.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: phpipam-db
name: phpipam-db
namespace: phpipam-system
spec:
ipFamilies:
- IPv4
- IPv6
ipFamilyPolicy: PreferDualStack
ports:
- name: mysql
port: 3306
protocol: TCP
targetPort: 3306
selector:
app: phpipam-db
type: ClusterIP
- phpipam.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
generation: 1
labels:
app: phpipam-web
name: phpipam-web
namespace: phpipam-system
spec:
selector:
matchLabels:
app: phpipam-web
template:
metadata:
labels:
app: phpipam-web
spec:
containers:
- env:
- name: TZ
value: America/Sao_Paulo
- name: IPAM_DATABASE_HOST
value: phpipam-db
- name: IPAM_DATABASE_WEBHOST
value: '%'
- name: IPAM_DATABASE_PASS
value: QGJ0anQoKCkpMjI=
image: phpipam/phpipam-www:1.5x
imagePullPolicy: IfNotPresent
name: phpipam-web
ports:
- containerPort: 80
name: http
protocol: TCP
resources:
requests:
memory: 256Mi
cpu: 0.2
limits:
memory: 512Mi
cpu: 0.5
restartPolicy: Always
securityContext: {}
- service-phpipam.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: phpipam-web
name: phpipam-web
namespace: phpipam-system
spec:
ipFamilies:
- IPv4
- IPv6
ipFamilyPolicy: PreferDualStack
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: phpipam-web
type: ClusterIP
- cron.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: phpipam-cron
name: phpipam-cron
namespace: phpipam-system
spec:
selector:
matchLabels:
app: phpipam-cron
template:
metadata:
labels:
app: phpipam-cron
spec:
containers:
- env:
- name: IPAM_DATABASE_HOST
value: phpipam-db
- name: IPAM_DATABASE_PASS
value: QGJ0anQoKCkpMjI=
- name: SCAN_INTERVAL
value: 1h
- name: TZ
value: America/Sao_Paulo
image: phpipam/phpipam-cron:1.5x
imagePullPolicy: IfNotPresent
name: phpipam-cron
resources:
requests:
memory: 128Mi
cpu: 0.1
limits:
memory: 256Mi
cpu: 0.2
restartPolicy: Always
securityContext: {}
- ingress-phpipam.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
creationTimestamp: null
name: phpipam-ingress
namespace: phpipam-system
spec:
ingressClassName: nginx
rules:
- host: phpipam.juntotelecom.com.br
http:
paths:
- backend:
service:
name: phpipam-web
port:
number: 80
path: /
pathType: Prefix