Cast commit
This commit is contained in:
commit
033556c928
14
airm/Certificate_airm-tls-secret.yaml
Normal file
14
airm/Certificate_airm-tls-secret.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: airm-tls-secret
|
||||
namespace: airm
|
||||
spec:
|
||||
dnsNames:
|
||||
- airm-rabbitmq.airm.svc.cluster.local
|
||||
- '*.airm-rabbitmq-nodes.airm.svc.cluster.local'
|
||||
issuerRef:
|
||||
kind: Issuer
|
||||
name: airm-selfsigned-issuer
|
||||
secretName: airm-tls-secret
|
||||
36
airm/ClusterPolicy_airm-project-namespace-rolebinding.yaml
Normal file
36
airm/ClusterPolicy_airm-project-namespace-rolebinding.yaml
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
name: airm-project-namespace-rolebinding
|
||||
spec:
|
||||
background: false
|
||||
rules:
|
||||
- generate:
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
data:
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: airm-project-member
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: Group
|
||||
name: oidc{{request.object.metadata.name}}
|
||||
kind: RoleBinding
|
||||
name: '{{request.object.metadata.name}}-member-role-binding'
|
||||
namespace: '{{request.object.metadata.name}}'
|
||||
synchronize: true
|
||||
match:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
operations:
|
||||
- CREATE
|
||||
name: generate-project-namespace-rolebinding
|
||||
preconditions:
|
||||
any:
|
||||
- key: '{{request.object.metadata.labels."airm.silogen.ai/project-id" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: ""
|
||||
92
airm/ClusterPolicy_airm-quota-enforcement-for-workloads.yaml
Normal file
92
airm/ClusterPolicy_airm-quota-enforcement-for-workloads.yaml
Normal file
@ -0,0 +1,92 @@
|
||||
---
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
name: airm-quota-enforcement-for-workloads
|
||||
spec:
|
||||
background: false
|
||||
rules:
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Deployment
|
||||
- StatefulSet
|
||||
- Pod
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
kueue.x-k8s.io/queue-name: '{{request.namespace }}'
|
||||
name: set-queue-name-from-namespace-default
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.metadata.labels."kueue.x-k8s.io/queue-name" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{request.namespace }}'
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Job
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
kueue.x-k8s.io/queue-name: '{{request.namespace }}'
|
||||
spec:
|
||||
suspend: true
|
||||
name: set-queue-name-from-namespace-jobs
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.metadata.labels."kueue.x-k8s.io/queue-name" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{request.namespace }}'
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- CronJob
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
spec:
|
||||
jobTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
kueue.x-k8s.io/queue-name: '{{request.namespace }}'
|
||||
spec:
|
||||
suspend: true
|
||||
name: set-queue-name-from-namespace-cronjobs
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.spec.jobTemplate.metadata.labels."kueue.x-k8s.io/queue-name" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{request.namespace }}'
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- KaiwoJob
|
||||
- KaiwoService
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
spec:
|
||||
clusterQueue: '{{request.namespace }}'
|
||||
name: set-queue-name-from-namespace-kaiwo
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.spec.clusterQueue || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{request.namespace }}'
|
||||
170
airm/ClusterPolicy_airm-workload-tracking-policy.yaml
Normal file
170
airm/ClusterPolicy_airm-workload-tracking-policy.yaml
Normal file
@ -0,0 +1,170 @@
|
||||
---
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
name: airm-workload-tracking-policy
|
||||
spec:
|
||||
background: false
|
||||
rules:
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Job
|
||||
- Deployment
|
||||
- StatefulSet
|
||||
- DaemonSet
|
||||
- CronJob
|
||||
- KaiwoJob
|
||||
- KaiwoService
|
||||
- Pod
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
annotations:
|
||||
airm.silogen.ai/auto-discovered: "true"
|
||||
airm.silogen.ai/discovered-component-type: '{{request.object.kind }}'
|
||||
airm.silogen.ai/submitter: '{{request.userInfo.username }}'
|
||||
name: add-discovery-annotations-for-supported-types
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || '''' }}'
|
||||
operator: Equals
|
||||
value: ""
|
||||
- key: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || '''' }}'
|
||||
operator: Equals
|
||||
value: ""
|
||||
- key: '{{request.object.metadata.annotations."airm.silogen.ai/auto-discovered" || '''' }}'
|
||||
operator: Equals
|
||||
value: ""
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Job
|
||||
- Deployment
|
||||
- StatefulSet
|
||||
- DaemonSet
|
||||
- CronJob
|
||||
- KaiwoJob
|
||||
- KaiwoService
|
||||
- Pod
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
annotations:
|
||||
airm.silogen.ai/auto-discovered: "false"
|
||||
name: remove-auto-discovered-annotations-inherited-from-parent
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.metadata.annotations."airm.silogen.ai/auto-discovered" || '''' }}'
|
||||
operator: Equals
|
||||
value: "true"
|
||||
- key: '{{request.object.metadata.annotations."airm.silogen.ai/discovered-component-type" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{request.object.kind }}'
|
||||
- context:
|
||||
- apiCall:
|
||||
jmesPath: metadata.labels
|
||||
urlPath: /api/v1/namespaces/{{request.namespace }}
|
||||
name: ns_labels
|
||||
match:
|
||||
resources:
|
||||
kinds:
|
||||
- Job
|
||||
- Deployment
|
||||
- StatefulSet
|
||||
- DaemonSet
|
||||
- CronJob
|
||||
- KaiwoJob
|
||||
- KaiwoService
|
||||
- Pod
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/project-id: '{{ns_labels."airm.silogen.ai/project-id" }}'
|
||||
name: set-project-id-from-namespace-label
|
||||
preconditions:
|
||||
all:
|
||||
- key: '{{request.object.metadata.labels."airm.silogen.ai/project-id" || '''' }}'
|
||||
operator: NotEquals
|
||||
value: '{{ns_labels."airm.silogen.ai/project-id" }}'
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Pod
|
||||
- KaiwoJob
|
||||
- KaiwoService
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
name: add-workload-and-component-id-default
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- Job
|
||||
- Deployment
|
||||
- StatefulSet
|
||||
- DaemonSet
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
name: add-workload-and-component-id-to-objects-with-template
|
||||
- match:
|
||||
resources:
|
||||
kinds:
|
||||
- CronJob
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: airm.silogen.ai/project-id
|
||||
operator: Exists
|
||||
mutate:
|
||||
patchStrategicMerge:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
spec:
|
||||
jobTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
airm.silogen.ai/component-id: '{{request.object.metadata.labels."airm.silogen.ai/component-id" || request.oldObject.metadata.labels."airm.silogen.ai/component-id" || request.uid }}'
|
||||
airm.silogen.ai/workload-id: '{{request.object.metadata.labels."airm.silogen.ai/workload-id" || request.oldObject.metadata.labels."airm.silogen.ai/workload-id" || request.uid }}'
|
||||
name: add-workload-and-component-id-cronjobs
|
||||
13
airm/ClusterRoleBinding_airm-configure-binding.yaml
Normal file
13
airm/ClusterRoleBinding_airm-configure-binding.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: airm-configure-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: airm-configure-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: airm-configure-sa
|
||||
namespace: airm
|
||||
@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: airm-dispatcher-cluster-access-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: airm-dispatcher-cluster-access-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: airm-dispatcher-sa
|
||||
namespace: airm
|
||||
@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: airm-platform-admin-role-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: airm-platform-admin
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: Group
|
||||
name: oidcairm-role:Platform Administrator
|
||||
16
airm/ClusterRoleBinding_airm-secret-generator-binding.yaml
Normal file
16
airm/ClusterRoleBinding_airm-secret-generator-binding.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
helm.sh/hook-weight: "-1"
|
||||
name: airm-secret-generator-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: airm-secret-generator-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: airm-secret-generator-sa
|
||||
namespace: airm
|
||||
22
airm/ClusterRole_airm-configure-role.yaml
Normal file
22
airm/ClusterRole_airm-configure-role.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: airm-configure-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
113
airm/ClusterRole_airm-dispatcher-cluster-access-role.yaml
Normal file
113
airm/ClusterRole_airm-dispatcher-cluster-access-role.yaml
Normal file
@ -0,0 +1,113 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: airm-dispatcher-cluster-access-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
- namespaces
|
||||
- configmaps
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
- statefulsets
|
||||
- daemonsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
- cronjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwojobs
|
||||
- kaiwoservices
|
||||
- kaiwoqueueconfigs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- gateway.networking.k8s.io
|
||||
resources:
|
||||
- httproutes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- external-secrets.io
|
||||
resources:
|
||||
- externalsecrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
153
airm/ClusterRole_airm-platform-admin.yaml
Normal file
153
airm/ClusterRole_airm-platform-admin.yaml
Normal file
@ -0,0 +1,153 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: airm-platform-admin
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- events
|
||||
- services
|
||||
- configmaps
|
||||
- persistentvolumes
|
||||
- persistentvolumeclaims
|
||||
- namespaces
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/log
|
||||
- pods/exec
|
||||
- pods/attach
|
||||
- pods/portforward
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
- replicasets
|
||||
- statefulsets
|
||||
- daemonsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
- cronjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
- networkpolicies
|
||||
- httproutes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwojobs
|
||||
- kaiwoservices
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- config.kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwoconfigs
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwojobs
|
||||
- kaiwoservices
|
||||
- kaiwoqueueconfigs
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- roles
|
||||
- clusterroles
|
||||
- rolebindings
|
||||
- clusterrolebindings
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- external-secrets.io
|
||||
resources:
|
||||
- externalsecrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- external-secrets.io
|
||||
resources:
|
||||
- clustersecretstores
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kueue.x-k8s.io
|
||||
resources:
|
||||
- clusterqueues
|
||||
- resourceflavors
|
||||
- localqueues
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
96
airm/ClusterRole_airm-project-member.yaml
Normal file
96
airm/ClusterRole_airm-project-member.yaml
Normal file
@ -0,0 +1,96 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: airm-project-member
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/log
|
||||
- pods/exec
|
||||
- pods/attach
|
||||
- pods/portforward
|
||||
- events
|
||||
- services
|
||||
- configmaps
|
||||
- persistentvolumes
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
- replicasets
|
||||
- statefulsets
|
||||
- daemonsets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
- cronjobs
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
- networkpolicies
|
||||
- httproutes
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwojobs
|
||||
- kaiwoservices
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- roles
|
||||
- clusterroles
|
||||
- rolebindings
|
||||
- clusterrolebindings
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- external-secrets.io
|
||||
resources:
|
||||
- clustersecretstores
|
||||
- externalsecrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
19
airm/ClusterRole_airm-secret-generator-role.yaml
Normal file
19
airm/ClusterRole_airm-secret-generator-role.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
helm.sh/hook-weight: "-1"
|
||||
name: airm-secret-generator-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- external-secrets.io
|
||||
resources:
|
||||
- clustersecretstores
|
||||
verbs:
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- get
|
||||
- list
|
||||
23
airm/ClusterRole_kyverno:airm-policy-roles.yaml
Normal file
23
airm/ClusterRole_kyverno:airm-policy-roles.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
rbac.kyverno.io/aggregate-to-background-controller: "true"
|
||||
name: kyverno:airm-policy-roles
|
||||
rules:
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- clusterroles
|
||||
- rolebindings
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- clusterroles
|
||||
verbs:
|
||||
- bind
|
||||
17
airm/ClusterRole_kyverno:airm-reports-policy-roles.yaml
Normal file
17
airm/ClusterRole_kyverno:airm-reports-policy-roles.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
rbac.kyverno.io/aggregate-to-reports-controller: "true"
|
||||
name: kyverno:airm-reports-policy-roles
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kaiwo.silogen.ai
|
||||
resources:
|
||||
- kaiwojobs
|
||||
- kaiwoservices
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
50
airm/Cluster_airm-cnpg.yaml
Normal file
50
airm/Cluster_airm-cnpg.yaml
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: airm-cnpg
|
||||
namespace: airm
|
||||
spec:
|
||||
affinity:
|
||||
enablePodAntiAffinity: true
|
||||
topologyKey: topology.kubernetes.io/zone
|
||||
bootstrap:
|
||||
initdb:
|
||||
database: airm
|
||||
owner: airm_user
|
||||
postInitSQL:
|
||||
- GRANT CREATE ON SCHEMA public TO airm_user
|
||||
secret:
|
||||
name: airm-cnpg-user
|
||||
imageName: ghcr.io/cloudnative-pg/postgresql:17
|
||||
instances: 1
|
||||
nodeMaintenanceWindow:
|
||||
inProgress: false
|
||||
reusePVC: true
|
||||
postgresql:
|
||||
parameters:
|
||||
auto_explain.log_min_duration: 10s
|
||||
pg_stat_statements.max: "10000"
|
||||
pg_stat_statements.track: all
|
||||
shared_buffers: 256MB
|
||||
wal_compression: pglz
|
||||
pg_hba:
|
||||
- host all all 10.244.0.0/16 md5
|
||||
primaryUpdateStrategy: unsupervised
|
||||
resources:
|
||||
limits:
|
||||
cpu: "2"
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 512Mi
|
||||
startDelay: 300
|
||||
stopDelay: 300
|
||||
storage:
|
||||
size: 50Gi
|
||||
storageClass: default
|
||||
superuserSecret:
|
||||
name: airm-cnpg-superuser
|
||||
walStorage:
|
||||
size: 50Gi
|
||||
storageClass: default
|
||||
57
airm/ConfigMap_airm-secret-generator-script.yaml
Normal file
57
airm/ConfigMap_airm-secret-generator-script.yaml
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
generate-secrets.sh: |2
|
||||
generate_secret() {
|
||||
openssl rand -hex 16 | tr 'a-f' 'A-F' | head -c 32
|
||||
}
|
||||
|
||||
AIRM_SUPERUSER_USERNAME=$(generate_secret)
|
||||
AIRM_SUPERUSER_PASSWORD=$(generate_secret)
|
||||
AIRM_USER_PASSWORD=$(generate_secret)
|
||||
AIRM_RABBITMQ_USERNAME=$(generate_secret)
|
||||
AIRM_RABBITMQ_PASSWORD=$(generate_secret)
|
||||
AIRM_UI_AUTH_SECRET=$(generate_secret)
|
||||
|
||||
cat > /tmp/final-secret-store.yaml << EOF
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ClusterSecretStore
|
||||
metadata:
|
||||
name: airm-secret-store
|
||||
spec:
|
||||
provider:
|
||||
fake:
|
||||
data:
|
||||
- key: airm-cnpg-superuser-username
|
||||
value: ${AIRM_SUPERUSER_USERNAME}
|
||||
- key: airm-cnpg-superuser-password
|
||||
value: ${AIRM_SUPERUSER_PASSWORD}
|
||||
- key: airm-cnpg-user-username
|
||||
value: airm_user
|
||||
- key: airm-cnpg-user-password
|
||||
value: ${AIRM_USER_PASSWORD}
|
||||
- key: airm-rabbitmq-user-username
|
||||
value: ${AIRM_RABBITMQ_USERNAME}
|
||||
- key: airm-rabbitmq-user-password
|
||||
value: ${AIRM_RABBITMQ_PASSWORD}
|
||||
- key: airm-ui-auth-nextauth-secret
|
||||
value: ${AIRM_UI_AUTH_SECRET}
|
||||
EOF
|
||||
|
||||
kubectl get clustersecretstores.external-secrets.io airm-secret-store > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "ClusterSecretStore 'airm-secret-store' already exists, skipping creation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
kubectl apply -f /tmp/final-secret-store.yaml
|
||||
echo "ClusterSecretStore created successfully!"
|
||||
echo "Generated secrets with alphanumeric values only"
|
||||
exit 0
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
helm.sh/hook-weight: "-1"
|
||||
name: airm-secret-generator-script
|
||||
namespace: airm
|
||||
29
airm/CronJob_airm-cluster-nodes-dispatcher.yaml
Normal file
29
airm/CronJob_airm-cluster-nodes-dispatcher.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: airm-cluster-nodes-dispatcher
|
||||
namespace: airm
|
||||
spec:
|
||||
concurrencyPolicy: Replace
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- curl
|
||||
- -X
|
||||
- POST
|
||||
- http://airm-dispatcher:80/v1/clusters/nodes
|
||||
image: ghcr.io/silogen/airm-dispatcher:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: airm-cluster-nodes-cron
|
||||
resources:
|
||||
limits:
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 100Mi
|
||||
restartPolicy: OnFailure
|
||||
schedule: 0 * * * *
|
||||
62
airm/CronJob_airm-heartbeat-dispatcher.yaml
Normal file
62
airm/CronJob_airm-heartbeat-dispatcher.yaml
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: airm-heartbeat-dispatcher
|
||||
namespace: airm
|
||||
spec:
|
||||
concurrencyPolicy: Replace
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- curl
|
||||
- -X
|
||||
- POST
|
||||
- http://airm-dispatcher:80/v1/heartbeats
|
||||
image: ghcr.io/silogen/airm-dispatcher:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: airm-heartbeat-cron
|
||||
resources:
|
||||
limits:
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 100Mi
|
||||
initContainers:
|
||||
- command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- apt-get update -y 1> /dev/null 2>&1 && apt-get install ncat -y 1> /dev/null 2>&1 && while ! nc -z "$ENDPOINT_URL_TO_CHECK" "$ENDPOINT_PORT_TO_CHECK"; do echo "Waiting for Airm dispatcher at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}..."; sleep 3; done; echo "Airm dispatcher is accepting connections at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}."; sleep 12; exit 0
|
||||
env:
|
||||
- name: ENDPOINT_URL_TO_CHECK
|
||||
value: airm-dispatcher.airm.svc.cluster.local
|
||||
- name: ENDPOINT_PORT_TO_CHECK
|
||||
value: "80"
|
||||
image: ubuntu@sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 # Original tag: 22.04
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: check-dispatcher-is-ready
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- SETUID
|
||||
- SETGID
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- FSETID
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
restartPolicy: OnFailure
|
||||
schedule: '*/1 * * * *'
|
||||
suspend: false
|
||||
257
airm/Deployment_airm-api.yaml
Normal file
257
airm/Deployment_airm-api.yaml
Normal file
@ -0,0 +1,257 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: airm-api
|
||||
namespace: airm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: airm-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-api
|
||||
auth-required: "true"
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: OPENID_CLIENT_ID
|
||||
value: 354a0fa1-35ac-4a6d-9c4d-d661129c2cd0
|
||||
- name: OPENID_CONFIGURATION_URL
|
||||
value: http://kc.not-a-domain/realms/airm/.well-known/openid-configuration
|
||||
- name: POST_REGISTRATION_REDIRECT_URL
|
||||
value: https://airmui.not-a-domain/
|
||||
- name: DATABASE_HOST
|
||||
value: airm-cnpg-rw.airm.svc.cluster.local
|
||||
- name: DATABASE_PORT
|
||||
value: "5432"
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-cnpg-user
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-cnpg-user
|
||||
- name: RABBITMQ_HOST
|
||||
value: airm-rabbitmq.airm.svc.cluster.local
|
||||
- name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- name: RABBITMQ_MANAGEMENT_URL
|
||||
value: http://airm-rabbitmq.airm.svc.cluster.local:15672/api
|
||||
- name: RABBITMQ_ADMIN_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-rabbitmq-admin
|
||||
- name: RABBITMQ_ADMIN_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-rabbitmq-admin
|
||||
- name: KEYCLOAK_ADMIN_SERVER_URL
|
||||
value: http://keycloak.keycloak.svc.cluster.local:8080
|
||||
- name: KEYCLOAK_REALM
|
||||
value: airm
|
||||
- name: KEYCLOAK_ADMIN_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: client-id
|
||||
name: airm-keycloak-admin-client
|
||||
- name: KEYCLOAK_ADMIN_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: client-secret
|
||||
name: airm-keycloak-admin-client
|
||||
- name: MINIO_URL
|
||||
value: http://minio.minio-tenant-default.svc.cluster.local:80
|
||||
- name: MINIO_BUCKET
|
||||
value: default-bucket
|
||||
- name: MINIO_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: minio-access-key
|
||||
name: airm-api-minio-credentials
|
||||
- name: MINIO_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: minio-secret-key
|
||||
name: airm-api-minio-credentials
|
||||
- name: PROMETHEUS_URL
|
||||
value: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:9090
|
||||
image: ghcr.io/silogen/airm-api:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 8080
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
name: airm
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
- containerPort: 9009
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 8080
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
initContainers:
|
||||
- command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
until pg_isready -h "airm-cnpg-rw.airm.svc.cluster.local" -p 5432 -U postgres; do
|
||||
echo "Waiting for database..."
|
||||
sleep 2
|
||||
done
|
||||
echo "Database is ready!"
|
||||
image: postgres@sha256:5d14c08a257610d8e27c52ce0f10de5d9cce4c232e1277d44d7d6fb628b3d1a7 # Original tag: 17-alpine
|
||||
name: wait-for-db
|
||||
- command:
|
||||
- sh
|
||||
- -c
|
||||
- cp /code/migrations/* /mnt/code/migrations/
|
||||
image: ghcr.io/silogen/airm-api:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: init-migration-scripts
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
volumeMounts:
|
||||
- mountPath: /mnt/code/migrations
|
||||
name: airm-migration-volume
|
||||
- command:
|
||||
- liquibase
|
||||
- --url=jdbc:postgresql://airm-cnpg-rw.airm.svc.cluster.local:5432/airm
|
||||
- --username=$(DATABASE_USER)
|
||||
- --password=$(DATABASE_PASSWORD)
|
||||
- --logLevel=INFO
|
||||
- --changeLogFile=changelog/changelog.xml
|
||||
- update
|
||||
env:
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-cnpg-user
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-cnpg-user
|
||||
image: docker.io/liquibase/liquibase@sha256:dc2e5237941efb92cc6ae0cffd40a5b6f476559d5ed20fd7ca711df4895997a3 # Original tag: 4.31
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: liquibase-migrate
|
||||
volumeMounts:
|
||||
- mountPath: /liquibase/changelog
|
||||
name: airm-migration-volume
|
||||
readOnly: true
|
||||
- command:
|
||||
- uv
|
||||
- run
|
||||
- -m
|
||||
- app.charts.registration
|
||||
env:
|
||||
- name: DATABASE_HOST
|
||||
value: airm-cnpg-rw.airm.svc.cluster.local
|
||||
- name: DATABASE_PORT
|
||||
value: "5432"
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-cnpg-user
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-cnpg-user
|
||||
- name: RABBITMQ_HOST
|
||||
value: airm-rabbitmq.airm.svc.cluster.local
|
||||
- name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- name: RABBITMQ_MANAGEMENT_URL
|
||||
value: http://airm-rabbitmq.airm.svc.cluster.local:15672/api
|
||||
- name: RABBITMQ_ADMIN_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-rabbitmq-admin
|
||||
- name: RABBITMQ_ADMIN_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-rabbitmq-admin
|
||||
image: ghcr.io/silogen/airm-api:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: charts-registration
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
- command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- apt-get update -y 1> /dev/null 2>&1 && apt-get install ncat -y 1> /dev/null 2>&1 && while ! nc -z "$ENDPOINT_URL_TO_CHECK" "$ENDPOINT_PORT_TO_CHECK"; do echo "Waiting for Airm rabbitmq at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}..."; sleep 3; done; echo "Airm rabbitmq is accepting connections at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}."; sleep 3; exit 0
|
||||
env:
|
||||
- name: ENDPOINT_URL_TO_CHECK
|
||||
value: airm-rabbitmq.airm.svc.cluster.local
|
||||
- name: ENDPOINT_PORT_TO_CHECK
|
||||
value: "15672"
|
||||
image: ubuntu@sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 # Original tag: 22.04
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: check-rabbitmq-is-ready
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- SETUID
|
||||
- SETGID
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- FSETID
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
volumes:
|
||||
- emptyDir: {}
|
||||
name: airm-migration-volume
|
||||
101
airm/Deployment_airm-dispatcher.yaml
Normal file
101
airm/Deployment_airm-dispatcher.yaml
Normal file
@ -0,0 +1,101 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: airm-dispatcher
|
||||
namespace: airm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: airm-dispatcher
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-dispatcher
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: KUBE_CLUSTER_NAME
|
||||
value: demo-cluster
|
||||
- name: ORG_NAME
|
||||
value: demo
|
||||
- name: RABBITMQ_HOST
|
||||
value: airm-rabbitmq.airm.svc.cluster.local
|
||||
- name: RABBITMQ_PORT
|
||||
value: "5672"
|
||||
- name: RABBITMQ_AIRM_COMMON_VHOST
|
||||
value: vh_airm_common
|
||||
- name: RABBITMQ_AIRM_COMMON_QUEUE
|
||||
value: airm_common
|
||||
- name: RABBITMQ_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: airm-rabbitmq-common-vhost-user
|
||||
- name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: airm-rabbitmq-common-vhost-user
|
||||
image: ghcr.io/silogen/airm-dispatcher:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 8080
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
name: airm-dispatcher
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /v1/health
|
||||
port: 8080
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 2
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
initContainers:
|
||||
- command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- apt-get update -y 1> /dev/null 2>&1 && apt-get install ncat -y 1> /dev/null 2>&1 && while ! nc -z "$ENDPOINT_URL_TO_CHECK" "$ENDPOINT_PORT_TO_CHECK"; do echo "Waiting for Airm UI at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}..."; sleep 3; done; echo "Airm UI is accepting connections at ${ENDPOINT_URL_TO_CHECK}:${ENDPOINT_PORT_TO_CHECK}."; sleep 12; exit 0
|
||||
env:
|
||||
- name: ENDPOINT_URL_TO_CHECK
|
||||
value: airm-api.airm.svc.cluster.local
|
||||
- name: ENDPOINT_PORT_TO_CHECK
|
||||
value: "80"
|
||||
image: ubuntu@sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 # Original tag: 22.04
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: check-airm-api-is-ready
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- SETUID
|
||||
- SETGID
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- FSETID
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
serviceAccountName: airm-dispatcher-sa
|
||||
65
airm/Deployment_airm-ui.yaml
Normal file
65
airm/Deployment_airm-ui.yaml
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: airm-ui
|
||||
namespace: airm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: airm-ui
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-ui
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: NEXTAUTH_URL
|
||||
value: https://airmui.not-a-domain
|
||||
- name: KEYCLOAK_ISSUER
|
||||
value: https://kc.not-a-domain/realms/airm
|
||||
- name: KEYCLOAK_ID
|
||||
value: 354a0fa1-35ac-4a6d-9c4d-d661129c2cd0
|
||||
- name: KEYCLOAK_ISSUER_INTERNAL_URL
|
||||
value: http://keycloak.keycloak:8080/realms/airm/
|
||||
- name: AIRM_API_SERVICE_URL
|
||||
value: http://airm-api.airm
|
||||
- name: NEXTAUTH_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: NEXTAUTH_SECRET
|
||||
name: airm-secrets-airm
|
||||
- name: KEYCLOAK_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: KEYCLOAK_SECRET
|
||||
name: airm-keycloak-ui-creds
|
||||
image: ghcr.io/silogen/airm-ui:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 8000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
timeoutSeconds: 2
|
||||
name: airm-ui
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 8000
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
memory: 4Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 4Gi
|
||||
restartPolicy: Always
|
||||
serviceAccountName: airm-ui-sa
|
||||
21
airm/ExternalSecret_airm-api-minio-credentials.yaml
Normal file
21
airm/ExternalSecret_airm-api-minio-credentials.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-api-minio-credentials
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: default-user
|
||||
property: API_ACCESS_KEY
|
||||
secretKey: minio-access-key
|
||||
- remoteRef:
|
||||
key: default-user
|
||||
property: API_SECRET_KEY
|
||||
secretKey: minio-secret-key
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: k8s-secret-store
|
||||
target:
|
||||
name: airm-api-minio-credentials
|
||||
21
airm/ExternalSecret_airm-cnpg-superuser.yaml
Normal file
21
airm/ExternalSecret_airm-cnpg-superuser.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-cnpg-superuser
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-cnpg-superuser-username
|
||||
secretKey: username
|
||||
- remoteRef:
|
||||
key: airm-cnpg-superuser-password
|
||||
secretKey: password
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: airm-secret-store
|
||||
target:
|
||||
name: airm-cnpg-superuser
|
||||
template:
|
||||
type: Opaque
|
||||
21
airm/ExternalSecret_airm-cnpg-user.yaml
Normal file
21
airm/ExternalSecret_airm-cnpg-user.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-cnpg-user
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-cnpg-user-username
|
||||
secretKey: username
|
||||
- remoteRef:
|
||||
key: airm-cnpg-user-password
|
||||
secretKey: password
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: airm-secret-store
|
||||
target:
|
||||
name: airm-cnpg-user
|
||||
template:
|
||||
type: Opaque
|
||||
21
airm/ExternalSecret_airm-keycloak-admin-client.yaml
Normal file
21
airm/ExternalSecret_airm-keycloak-admin-client.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-keycloak-admin-client
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-keycloak-admin-client-id
|
||||
secretKey: client-id
|
||||
- remoteRef:
|
||||
key: airm-keycloak-admin-client-secret
|
||||
secretKey: client-secret
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: keycloak-secret-store
|
||||
target:
|
||||
name: airm-keycloak-admin-client
|
||||
template:
|
||||
type: Opaque
|
||||
18
airm/ExternalSecret_airm-keycloak-ui-client.yaml
Normal file
18
airm/ExternalSecret_airm-keycloak-ui-client.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-keycloak-ui-client
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-ui-keycloak-secret
|
||||
secretKey: KEYCLOAK_SECRET
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: keycloak-secret-store
|
||||
target:
|
||||
name: airm-keycloak-ui-creds
|
||||
template:
|
||||
type: Opaque
|
||||
27
airm/ExternalSecret_airm-rabbitmq-admin.yaml
Normal file
27
airm/ExternalSecret_airm-rabbitmq-admin.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-rabbitmq-admin
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-rabbitmq-user-username
|
||||
secretKey: username
|
||||
- remoteRef:
|
||||
key: airm-rabbitmq-user-password
|
||||
secretKey: password
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: airm-secret-store
|
||||
target:
|
||||
name: airm-rabbitmq-admin
|
||||
template:
|
||||
data:
|
||||
default_user.conf: |
|
||||
default_user = {{ .username }}
|
||||
default_pass = {{ .password }}
|
||||
password: '{{ .password }}'
|
||||
username: '{{ .username }}'
|
||||
type: Opaque
|
||||
17
airm/ExternalSecret_airm-secrets-airm.yaml
Normal file
17
airm/ExternalSecret_airm-secrets-airm.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: airm-secrets-airm
|
||||
namespace: airm
|
||||
spec:
|
||||
data:
|
||||
- remoteRef:
|
||||
key: airm-ui-auth-nextauth-secret
|
||||
secretKey: NEXTAUTH_SECRET
|
||||
refreshInterval: 15s
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: airm-secret-store
|
||||
target:
|
||||
name: airm-secrets-airm
|
||||
30
airm/HTTPRoute_airmapi-route.yaml
Normal file
30
airm/HTTPRoute_airmapi-route.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: airmapi-route
|
||||
namespace: airm
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: https
|
||||
namespace: kgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- group: ""
|
||||
kind: Service
|
||||
name: airm-api
|
||||
port: 80
|
||||
weight: 1
|
||||
matches:
|
||||
- headers:
|
||||
- name: Host
|
||||
type: RegularExpression
|
||||
value: airmapi\..*
|
||||
path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
timeouts:
|
||||
backendRequest: 20s
|
||||
request: 90s
|
||||
30
airm/HTTPRoute_airmui-route.yaml
Normal file
30
airm/HTTPRoute_airmui-route.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: airmui-route
|
||||
namespace: airm
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: https
|
||||
namespace: kgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- group: ""
|
||||
kind: Service
|
||||
name: airm-ui
|
||||
port: 80
|
||||
weight: 1
|
||||
matches:
|
||||
- headers:
|
||||
- name: Host
|
||||
type: RegularExpression
|
||||
value: airmui\..*
|
||||
path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
timeouts:
|
||||
backendRequest: 20s
|
||||
request: 90s
|
||||
8
airm/Issuer_airm-selfsigned-issuer.yaml
Normal file
8
airm/Issuer_airm-selfsigned-issuer.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Issuer
|
||||
metadata:
|
||||
name: airm-selfsigned-issuer
|
||||
namespace: airm
|
||||
spec:
|
||||
selfSigned: {}
|
||||
120
airm/Job_airm-configure.yaml
Normal file
120
airm/Job_airm-configure.yaml
Normal file
@ -0,0 +1,120 @@
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: airm-configure
|
||||
namespace: airm
|
||||
spec:
|
||||
backoffLimit: 3
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-configure
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: DEBIAN_FRONTEND
|
||||
value: noninteractive
|
||||
- name: ORG_NAME
|
||||
value: demo
|
||||
- name: NEW_DOMAIN_NAME
|
||||
value: not-a-domain
|
||||
- name: KEYCLOAK_CLIENT_ID
|
||||
value: 354a0fa1-35ac-4a6d-9c4d-d661129c2cd0
|
||||
- name: KEYCLOAK_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: KEYCLOAK_SECRET
|
||||
name: airm-keycloak-ui-creds
|
||||
- name: USER_EMAIL
|
||||
value: devuser@not-a-domain
|
||||
- name: KEYCLOAK_URL
|
||||
value: http://keycloak.keycloak.svc.cluster.local:8080
|
||||
- name: AIRM_API_URL
|
||||
value: http://airm-api.airm.svc.cluster.local
|
||||
- name: CLUSTER_BASE_URL
|
||||
value: https://workspaces.not-a-domain/
|
||||
image: ghcr.io/silogen/airm-configure:v2025.09.001
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: configure
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- SETUID
|
||||
- SETGID
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- FSETID
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
initContainers:
|
||||
- args:
|
||||
- |
|
||||
apt-get update -y 1> /dev/null 2>&1
|
||||
apt-get install curl -y 1> /dev/null 2>&1
|
||||
echo "Checking dependencies..."
|
||||
|
||||
echo "Checking keycloak..."
|
||||
while true; do
|
||||
if curl -s --max-time 5 http://keycloak.keycloak.svc.cluster.local:8080/realms/airm/.well-known/openid-configuration > /dev/null 2>&1; then
|
||||
echo "Keycloak is ready!"
|
||||
break
|
||||
else
|
||||
echo "Waiting for Keycloak..."
|
||||
sleep 10
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Checking airm-api..."
|
||||
while true; do
|
||||
if curl -s --max-time 5 http://airm-api.airm.svc.cluster.local/v1/health > /dev/null 2>&1; then
|
||||
echo "AIRM API is ready!"
|
||||
break
|
||||
else
|
||||
echo "Waiting for AIRM API..."
|
||||
sleep 10
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Checking rabbitmq..."
|
||||
while true; do
|
||||
if curl -s --max-time 5 http://airm-rabbitmq.airm.svc.cluster.local:15672/api/overview > /dev/null 2>&1; then
|
||||
echo "RabbitMQ is ready!"
|
||||
break
|
||||
else
|
||||
echo "Waiting for RabbitMQ..."
|
||||
sleep 10
|
||||
fi
|
||||
done
|
||||
|
||||
echo "All dependencies are ready!"
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
image: ubuntu@sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 # Original tag: 22.04
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: wait-for-dependencies
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- SETUID
|
||||
- SETGID
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- FSETID
|
||||
drop:
|
||||
- ALL
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
restartPolicy: Never
|
||||
serviceAccountName: airm-configure-sa
|
||||
31
airm/Job_airm-secret-generator.yaml
Normal file
31
airm/Job_airm-secret-generator.yaml
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
helm.sh/hook-weight: "1"
|
||||
name: airm-secret-generator
|
||||
namespace: airm
|
||||
spec:
|
||||
backoffLimit: 3
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /scripts/generate-secrets.sh
|
||||
image: ghcr.io/silogen/cluster-tool:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: secret-generator
|
||||
volumeMounts:
|
||||
- mountPath: /scripts
|
||||
name: script-volume
|
||||
restartPolicy: OnFailure
|
||||
serviceAccountName: airm-secret-generator-sa
|
||||
volumes:
|
||||
- configMap:
|
||||
defaultMode: 493
|
||||
name: airm-secret-generator-script
|
||||
name: script-volume
|
||||
5
airm/Namespace_airm.yaml
Normal file
5
airm/Namespace_airm.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: airm
|
||||
22
airm/RabbitmqCluster_airm-rabbitmq.yaml
Normal file
22
airm/RabbitmqCluster_airm-rabbitmq.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: rabbitmq.com/v1beta1
|
||||
kind: RabbitmqCluster
|
||||
metadata:
|
||||
name: airm-rabbitmq
|
||||
namespace: airm
|
||||
spec:
|
||||
persistence:
|
||||
storage: 20Gi
|
||||
storageClassName: default
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
secretBackend:
|
||||
externalSecret:
|
||||
name: airm-rabbitmq-admin
|
||||
tls:
|
||||
secretName: airm-tls-secret
|
||||
6
airm/ServiceAccount_airm-configure-sa.yaml
Normal file
6
airm/ServiceAccount_airm-configure-sa.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: airm-configure-sa
|
||||
namespace: airm
|
||||
6
airm/ServiceAccount_airm-dispatcher-sa.yaml
Normal file
6
airm/ServiceAccount_airm-dispatcher-sa.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: airm-dispatcher-sa
|
||||
namespace: airm
|
||||
9
airm/ServiceAccount_airm-secret-generator-sa.yaml
Normal file
9
airm/ServiceAccount_airm-secret-generator-sa.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install
|
||||
helm.sh/hook-weight: "-1"
|
||||
name: airm-secret-generator-sa
|
||||
namespace: airm
|
||||
6
airm/ServiceAccount_airm-ui-sa.yaml
Normal file
6
airm/ServiceAccount_airm-ui-sa.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: airm-ui-sa
|
||||
namespace: airm
|
||||
19
airm/Service_airm-api.yaml
Normal file
19
airm/Service_airm-api.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-api
|
||||
name: airm-api
|
||||
namespace: airm
|
||||
spec:
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
- name: metrics
|
||||
port: 9009
|
||||
targetPort: 9009
|
||||
selector:
|
||||
app: airm-api
|
||||
type: ClusterIP
|
||||
16
airm/Service_airm-dispatcher.yaml
Normal file
16
airm/Service_airm-dispatcher.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-dispatcher
|
||||
name: airm-dispatcher
|
||||
namespace: airm
|
||||
spec:
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: airm-dispatcher
|
||||
type: ClusterIP
|
||||
16
airm/Service_airm-ui.yaml
Normal file
16
airm/Service_airm-ui.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: airm-ui
|
||||
name: airm-ui
|
||||
namespace: airm
|
||||
spec:
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
selector:
|
||||
app: airm-ui
|
||||
type: ClusterIP
|
||||
27
amd-device-config/DeviceConfig_gpu-operator.yaml
Normal file
27
amd-device-config/DeviceConfig_gpu-operator.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: amd.com/v1alpha1
|
||||
kind: DeviceConfig
|
||||
metadata:
|
||||
name: gpu-operator
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
devicePlugin:
|
||||
devicePluginImage: rocm/k8s-device-plugin:latest
|
||||
enableNodeLabeller: true
|
||||
nodeLabellerImage: rocm/k8s-device-plugin:labeller-latest
|
||||
driver:
|
||||
blacklist: false
|
||||
enable: false
|
||||
image: docker.io/username/repo
|
||||
version: 6.3.2
|
||||
metricsExporter:
|
||||
config:
|
||||
name: gpu-config
|
||||
enable: true
|
||||
image: docker.io/rocm/device-metrics-exporter@sha256:a82d52f44e09fe293cb49aed8a8047fcc43307ac1cf100ea50597a002d053ff9 # Original tag: v1.3.0.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
nodePort: 32500
|
||||
port: 5000
|
||||
serviceType: NodePort
|
||||
selector:
|
||||
feature.node.kubernetes.io/amd-gpu: "true"
|
||||
@ -0,0 +1,18 @@
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-serving-cert
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
dnsNames:
|
||||
- amd-gpu-operator-kmm-webhook-service.kube-amd-gpu.svc
|
||||
- amd-gpu-operator-kmm-webhook-service.kube-amd-gpu.svc.cluster.local
|
||||
issuerRef:
|
||||
kind: Issuer
|
||||
name: amd-gpu-operator-kmm-selfsigned-issuer
|
||||
secretName: kmm-operator-webhook-server-cert
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-config-manager
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-config-manager
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-config-manager
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-event-recorder-clusterrolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-event-recorder-clusterrole
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-gpu-operator-charts-controller-manager
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.0.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-rolebinding-for-secrets
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-kmm-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-gpu-operator-charts-controller-manager
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-gpu-operator-charts-controller-manager
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter-rbac-proxy
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter-rbac-proxy
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-metrics-exporter-rbac-proxy
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-metrics-exporter
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-node-labeller
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-node-labeller
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-node-labeller
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
helm.sh/hook-weight: "1"
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-pre-delete
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-pre-delete
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-gpu-operator-charts-pre-delete
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
helm.sh/hook-weight: "1"
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-prune
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-prune
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-gpu-operator-charts-prune
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-test-runner
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-test-runner
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-test-runner
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-utils-container
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-gpu-operator-charts-utils-container
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-utils-container
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-event-recorder-clusterrolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-kmm-event-recorder-clusterrole
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-kmm-controller
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-kmm-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-kmm-controller
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-proxy-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-kmm-proxy-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-kmm-controller
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-gc
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-node-feature-discovery-gc
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-node-feature-discovery-gc
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,20 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-prune
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-node-feature-discovery-prune
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-node-feature-discovery-prune
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: amd-gpu-operator-node-feature-discovery
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: amd-gpu-operator-node-feature-discovery
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-upgrade,pre-rollback
|
||||
helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
|
||||
helm.sh/hook-weight: "1"
|
||||
name: pre-upgrade-check-cluster-role-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: pre-upgrade-check-cluster-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: pre-upgrade-check-sa
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-upgrade,pre-rollback
|
||||
helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
|
||||
helm.sh/hook-weight: "2"
|
||||
name: upgrade-crd-hook-cluster-role-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: upgrade-crd-hook-cluster-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: upgrade-crd-hook-sa
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,52 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-config-manager
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- create
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- delete
|
||||
- create
|
||||
- update
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-event-recorder-clusterrole
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
@ -0,0 +1,202 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- secrets
|
||||
- services
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/finalizers
|
||||
- nodes/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/eviction
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/finalizers
|
||||
- pods/status
|
||||
verbs:
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services/finalizers
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- amd.com
|
||||
resources:
|
||||
- deviceconfigs
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- amd.com
|
||||
resources:
|
||||
- deviceconfigs/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- amd.com
|
||||
resources:
|
||||
- deviceconfigs/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets
|
||||
- daemonsets/status
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets/finalizers
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- modules
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- modules/finalizers
|
||||
- nodemodulesconfigs/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- modules/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- nodemodulesconfigs
|
||||
- nodemodulesconfigs/status
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- servicemonitors
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- nfd.openshift.io
|
||||
resources:
|
||||
- nodefeaturediscoveries
|
||||
verbs:
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.openshift.io
|
||||
resources:
|
||||
- nodefeaturediscoveries/finalizers
|
||||
- nodefeaturediscoveries/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter-rbac-proxy
|
||||
rules:
|
||||
- apiGroups:
|
||||
- authentication.k8s.io
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- authorization.k8s.io
|
||||
resources:
|
||||
- subjectaccessreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- watch
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
@ -0,0 +1,28 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-metrics-exporter
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- watch
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-node-labeller
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- watch
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
helm.sh/hook-weight: "0"
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-pre-delete
|
||||
rules:
|
||||
- apiGroups:
|
||||
- amd.com
|
||||
resources:
|
||||
- deviceconfigs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- delete
|
||||
@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
helm.sh/hook-weight: "0"
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-prune
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-test-runner
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- patch
|
||||
@ -0,0 +1,20 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-utils-container
|
||||
rules:
|
||||
- apiGroups:
|
||||
- security.openshift.io
|
||||
resourceNames:
|
||||
- privileged
|
||||
resources:
|
||||
- securitycontextconstraints
|
||||
verbs:
|
||||
- use
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-event-recorder-clusterrole
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
@ -0,0 +1,121 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cluster.open-cluster-management.io
|
||||
resources:
|
||||
- clusterclaims
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cluster.open-cluster-management.io
|
||||
resourceNames:
|
||||
- kernel-versions.kmm.node.kubernetes.io
|
||||
resources:
|
||||
- clusterclaims
|
||||
verbs:
|
||||
- delete
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- secrets
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- modules
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- modules/status
|
||||
- preflightvalidations/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- nodemodulesconfigs
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- nodemodulesconfigs/status
|
||||
verbs:
|
||||
- patch
|
||||
- apiGroups:
|
||||
- kmm.sigs.x-k8s.io
|
||||
resources:
|
||||
- preflightvalidations
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-metrics-reader
|
||||
rules:
|
||||
- nonResourceURLs:
|
||||
- /metrics
|
||||
verbs:
|
||||
- get
|
||||
@ -0,0 +1,24 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-proxy-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- authentication.k8s.io
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- authorization.k8s.io
|
||||
resources:
|
||||
- subjectaccessreviews
|
||||
verbs:
|
||||
- create
|
||||
@ -0,0 +1,37 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-gc
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/proxy
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- topology.node.k8s.io
|
||||
resources:
|
||||
- noderesourcetopologies
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
verbs:
|
||||
- delete
|
||||
- list
|
||||
@ -0,0 +1,23 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-prune
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- nodes/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- list
|
||||
@ -0,0 +1,52 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- nodes/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- list
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeatures
|
||||
- nodefeaturerules
|
||||
- nodefeaturegroups
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- nfd.k8s-sigs.io
|
||||
resources:
|
||||
- nodefeaturegroups/status
|
||||
verbs:
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resourceNames:
|
||||
- nfd-master.nfd.kubernetes.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-upgrade,pre-rollback
|
||||
helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
|
||||
helm.sh/hook-weight: "0"
|
||||
name: pre-upgrade-check-cluster-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- amd.com
|
||||
resources:
|
||||
- deviceconfigs
|
||||
verbs:
|
||||
- list
|
||||
- get
|
||||
@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-upgrade,pre-rollback
|
||||
helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
|
||||
helm.sh/hook-weight: "1"
|
||||
name: upgrade-crd-hook-cluster-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- patch
|
||||
- update
|
||||
@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
controller_manager_config.yaml: |-
|
||||
healthProbeBindAddress: :8081
|
||||
metricsBindAddress: 127.0.0.1:8080
|
||||
leaderElection:
|
||||
enabled: true
|
||||
resourceID: gpu.amd.com
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-config
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
controller_config.yaml: |-
|
||||
healthProbeBindAddress: :8081
|
||||
webhookPort: 9443
|
||||
leaderElection:
|
||||
enabled: true
|
||||
resourceID: kmm.sigs.x-k8s.io
|
||||
metrics:
|
||||
enableAuthnAuthz: true
|
||||
bindAddress: 0.0.0.0:8443
|
||||
secureServing: true
|
||||
worker:
|
||||
runAsUser: 0
|
||||
seLinuxType: spc_t
|
||||
firmwareHostPath: /var/lib/firmware
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: amd-gpu-operator-kmm-manager-config
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
nfd-master.conf: "null"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-master-conf
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
nfd-worker.conf: "null"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
name: amd-gpu-operator-node-feature-discovery-worker-conf
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
source.yaml: |
|
||||
name: amd-gpu-operator
|
||||
namespace: "kube-amd-gpu"
|
||||
helm-chart-name: "gpu-operator-charts"
|
||||
helm-name: amd-gpu-operator
|
||||
helm-url: "https://rocm.github.io/gpu-operator"
|
||||
helm-version: "1.3.0"
|
||||
source-exclusions:
|
||||
- Job_pre-upgrade-check.yaml
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: clusterforge-amd-gpu-operator-info
|
||||
namespace: kube-amd-gpu
|
||||
127
amd-gpu-operator/ConfigMap_gpu-config.yaml
Normal file
127
amd-gpu-operator/ConfigMap_gpu-config.yaml
Normal file
@ -0,0 +1,127 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
config.json: |
|
||||
{
|
||||
"GPUConfig": {
|
||||
"Fields": [
|
||||
"GPU_NODES_TOTAL",
|
||||
"GPU_PACKAGE_POWER",
|
||||
"GPU_AVERAGE_PACKAGE_POWER",
|
||||
"GPU_EDGE_TEMPERATURE",
|
||||
"GPU_JUNCTION_TEMPERATURE",
|
||||
"GPU_MEMORY_TEMPERATURE",
|
||||
"GPU_HBM_TEMPERATURE",
|
||||
"GPU_GFX_ACTIVITY",
|
||||
"GPU_UMC_ACTIVITY",
|
||||
"GPU_MMA_ACTIVITY",
|
||||
"GPU_VCN_ACTIVITY",
|
||||
"GPU_JPEG_ACTIVITY",
|
||||
"GPU_VOLTAGE",
|
||||
"GPU_GFX_VOLTAGE",
|
||||
"GPU_MEMORY_VOLTAGE",
|
||||
"PCIE_SPEED",
|
||||
"PCIE_MAX_SPEED",
|
||||
"PCIE_BANDWIDTH",
|
||||
"GPU_ENERGY_CONSUMED",
|
||||
"PCIE_REPLAY_COUNT",
|
||||
"PCIE_RECOVERY_COUNT",
|
||||
"PCIE_REPLAY_ROLLOVER_COUNT",
|
||||
"PCIE_NACK_SENT_COUNT",
|
||||
"PCIE_NAC_RECEIVED_COUNT",
|
||||
"GPU_CLOCK",
|
||||
"GPU_POWER_USAGE",
|
||||
"GPU_TOTAL_VRAM",
|
||||
"GPU_ECC_CORRECT_TOTAL",
|
||||
"GPU_ECC_UNCORRECT_TOTAL",
|
||||
"GPU_ECC_CORRECT_SDMA",
|
||||
"GPU_ECC_UNCORRECT_SDMA",
|
||||
"GPU_ECC_CORRECT_GFX",
|
||||
"GPU_ECC_UNCORRECT_GFX",
|
||||
"GPU_ECC_CORRECT_MMHUB",
|
||||
"GPU_ECC_UNCORRECT_MMHUB",
|
||||
"GPU_ECC_CORRECT_ATHUB",
|
||||
"GPU_ECC_UNCORRECT_ATHUB",
|
||||
"GPU_ECC_CORRECT_BIF",
|
||||
"GPU_ECC_UNCORRECT_BIF",
|
||||
"GPU_ECC_CORRECT_HDP",
|
||||
"GPU_ECC_UNCORRECT_HDP",
|
||||
"GPU_ECC_CORRECT_XGMI_WAFL",
|
||||
"GPU_ECC_UNCORRECT_XGMI_WAFL",
|
||||
"GPU_ECC_CORRECT_DF",
|
||||
"GPU_ECC_UNCORRECT_DF",
|
||||
"GPU_ECC_CORRECT_SMN",
|
||||
"GPU_ECC_UNCORRECT_SMN",
|
||||
"GPU_ECC_CORRECT_SEM",
|
||||
"GPU_ECC_UNCORRECT_SEM",
|
||||
"GPU_ECC_CORRECT_MP0",
|
||||
"GPU_ECC_UNCORRECT_MP0",
|
||||
"GPU_ECC_CORRECT_MP1",
|
||||
"GPU_ECC_UNCORRECT_MP1",
|
||||
"GPU_ECC_CORRECT_FUSE",
|
||||
"GPU_ECC_UNCORRECT_FUSE",
|
||||
"GPU_ECC_CORRECT_UMC",
|
||||
"GPU_ECC_UNCORRECT_UMC",
|
||||
"GPU_XGMI_NBR_0_NOP_TX",
|
||||
"GPU_XGMI_NBR_0_REQ_TX",
|
||||
"GPU_XGMI_NBR_0_RESP_TX",
|
||||
"GPU_XGMI_NBR_0_BEATS_TX",
|
||||
"GPU_XGMI_NBR_1_NOP_TX",
|
||||
"GPU_XGMI_NBR_1_REQ_TX",
|
||||
"GPU_XGMI_NBR_1_RESP_TX",
|
||||
"GPU_XGMI_NBR_1_BEATS_TX",
|
||||
"GPU_XGMI_NBR_0_TX_THRPUT",
|
||||
"GPU_XGMI_NBR_1_TX_THRPUT",
|
||||
"GPU_XGMI_NBR_2_TX_THRPUT",
|
||||
"GPU_XGMI_NBR_3_TX_THRPUT",
|
||||
"GPU_XGMI_NBR_4_TX_THRPUT",
|
||||
"GPU_XGMI_NBR_5_TX_THRPUT",
|
||||
"GPU_USED_VRAM",
|
||||
"GPU_FREE_VRAM",
|
||||
"GPU_TOTAL_VISIBLE_VRAM",
|
||||
"GPU_USED_VISIBLE_VRAM",
|
||||
"GPU_FREE_VISIBLE_VRAM",
|
||||
"GPU_TOTAL_GTT",
|
||||
"GPU_USED_GTT",
|
||||
"GPU_FREE_GTT",
|
||||
"GPU_ECC_CORRECT_MCA",
|
||||
"GPU_ECC_UNCORRECT_MCA",
|
||||
"GPU_ECC_CORRECT_VCN",
|
||||
"GPU_ECC_UNCORRECT_VCN",
|
||||
"GPU_ECC_CORRECT_JPEG",
|
||||
"GPU_ECC_UNCORRECT_JPEG",
|
||||
"GPU_ECC_CORRECT_IH",
|
||||
"GPU_ECC_UNCORRECT_IH",
|
||||
"GPU_ECC_CORRECT_MPIO",
|
||||
"GPU_ECC_UNCORRECT_MPIO"
|
||||
],
|
||||
"Labels": [
|
||||
"GPU_UUID",
|
||||
"SERIAL_NUMBER",
|
||||
"GPU_ID",
|
||||
"POD",
|
||||
"NAMESPACE",
|
||||
"CONTAINER",
|
||||
"CLUSTER_NAME",
|
||||
"CARD_SERIES",
|
||||
"CARD_MODEL",
|
||||
"CARD_VENDOR",
|
||||
"DRIVER_VERSION",
|
||||
"VBIOS_VERSION",
|
||||
"HOSTNAME"
|
||||
],
|
||||
"ExtraPodLabels" : {
|
||||
"WORKLOAD_ID" : "airm.silogen.ai/workload-id",
|
||||
"USERGROUP_ID" : "airm.silogen.ai/usergroup-id",
|
||||
"PROJECT_ID" : "airm.silogen.ai/project-id"
|
||||
},
|
||||
"CustomLabels" : {
|
||||
"ORG_NAME" : "demo",
|
||||
"KUBE_CLUSTER_NAME" : "demo-cluster"
|
||||
}
|
||||
}
|
||||
}
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: gpu-config
|
||||
namespace: kube-amd-gpu
|
||||
@ -0,0 +1,835 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.0
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
name: deviceconfigs.amd.com
|
||||
spec:
|
||||
group: amd.com
|
||||
names:
|
||||
kind: DeviceConfig
|
||||
listKind: DeviceConfigList
|
||||
plural: deviceconfigs
|
||||
shortNames:
|
||||
- gpue
|
||||
singular: deviceconfig
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
commonConfig:
|
||||
properties:
|
||||
initContainerImage:
|
||||
type: string
|
||||
utilsContainer:
|
||||
properties:
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
type: object
|
||||
configManager:
|
||||
properties:
|
||||
config:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
configManagerTolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
enable:
|
||||
type: boolean
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
selector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
upgradePolicy:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
default: 1
|
||||
format: int32
|
||||
type: integer
|
||||
upgradeStrategy:
|
||||
enum:
|
||||
- RollingUpdate
|
||||
- OnDelete
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
devicePlugin:
|
||||
properties:
|
||||
devicePluginArguments:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
devicePluginImage:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
devicePluginImagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
devicePluginTolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
enableNodeLabeller:
|
||||
default: true
|
||||
type: boolean
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
nodeLabellerArguments:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
nodeLabellerImage:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
nodeLabellerImagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
nodeLabellerTolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
upgradePolicy:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
default: 1
|
||||
format: int32
|
||||
type: integer
|
||||
upgradeStrategy:
|
||||
enum:
|
||||
- RollingUpdate
|
||||
- OnDelete
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
driver:
|
||||
properties:
|
||||
amdgpuInstallerRepoURL:
|
||||
type: string
|
||||
blacklist:
|
||||
type: boolean
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[$a-zA-Z0-9_]+(?:[._-][$a-zA-Z0-9_]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
imageRegistryTLS:
|
||||
properties:
|
||||
insecure:
|
||||
type: boolean
|
||||
insecureSkipTLSVerify:
|
||||
type: boolean
|
||||
type: object
|
||||
imageSign:
|
||||
properties:
|
||||
certSecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
keySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
upgradePolicy:
|
||||
properties:
|
||||
enable:
|
||||
type: boolean
|
||||
maxParallelUpgrades:
|
||||
default: 1
|
||||
minimum: 0
|
||||
type: integer
|
||||
maxUnavailableNodes:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
default: 25%
|
||||
x-kubernetes-int-or-string: true
|
||||
nodeDrainPolicy:
|
||||
properties:
|
||||
force:
|
||||
default: false
|
||||
type: boolean
|
||||
gracePeriodSeconds:
|
||||
default: -1
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
default: 300
|
||||
minimum: 0
|
||||
type: integer
|
||||
type: object
|
||||
podDeletionPolicy:
|
||||
properties:
|
||||
force:
|
||||
default: false
|
||||
type: boolean
|
||||
gracePeriodSeconds:
|
||||
default: -1
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
default: 300
|
||||
minimum: 0
|
||||
type: integer
|
||||
type: object
|
||||
rebootRequired:
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
version:
|
||||
type: string
|
||||
type: object
|
||||
metricsExporter:
|
||||
properties:
|
||||
config:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
enable:
|
||||
type: boolean
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
nodePort:
|
||||
format: int32
|
||||
maximum: 32767
|
||||
minimum: 30000
|
||||
type: integer
|
||||
port:
|
||||
default: 5000
|
||||
format: int32
|
||||
type: integer
|
||||
prometheus:
|
||||
properties:
|
||||
serviceMonitor:
|
||||
properties:
|
||||
attachMetadata:
|
||||
properties:
|
||||
node:
|
||||
type: boolean
|
||||
type: object
|
||||
authorization:
|
||||
properties:
|
||||
credentials:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type:
|
||||
type: string
|
||||
type: object
|
||||
bearerTokenFile:
|
||||
type: string
|
||||
enable:
|
||||
type: boolean
|
||||
honorLabels:
|
||||
default: true
|
||||
type: boolean
|
||||
honorTimestamps:
|
||||
type: boolean
|
||||
interval:
|
||||
pattern: ^([0-9]+)(ms|s|m|h)$
|
||||
type: string
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
metricRelabelings:
|
||||
items:
|
||||
properties:
|
||||
action:
|
||||
default: replace
|
||||
enum:
|
||||
- replace
|
||||
- Replace
|
||||
- keep
|
||||
- Keep
|
||||
- drop
|
||||
- Drop
|
||||
- hashmod
|
||||
- HashMod
|
||||
- labelmap
|
||||
- LabelMap
|
||||
- labeldrop
|
||||
- LabelDrop
|
||||
- labelkeep
|
||||
- LabelKeep
|
||||
- lowercase
|
||||
- Lowercase
|
||||
- uppercase
|
||||
- Uppercase
|
||||
- keepequal
|
||||
- KeepEqual
|
||||
- dropequal
|
||||
- DropEqual
|
||||
type: string
|
||||
modulus:
|
||||
format: int64
|
||||
type: integer
|
||||
regex:
|
||||
type: string
|
||||
replacement:
|
||||
type: string
|
||||
separator:
|
||||
type: string
|
||||
sourceLabels:
|
||||
items:
|
||||
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
|
||||
type: string
|
||||
type: array
|
||||
targetLabel:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
relabelings:
|
||||
items:
|
||||
properties:
|
||||
action:
|
||||
default: replace
|
||||
enum:
|
||||
- replace
|
||||
- Replace
|
||||
- keep
|
||||
- Keep
|
||||
- drop
|
||||
- Drop
|
||||
- hashmod
|
||||
- HashMod
|
||||
- labelmap
|
||||
- LabelMap
|
||||
- labeldrop
|
||||
- LabelDrop
|
||||
- labelkeep
|
||||
- LabelKeep
|
||||
- lowercase
|
||||
- Lowercase
|
||||
- uppercase
|
||||
- Uppercase
|
||||
- keepequal
|
||||
- KeepEqual
|
||||
- dropequal
|
||||
- DropEqual
|
||||
type: string
|
||||
modulus:
|
||||
format: int64
|
||||
type: integer
|
||||
regex:
|
||||
type: string
|
||||
replacement:
|
||||
type: string
|
||||
separator:
|
||||
type: string
|
||||
sourceLabels:
|
||||
items:
|
||||
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
|
||||
type: string
|
||||
type: array
|
||||
targetLabel:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
tlsConfig:
|
||||
properties:
|
||||
ca:
|
||||
properties:
|
||||
configMap:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
secret:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
caFile:
|
||||
type: string
|
||||
cert:
|
||||
properties:
|
||||
configMap:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
secret:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
certFile:
|
||||
type: string
|
||||
insecureSkipVerify:
|
||||
type: boolean
|
||||
keyFile:
|
||||
type: string
|
||||
keySecret:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
maxVersion:
|
||||
enum:
|
||||
- TLS10
|
||||
- TLS11
|
||||
- TLS12
|
||||
- TLS13
|
||||
type: string
|
||||
minVersion:
|
||||
enum:
|
||||
- TLS10
|
||||
- TLS11
|
||||
- TLS12
|
||||
- TLS13
|
||||
type: string
|
||||
serverName:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
rbacConfig:
|
||||
properties:
|
||||
clientCAConfigMap:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
disableHttps:
|
||||
type: boolean
|
||||
enable:
|
||||
type: boolean
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
secret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
staticAuthorization:
|
||||
properties:
|
||||
clientName:
|
||||
type: string
|
||||
enable:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
selector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
serviceType:
|
||||
default: ClusterIP
|
||||
enum:
|
||||
- ClusterIP
|
||||
- NodePort
|
||||
type: string
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
upgradePolicy:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
default: 1
|
||||
format: int32
|
||||
type: integer
|
||||
upgradeStrategy:
|
||||
enum:
|
||||
- RollingUpdate
|
||||
- OnDelete
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
selector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
testRunner:
|
||||
properties:
|
||||
config:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
enable:
|
||||
type: boolean
|
||||
image:
|
||||
pattern: ^([a-z0-9]+(?:[._-][a-z0-9]+)*(:[0-9]+)?)(/[a-z0-9]+(?:[._-][a-z0-9]+)*)*(?::[a-z0-9._-]+)?(?:@[a-zA-Z0-9]+:[a-f0-9]+)?$
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
enum:
|
||||
- Always
|
||||
- IfNotPresent
|
||||
- Never
|
||||
type: string
|
||||
imageRegistrySecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
logsLocation:
|
||||
properties:
|
||||
hostPath:
|
||||
default: /var/log/amd-test-runner
|
||||
type: string
|
||||
logsExportSecrets:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: array
|
||||
mountPath:
|
||||
default: /var/log/amd-test-runner
|
||||
type: string
|
||||
type: object
|
||||
selector:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
upgradePolicy:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
default: 1
|
||||
format: int32
|
||||
type: integer
|
||||
upgradeStrategy:
|
||||
enum:
|
||||
- RollingUpdate
|
||||
- OnDelete
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
maxLength: 32768
|
||||
type: string
|
||||
observedGeneration:
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
reason:
|
||||
maxLength: 1024
|
||||
minLength: 1
|
||||
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||
type: string
|
||||
status:
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
- Unknown
|
||||
type: string
|
||||
type:
|
||||
maxLength: 316
|
||||
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||
type: string
|
||||
required:
|
||||
- lastTransitionTime
|
||||
- message
|
||||
- reason
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
configManager:
|
||||
properties:
|
||||
availableNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
desiredNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
nodesMatchingSelectorNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
devicePlugin:
|
||||
properties:
|
||||
availableNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
desiredNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
nodesMatchingSelectorNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
driver:
|
||||
properties:
|
||||
availableNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
desiredNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
nodesMatchingSelectorNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
metricsExporter:
|
||||
properties:
|
||||
availableNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
desiredNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
nodesMatchingSelectorNumber:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
nodeModuleStatus:
|
||||
additionalProperties:
|
||||
properties:
|
||||
bootId:
|
||||
type: string
|
||||
containerImage:
|
||||
type: string
|
||||
kernelVersion:
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
upgradeStartTime:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
observedGeneration:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,181 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: nodefeaturegroups.nfd.k8s-sigs.io
|
||||
spec:
|
||||
group: nfd.k8s-sigs.io
|
||||
names:
|
||||
kind: NodeFeatureGroup
|
||||
listKind: NodeFeatureGroupList
|
||||
plural: nodefeaturegroups
|
||||
shortNames:
|
||||
- nfg
|
||||
singular: nodefeaturegroup
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
featureGroupRules:
|
||||
items:
|
||||
properties:
|
||||
matchAny:
|
||||
items:
|
||||
properties:
|
||||
matchFeatures:
|
||||
items:
|
||||
properties:
|
||||
feature:
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
type: object
|
||||
matchName:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- matchFeatures
|
||||
type: object
|
||||
type: array
|
||||
matchFeatures:
|
||||
items:
|
||||
properties:
|
||||
feature:
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
type: object
|
||||
matchName:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- featureGroupRules
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
nodes:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@ -0,0 +1,201 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: nodefeaturerules.nfd.k8s-sigs.io
|
||||
spec:
|
||||
group: nfd.k8s-sigs.io
|
||||
names:
|
||||
kind: NodeFeatureRule
|
||||
listKind: NodeFeatureRuleList
|
||||
plural: nodefeaturerules
|
||||
shortNames:
|
||||
- nfr
|
||||
singular: nodefeaturerule
|
||||
scope: Cluster
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
rules:
|
||||
items:
|
||||
properties:
|
||||
annotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
extendedResources:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
labelsTemplate:
|
||||
type: string
|
||||
matchAny:
|
||||
items:
|
||||
properties:
|
||||
matchFeatures:
|
||||
items:
|
||||
properties:
|
||||
feature:
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
type: object
|
||||
matchName:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- matchFeatures
|
||||
type: object
|
||||
type: array
|
||||
matchFeatures:
|
||||
items:
|
||||
properties:
|
||||
feature:
|
||||
type: string
|
||||
matchExpressions:
|
||||
additionalProperties:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
type: object
|
||||
matchName:
|
||||
properties:
|
||||
op:
|
||||
enum:
|
||||
- In
|
||||
- NotIn
|
||||
- InRegexp
|
||||
- Exists
|
||||
- DoesNotExist
|
||||
- Gt
|
||||
- Lt
|
||||
- GtLt
|
||||
- IsTrue
|
||||
- IsFalse
|
||||
type: string
|
||||
value:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- op
|
||||
type: object
|
||||
required:
|
||||
- feature
|
||||
type: object
|
||||
type: array
|
||||
name:
|
||||
type: string
|
||||
taints:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
timeAdded:
|
||||
format: date-time
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- effect
|
||||
- key
|
||||
type: object
|
||||
type: array
|
||||
vars:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
varsTemplate:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- rules
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
@ -0,0 +1,81 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: nodefeatures.nfd.k8s-sigs.io
|
||||
spec:
|
||||
group: nfd.k8s-sigs.io
|
||||
names:
|
||||
kind: NodeFeature
|
||||
listKind: NodeFeatureList
|
||||
plural: nodefeatures
|
||||
singular: nodefeature
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
features:
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
type: object
|
||||
flags:
|
||||
additionalProperties:
|
||||
properties:
|
||||
elements:
|
||||
additionalProperties:
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
type: object
|
||||
instances:
|
||||
additionalProperties:
|
||||
properties:
|
||||
elements:
|
||||
items:
|
||||
properties:
|
||||
attributes:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- attributes
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- elements
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
@ -0,0 +1,269 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: nodemodulesconfigs.kmm.sigs.x-k8s.io
|
||||
spec:
|
||||
group: kmm.sigs.x-k8s.io
|
||||
names:
|
||||
kind: NodeModulesConfig
|
||||
listKind: NodeModulesConfigList
|
||||
plural: nodemodulesconfigs
|
||||
shortNames:
|
||||
- nmc
|
||||
singular: nodemodulesconfig
|
||||
scope: Cluster
|
||||
versions:
|
||||
- name: v1beta1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
modules:
|
||||
items:
|
||||
properties:
|
||||
config:
|
||||
properties:
|
||||
containerImage:
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
default: IfNotPresent
|
||||
type: string
|
||||
inTreeModuleToRemove:
|
||||
type: string
|
||||
inTreeModulesToRemove:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
insecurePull:
|
||||
type: boolean
|
||||
kernelVersion:
|
||||
type: string
|
||||
modprobe:
|
||||
properties:
|
||||
args:
|
||||
properties:
|
||||
load:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
unload:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
type: object
|
||||
dirName:
|
||||
default: /opt
|
||||
type: string
|
||||
firmwarePath:
|
||||
type: string
|
||||
moduleName:
|
||||
type: string
|
||||
modulesLoadingOrder:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
parameters:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
rawArgs:
|
||||
properties:
|
||||
load:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
unload:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- containerImage
|
||||
- imagePullPolicy
|
||||
- insecurePull
|
||||
- kernelVersion
|
||||
- modprobe
|
||||
type: object
|
||||
imageRepoSecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
name:
|
||||
type: string
|
||||
namespace:
|
||||
type: string
|
||||
serviceAccountName:
|
||||
type: string
|
||||
required:
|
||||
- config
|
||||
- name
|
||||
- namespace
|
||||
- serviceAccountName
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
modules:
|
||||
items:
|
||||
properties:
|
||||
bootId:
|
||||
type: string
|
||||
config:
|
||||
properties:
|
||||
containerImage:
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
default: IfNotPresent
|
||||
type: string
|
||||
inTreeModuleToRemove:
|
||||
type: string
|
||||
inTreeModulesToRemove:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
insecurePull:
|
||||
type: boolean
|
||||
kernelVersion:
|
||||
type: string
|
||||
modprobe:
|
||||
properties:
|
||||
args:
|
||||
properties:
|
||||
load:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
unload:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
type: object
|
||||
dirName:
|
||||
default: /opt
|
||||
type: string
|
||||
firmwarePath:
|
||||
type: string
|
||||
moduleName:
|
||||
type: string
|
||||
modulesLoadingOrder:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
parameters:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
rawArgs:
|
||||
properties:
|
||||
load:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
unload:
|
||||
items:
|
||||
type: string
|
||||
minItems: 1
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- containerImage
|
||||
- imagePullPolicy
|
||||
- insecurePull
|
||||
- kernelVersion
|
||||
- modprobe
|
||||
type: object
|
||||
imageRepoSecret:
|
||||
properties:
|
||||
name:
|
||||
default: ""
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
namespace:
|
||||
type: string
|
||||
serviceAccountName:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- namespace
|
||||
- serviceAccountName
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
@ -0,0 +1,165 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: kube-amd-gpu/amd-gpu-operator-kmm-serving-cert
|
||||
controller-gen.kubebuilder.io/version: v0.16.1
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
name: preflightvalidations.kmm.sigs.x-k8s.io
|
||||
spec:
|
||||
conversion:
|
||||
strategy: Webhook
|
||||
webhook:
|
||||
clientConfig:
|
||||
service:
|
||||
name: amd-gpu-operator-kmm-webhook-service
|
||||
namespace: kube-amd-gpu
|
||||
path: /convert
|
||||
conversionReviewVersions:
|
||||
- v1beta2
|
||||
- v1beta1
|
||||
group: kmm.sigs.x-k8s.io
|
||||
names:
|
||||
kind: PreflightValidation
|
||||
listKind: PreflightValidationList
|
||||
plural: preflightvalidations
|
||||
shortNames:
|
||||
- pfv
|
||||
singular: preflightvalidation
|
||||
scope: Cluster
|
||||
versions:
|
||||
- deprecated: true
|
||||
name: v1beta1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
kernelVersion:
|
||||
type: string
|
||||
pushBuiltImage:
|
||||
type: boolean
|
||||
required:
|
||||
- kernelVersion
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
crStatuses:
|
||||
additionalProperties:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
statusReason:
|
||||
type: string
|
||||
verificationStage:
|
||||
enum:
|
||||
- Image
|
||||
- Build
|
||||
- Sign
|
||||
- Requeued
|
||||
- Done
|
||||
type: string
|
||||
verificationStatus:
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
type: string
|
||||
required:
|
||||
- lastTransitionTime
|
||||
- verificationStage
|
||||
- verificationStatus
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: false
|
||||
subresources:
|
||||
status: {}
|
||||
- name: v1beta2
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
kernelVersion:
|
||||
type: string
|
||||
pushBuiltImage:
|
||||
type: boolean
|
||||
required:
|
||||
- kernelVersion
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
modules:
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
namespace:
|
||||
type: string
|
||||
statusReason:
|
||||
type: string
|
||||
verificationStage:
|
||||
enum:
|
||||
- Image
|
||||
- Build
|
||||
- Sign
|
||||
- Requeued
|
||||
- Done
|
||||
type: string
|
||||
verificationStatus:
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
type: string
|
||||
required:
|
||||
- lastTransitionTime
|
||||
- name
|
||||
- namespace
|
||||
- verificationStage
|
||||
- verificationStatus
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- namespace
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
@ -0,0 +1,141 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
app.kubernetes.io/version: v0.16.1
|
||||
role: worker
|
||||
name: amd-gpu-operator-node-feature-discovery-worker
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
role: worker
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: node-feature-discovery
|
||||
role: worker
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- -feature-gates=NodeFeatureAPI=true
|
||||
- -feature-gates=NodeFeatureGroupAPI=false
|
||||
- -metrics=8081
|
||||
command:
|
||||
- nfd-worker
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_UID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.uid
|
||||
image: registry.k8s.io/nfd/node-feature-discovery@sha256:0bd331dc6acf082d3353a7ddad6b5725a13cd141b60b31e97a1cd4cf90da0d99 # Original tag: v0.16.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
grpc:
|
||||
port: 8082
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
name: worker
|
||||
ports:
|
||||
- containerPort: 8081
|
||||
name: metrics
|
||||
readinessProbe:
|
||||
failureThreshold: 10
|
||||
grpc:
|
||||
port: 8082
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 5m
|
||||
memory: 64Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
volumeMounts:
|
||||
- mountPath: /host-boot
|
||||
name: host-boot
|
||||
readOnly: true
|
||||
- mountPath: /host-etc/os-release
|
||||
name: host-os-release
|
||||
readOnly: true
|
||||
- mountPath: /host-sys
|
||||
name: host-sys
|
||||
readOnly: true
|
||||
- mountPath: /host-usr/lib
|
||||
name: host-usr-lib
|
||||
readOnly: true
|
||||
- mountPath: /host-lib
|
||||
name: host-lib
|
||||
readOnly: true
|
||||
- mountPath: /host-proc/swaps
|
||||
name: host-proc-swaps
|
||||
readOnly: true
|
||||
- mountPath: /etc/kubernetes/node-feature-discovery/source.d/
|
||||
name: source-d
|
||||
readOnly: true
|
||||
- mountPath: /etc/kubernetes/node-feature-discovery/features.d/
|
||||
name: features-d
|
||||
readOnly: true
|
||||
- mountPath: /etc/kubernetes/node-feature-discovery
|
||||
name: nfd-worker-conf
|
||||
readOnly: true
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
securityContext: {}
|
||||
serviceAccountName: amd-gpu-operator-node-feature-discovery-worker
|
||||
tolerations:
|
||||
- effect: NoExecute
|
||||
key: amd-dcm
|
||||
operator: Equal
|
||||
value: up
|
||||
volumes:
|
||||
- hostPath:
|
||||
path: /boot
|
||||
name: host-boot
|
||||
- hostPath:
|
||||
path: /etc/os-release
|
||||
name: host-os-release
|
||||
- hostPath:
|
||||
path: /sys
|
||||
name: host-sys
|
||||
- hostPath:
|
||||
path: /usr/lib
|
||||
name: host-usr-lib
|
||||
- hostPath:
|
||||
path: /lib
|
||||
name: host-lib
|
||||
- hostPath:
|
||||
path: /proc/swaps
|
||||
name: host-proc-swaps
|
||||
- hostPath:
|
||||
path: /etc/kubernetes/node-feature-discovery/source.d/
|
||||
name: source-d
|
||||
- hostPath:
|
||||
path: /etc/kubernetes/node-feature-discovery/features.d/
|
||||
name: features-d
|
||||
- configMap:
|
||||
items:
|
||||
- key: nfd-worker.conf
|
||||
path: nfd-worker.conf
|
||||
name: amd-gpu-operator-node-feature-discovery-worker-conf
|
||||
name: nfd-worker-conf
|
||||
@ -0,0 +1,99 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
app.kubernetes.io/version: v1.3.0
|
||||
control-plane: controller-manager
|
||||
name: amd-gpu-operator-gpu-operator-charts-controller-manager
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
control-plane: controller-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: manager
|
||||
labels:
|
||||
app.kubernetes.io/component: amd-gpu
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: gpu-operator-charts
|
||||
app.kubernetes.io/part-of: amd-gpu
|
||||
control-plane: controller-manager
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- preference:
|
||||
matchExpressions:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
weight: 1
|
||||
containers:
|
||||
- args:
|
||||
- --config=controller_manager_config.yaml
|
||||
env:
|
||||
- name: OPERATOR_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: KUBERNETES_CLUSTER_DOMAIN
|
||||
value: cluster.local
|
||||
- name: SIM_ENABLE
|
||||
value: "false"
|
||||
image: docker.io/rocm/gpu-operator@sha256:58ac66493b185891c228ccf7c88c88973ace8ec5b59716cc6ddffd3a428c3cef # Original tag: v1.3.0
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
name: manager
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
volumeMounts:
|
||||
- mountPath: /controller_manager_config.yaml
|
||||
name: manager-config
|
||||
subPath: controller_manager_config.yaml
|
||||
nodeSelector: {}
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
serviceAccountName: amd-gpu-operator-gpu-operator-charts-controller-manager
|
||||
terminationGracePeriodSeconds: 10
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
operator: Equal
|
||||
value: ""
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
||||
operator: Equal
|
||||
value: ""
|
||||
volumes:
|
||||
- configMap:
|
||||
name: amd-gpu-operator-gpu-operator-charts-manager-config
|
||||
name: manager-config
|
||||
107
amd-gpu-operator/Deployment_amd-gpu-operator-kmm-controller.yaml
Normal file
107
amd-gpu-operator/Deployment_amd-gpu-operator-kmm-controller.yaml
Normal file
@ -0,0 +1,107 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
control-plane: controller
|
||||
name: amd-gpu-operator-kmm-controller
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
control-plane: controller
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: manager
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
control-plane: controller
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- preference:
|
||||
matchExpressions:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
weight: 1
|
||||
containers:
|
||||
- args:
|
||||
- --config=controller_config.yaml
|
||||
env:
|
||||
- name: RELATED_IMAGE_WORKER
|
||||
value: docker.io/rocm/kernel-module-management-worker:v1.3.0
|
||||
- name: OPERATOR_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: RELATED_IMAGE_BUILD
|
||||
value: gcr.io/kaniko-project/executor:v1.23.2
|
||||
- name: RELATED_IMAGE_SIGN
|
||||
value: docker.io/rocm/kernel-module-management-signimage:v1.3.0
|
||||
- name: KUBERNETES_CLUSTER_DOMAIN
|
||||
value: cluster.local
|
||||
image: docker.io/rocm/kernel-module-management-operator@sha256:f23a83159aa037a7511d2f8d881a96bfdda8c3b3efb121254a764319ebe94089 # Original tag: v1.3.0
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 384Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
volumeMounts:
|
||||
- mountPath: /controller_config.yaml
|
||||
name: manager-config
|
||||
subPath: controller_config.yaml
|
||||
nodeSelector: {}
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
serviceAccountName: amd-gpu-operator-kmm-controller
|
||||
terminationGracePeriodSeconds: 10
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
operator: Equal
|
||||
value: ""
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
||||
operator: Equal
|
||||
value: ""
|
||||
volumes:
|
||||
- configMap:
|
||||
name: amd-gpu-operator-kmm-manager-config
|
||||
name: manager-config
|
||||
@ -0,0 +1,107 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
app.kubernetes.io/version: v20240618-v2.1.1
|
||||
control-plane: webhook-server
|
||||
name: amd-gpu-operator-kmm-webhook-server
|
||||
namespace: kube-amd-gpu
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
control-plane: webhook-server
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: webhook-server
|
||||
labels:
|
||||
app.kubernetes.io/component: kmm
|
||||
app.kubernetes.io/instance: amd-gpu-operator
|
||||
app.kubernetes.io/name: kmm
|
||||
app.kubernetes.io/part-of: kmm
|
||||
control-plane: webhook-server
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- preference:
|
||||
matchExpressions:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
weight: 1
|
||||
containers:
|
||||
- args:
|
||||
- --config=controller_config.yaml
|
||||
- --enable-module
|
||||
- --enable-namespace
|
||||
- --enable-preflightvalidation
|
||||
env:
|
||||
- name: KUBERNETES_CLUSTER_DOMAIN
|
||||
value: cluster.local
|
||||
image: docker.io/rocm/kernel-module-management-webhook-server@sha256:8b31959473da74e9d94c81c2e529cef74b1c9b19006430f038cfd51bf6bc839e # Original tag: v1.3.0
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
name: webhook-server
|
||||
ports:
|
||||
- containerPort: 9443
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 384Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
||||
- mountPath: /controller_config.yaml
|
||||
name: manager-config
|
||||
subPath: controller_config.yaml
|
||||
nodeSelector: {}
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
serviceAccountName: amd-gpu-operator-kmm-controller
|
||||
terminationGracePeriodSeconds: 10
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
operator: Equal
|
||||
value: ""
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
||||
operator: Equal
|
||||
value: ""
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kmm-operator-webhook-server-cert
|
||||
- configMap:
|
||||
name: amd-gpu-operator-kmm-manager-config
|
||||
name: manager-config
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user