Files
k8s-apps/openldap/phpldapadmin.yaml
2026-03-09 18:29:13 +00:00

213 lines
6.4 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: openldap
data:
# file-like keys
config.php: |
<?php
$config->custom->commands['cmd'] = array(
'entry_internal_attributes_show' => true,
'entry_refresh' => true,
'oslinks' => true,
'switch_template' => true
);
$config->custom->commands['script'] = array(
'add_attr_form' => true,
'add_oclass_form' => true,
'add_value_form' => true,
'collapse' => true,
'compare' => true,
'compare_form' => true,
'copy' => true,
'copy_form' => true,
'create' => true,
'create_confirm' => true,
'delete' => true,
'delete_attr' => true,
'delete_form' => true,
'draw_tree_node' => true,
'expand' => true,
'export' => true,
'export_form' => true,
'import' => true,
'import_form' => true,
'login' => true,
'logout' => true,
'login_form' => true,
'mass_delete' => true,
'mass_edit' => true,
'mass_update' => true,
'modify_member_form' => true,
'monitor' => true,
'purge_cache' => true,
'query_engine' => true,
'rename' => true,
'rename_form' => true,
'rdelete' => true,
'refresh' => true,
'schema' => true,
'server_info' => true,
'show_cache' => true,
'template_engine' => true,
'update_confirm' => true,
'update' => true
);
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap.undercloud.local(config) - notls');
$servers->setValue('server','host','ldap.undercloud.local.');
$servers->setValue('server','tls',false);
$servers->setValue('login','bind_id','cn=admin,dc=config');
//$servers->setValue('server','port',389);
$servers->setValue('server','base',array('cn=config','dc=cn=undercloud,cn=cf'));
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap.undercloud.local - notls');
$servers->setValue('server','host','ldap.undercloud.local.');
$servers->setValue('server','tls',false);
$servers->setValue('login','bind_id','cn=admin,dc=undercloud,dc=local');
//$servers->setValue('server','port',389);
//$servers->setValue('server','base',array('dc=undercloud,dc=local'));
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap.undercloud.local - StartTLS');
$servers->setValue('server','host','ldap://ldap.undercloud.local');
$servers->setValue('server','port',389);
$servers->setValue('server','tls',true);
$servers->setValue('login','bind_id','cn=admin,dc=undercloud,dc=local');
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap.undercloud.local:636 - LDAPS');
$servers->setValue('server','host','ldaps://ldap.undercloud.local:636');
#$servers->setValue('server','tls',true);
$servers->setValue('login','bind_id','cn=admin,dc=undercloud,dc=local');
$servers->setValue('server','port',0);
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpldapadmin
namespace: openldap
labels:
app: phpldapadmin
spec:
replicas: 1
selector:
matchLabels:
app: phpldapadmin
template:
metadata:
labels:
app: phpldapadmin
spec:
dnsConfig:
options:
- name: ndots
value: "1"
#securityContext:
# runAsUser: 1000
# runAsGroup: 1000
# fsGroup: 1000
initContainers:
- name: copy-assets
image: osixia/phpldapadmin:0.9.0
imagePullPolicy: IfNotPresent
command: ['sh', '-c', "cp -f /config.php /container/service/phpldapadmin/assets/config"]
volumeMounts:
- mountPath: /config.php
name: config
subPath: config.php
- mountPath: /container/service/phpldapadmin/assets/config
name: config-dir
containers:
- name: phpldapadmin
image: osixia/phpldapadmin:0.9.0
imagePullPolicy: IfNotPresent
#securityContext:
# privileged: true
ports:
- containerPort: 80
protocol: TCP
args:
- "--copy-service"
env:
#- name: DNSMASQ_USER
# value: root
#- name: PHPLDAPADMIN_LDAP_HOSTS
# value: "#PYTHON2BASH:[{'ldap.openldap.svc.k8aux.undercloud.local.': [{'server': [{'tls': False}]},{'login': [{'bind_id': 'cn=admin,dc=undercloud,dc=local'}]}]}]"
- name: PHPLDAPADMIN_TRUST_PROXY_SSL
value: "true"
- name: PHPLDAPADMIN_HTTPS
value: "false"
- name: PHPLDAPADMIN_LDAP_CLIENT_TLS
value: "true"
- name: PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT
value: demand
- name: PHPLDAPADMIN_LDAP_CLIENT_TLS_CA_CRT_FILENAME
#/container/service/ldap-client/assets/certs/$PHPLDAPADMIN_LDAP_CLIENT_TLS_CA_CRT_FILENAME.
value: ldap-ca.crt
- name: PHPLDAPADMIN_LDAP_CLIENT_TLS_CRT_FILENAME
value: ldap-client.crt
- name: PHPLDAPADMIN_LDAP_CLIENT_TLS_KEY_FILENAME
value: ldap-client.key
volumeMounts:
- mountPath: /container/service/phpldapadmin/assets/config
name: config-dir
- name: root-ca
mountPath: "/container/service/ldap-client/assets/certs/ldap-ca.crt"
subPath: trust-bundle.pem
- name: phpldapadmin-tls
mountPath: "/container/service/ldap-client/assets/certs/ldap-client.crt"
subPath: tls.crt
- name: phpldapadmin-tls
mountPath: "/container/service/ldap-client/assets/certs/ldap-client.key"
subPath: tls.key
volumes:
- name: config
configMap:
name: config
defaultMode: 0777
items:
- key: "config.php"
path: "config.php"
- name: config-dir
emptyDir:
sizeLimit: 16Mi
- name: root-ca
configMap:
name: undercloud-ca-bundle
items:
- key: trust-bundle.pem
path: trust-bundle.pem
- name: phpldapadmin-tls
secret:
secretName: phpldapadmin-tls
---
apiVersion: v1
kind: Service
metadata:
name: phpldapadmin
namespace: openldap
spec:
ipFamilies:
- IPv6
- IPv4
ipFamilyPolicy: PreferDualStack
#ipFamilyPolicy: SingleStack
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: phpldapadmin
#sessionAffinity: None
type: ClusterIP