feat: Add security context
All checks were successful
kustomization/flux-system/12ab30af reconciliation succeeded
kustomization/alerts/12ab30af reconciliation succeeded
kustomization/cert-manager/12ab30af reconciliation succeeded
kustomization/longhorn/12ab30af reconciliation succeeded
kustomization/lldap/12ab30af reconciliation succeeded
kustomization/longhorn-jobs/12ab30af reconciliation succeeded
kustomization/reflector/12ab30af reconciliation succeeded
kustomization/spegel/12ab30af reconciliation succeeded
kustomization/certificates/12ab30af reconciliation succeeded
kustomization/cilium/12ab30af reconciliation succeeded
kustomization/cnpg/12ab30af reconciliation succeeded
kustomization/cilium-config/12ab30af reconciliation succeeded
kustomization/local-path-provisioner/12ab30af reconciliation succeeded
All checks were successful
kustomization/flux-system/12ab30af reconciliation succeeded
kustomization/alerts/12ab30af reconciliation succeeded
kustomization/cert-manager/12ab30af reconciliation succeeded
kustomization/longhorn/12ab30af reconciliation succeeded
kustomization/lldap/12ab30af reconciliation succeeded
kustomization/longhorn-jobs/12ab30af reconciliation succeeded
kustomization/reflector/12ab30af reconciliation succeeded
kustomization/spegel/12ab30af reconciliation succeeded
kustomization/certificates/12ab30af reconciliation succeeded
kustomization/cilium/12ab30af reconciliation succeeded
kustomization/cnpg/12ab30af reconciliation succeeded
kustomization/cilium-config/12ab30af reconciliation succeeded
kustomization/local-path-provisioner/12ab30af reconciliation succeeded
This commit is contained in:
286
manifests.yaml
Normal file
286
manifests.yaml
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: groups.lldap.huizinga.dev
|
||||||
|
spec:
|
||||||
|
group: lldap.huizinga.dev
|
||||||
|
names:
|
||||||
|
categories: []
|
||||||
|
kind: Group
|
||||||
|
plural: groups
|
||||||
|
shortNames:
|
||||||
|
- lg
|
||||||
|
singular: group
|
||||||
|
scope: Cluster
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns: []
|
||||||
|
name: v1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: Custom resource for managing Groups inside of LLDAP
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
title: Group
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: serviceusers.lldap.huizinga.dev
|
||||||
|
spec:
|
||||||
|
group: lldap.huizinga.dev
|
||||||
|
names:
|
||||||
|
categories: []
|
||||||
|
kind: ServiceUser
|
||||||
|
plural: serviceusers
|
||||||
|
shortNames:
|
||||||
|
- lsu
|
||||||
|
singular: serviceuser
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- description: Can the service user manage passwords
|
||||||
|
jsonPath: .spec.passwordManager
|
||||||
|
name: Manager
|
||||||
|
type: boolean
|
||||||
|
- description: Secret creation timestamp
|
||||||
|
jsonPath: .status.secretCreated
|
||||||
|
name: Password
|
||||||
|
type: date
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: Custom resource for managing Service Users inside of LLDAP
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
properties:
|
||||||
|
additionalGroups:
|
||||||
|
default: []
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
passwordManager:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
nullable: true
|
||||||
|
properties:
|
||||||
|
secretCreated:
|
||||||
|
format: date-time
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
title: ServiceUser
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: userattributes.lldap.huizinga.dev
|
||||||
|
spec:
|
||||||
|
group: lldap.huizinga.dev
|
||||||
|
names:
|
||||||
|
categories: []
|
||||||
|
kind: UserAttribute
|
||||||
|
plural: userattributes
|
||||||
|
shortNames:
|
||||||
|
- lua
|
||||||
|
singular: userattribute
|
||||||
|
scope: Cluster
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- description: Type of attribute
|
||||||
|
jsonPath: .spec.type
|
||||||
|
name: Type
|
||||||
|
type: string
|
||||||
|
- description: Can the attribute contain multiple values
|
||||||
|
jsonPath: .spec.list
|
||||||
|
name: List
|
||||||
|
type: boolean
|
||||||
|
- description: Can users see the value
|
||||||
|
jsonPath: .spec.userVisible
|
||||||
|
name: Visible
|
||||||
|
type: boolean
|
||||||
|
- description: Can users edit the value
|
||||||
|
jsonPath: .spec.userEditable
|
||||||
|
name: Editable
|
||||||
|
type: boolean
|
||||||
|
- jsonPath: .status.synced
|
||||||
|
name: Synced
|
||||||
|
type: boolean
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: Custom resource for managing custom User Attributes inside of
|
||||||
|
LLDAP
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
properties:
|
||||||
|
list:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type:
|
||||||
|
enum:
|
||||||
|
- String
|
||||||
|
- Integer
|
||||||
|
- Jpeg
|
||||||
|
- DateTime
|
||||||
|
type: string
|
||||||
|
userEditable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
userVisible:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
nullable: true
|
||||||
|
properties:
|
||||||
|
synced:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- synced
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
title: UserAttributeValidated
|
||||||
|
type: object
|
||||||
|
x-kubernetes-validations:
|
||||||
|
- message: User attributes are immutable
|
||||||
|
rule: self.spec == oldSelf.spec
|
||||||
|
- message: Editable attribute must also be visible
|
||||||
|
rule: '!self.spec.userEditable || self.spec.userVisible && self.spec.userEditable'
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: lldap-controller
|
||||||
|
app.kubernetes.io/name: lldap-controller
|
||||||
|
name: lldap-controller
|
||||||
|
namespace: lldap
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: lldap-controller
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- lldap.huizinga.dev
|
||||||
|
resources:
|
||||||
|
- serviceusers
|
||||||
|
- serviceusers/status
|
||||||
|
- serviceusers/finalizers
|
||||||
|
- groups
|
||||||
|
- grours/status
|
||||||
|
- grours/finalizers
|
||||||
|
- userattributes
|
||||||
|
- userattributes/status
|
||||||
|
- userattributes/finalizers
|
||||||
|
verbs:
|
||||||
|
- '*'
|
||||||
|
- apiGroups:
|
||||||
|
- events.k8s.io
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- '*'
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: lldap-controller
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: lldap-controller
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: lldap-controller
|
||||||
|
namespace: lldap
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: lldap-controller
|
||||||
|
app.kubernetes.io/name: lldap-controller
|
||||||
|
name: lldap-controller
|
||||||
|
namespace: lldap
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: lldap-controller
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/default-container: lldap-controller
|
||||||
|
labels:
|
||||||
|
app: lldap-controller
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: RUST_LOG
|
||||||
|
value: info,lldap_controller=debug
|
||||||
|
- name: LLDAP_URL
|
||||||
|
value: http://lldap:17170
|
||||||
|
- name: LLDAP_USERNAME
|
||||||
|
value: admin
|
||||||
|
- name: LLDAP_PASSWORD_FILE
|
||||||
|
value: /secrets/credentials/lldap-ldap-user-pass
|
||||||
|
- name: LLDAP_BIND_DN
|
||||||
|
value: uid={username},ou=people,dc=huizinga,dc=dev
|
||||||
|
image: git.huizinga.dev/infra/lldap-controller@git.huizinga.dev/infra/lldap-controller@sha256:02aa3a7d70c1af838d0a4ac488d647abb90a4a641c8c82a8e82222c3a9d68f17
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: lldap-controller
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 256Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 100Mi
|
||||||
|
securityContext: {}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /secrets/credentials
|
||||||
|
name: credentials
|
||||||
|
readOnly: true
|
||||||
|
securityContext: {}
|
||||||
|
serviceAccountName: lldap-controller
|
||||||
|
volumes:
|
||||||
|
- name: credentials
|
||||||
|
secret:
|
||||||
|
secretName: credentials
|
||||||
Reference in New Issue
Block a user