Skip to content

Commit 4f34364

Browse files
feat(deployment): add Volumes and ExtraVolumes to PodSpec
1 parent f41eae4 commit 4f34364

File tree

9 files changed

+5614
-28
lines changed

9 files changed

+5614
-28
lines changed

api/common/oidc_types.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ type RoleBindings struct {
6363
RoleRefs []RoleRef `json:"roleRefs"`
6464
}
6565

66-
// +kubebuilder:validation:XValidation:rule="self.kind == 'Role' && has(self.namespace) && self.namespace != ”", message="namespace must be set if kind is 'Role'"
67-
// +kubebuilder:validation:XValidation:rule="self.kind == 'ClusterRole' && (!has(self.namespace) || self.namespace == ”)", message="namespace must not be set if kind is 'ClusterRole'"
6866
type RoleRef struct {
6967
// Name is the name of the role or cluster role to bind to the subjects.
7068
// +kubebuilder:validation:MinLength=1

api/crds/manifests/clusters.openmcp.cloud_accessrequests.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,6 @@ spec:
139139
- kind
140140
- name
141141
type: object
142-
x-kubernetes-validations:
143-
- message: namespace must be set if kind is 'Role'
144-
rule: self.kind == 'Role' && has(self.namespace) &&
145-
self.namespace != ”
146-
- message: namespace must not be set if kind is 'ClusterRole'
147-
rule: self.kind == 'ClusterRole' && (!has(self.namespace)
148-
|| self.namespace == ”)
149142
type: array
150143
subjects:
151144
description: |-

api/crds/manifests/core.openmcp.cloud_managedcontrolplanev2s.yaml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,6 @@ spec:
123123
- kind
124124
- name
125125
type: object
126-
x-kubernetes-validations:
127-
- message: namespace must be set if kind is 'Role'
128-
rule: self.kind == 'Role' && has(self.namespace)
129-
&& self.namespace != ”
130-
- message: namespace must not be set if kind is
131-
'ClusterRole'
132-
rule: self.kind == 'ClusterRole' && (!has(self.namespace)
133-
|| self.namespace == ”)
134126
type: array
135127
subjects:
136128
description: |-
@@ -232,13 +224,6 @@ spec:
232224
- kind
233225
- name
234226
type: object
235-
x-kubernetes-validations:
236-
- message: namespace must be set if kind is 'Role'
237-
rule: self.kind == 'Role' && has(self.namespace) &&
238-
self.namespace != ”
239-
- message: namespace must not be set if kind is 'ClusterRole'
240-
rule: self.kind == 'ClusterRole' && (!has(self.namespace)
241-
|| self.namespace == ”)
242227
type: array
243228
subjects:
244229
description: |-

api/crds/manifests/openmcp.cloud_clusterproviders.yaml

Lines changed: 1858 additions & 0 deletions
Large diffs are not rendered by default.

api/crds/manifests/openmcp.cloud_platformservices.yaml

Lines changed: 1858 additions & 0 deletions
Large diffs are not rendered by default.

api/crds/manifests/openmcp.cloud_serviceproviders.yaml

Lines changed: 1858 additions & 0 deletions
Large diffs are not rendered by default.

api/provider/v1alpha1/deployment_types.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha1
1818

1919
import (
20+
corev1 "k8s.io/api/core/v1"
2021
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2122
)
2223

@@ -45,6 +46,24 @@ type DeploymentSpec struct {
4546
// +kubebuilder:validation:Enum=DEBUG;INFO;ERROR
4647
// +kubebuilder:default=INFO
4748
Verbosity string `json:"verbosity,omitempty"`
49+
50+
// List of additional volumes that are mounted in the main container.
51+
// More info: https://kubernetes.io/docs/concepts/storage/volumes
52+
// +optional
53+
// +patchMergeKey=name
54+
// +patchStrategy=merge,retainKeys
55+
// +listType=map
56+
// +listMapKey=name
57+
ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"`
58+
59+
// List of additional volume mounts that are mounted in the main container.
60+
// Cannot be updated.
61+
// +optional
62+
// +patchMergeKey=mountPath
63+
// +patchStrategy=merge
64+
// +listType=map
65+
// +listMapKey=mountPath
66+
ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath"`
4867
}
4968

5069
// DeploymentStatus defines the observed state of a provider.

api/provider/v1alpha1/zz_generated.deepcopy.go

Lines changed: 18 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controllers/provider/install/deployment.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,13 @@ func (m *deploymentMutator) Mutate(d *appsv1.Deployment) error {
7575
"--verbosity=" + m.values.Verbosity(),
7676
"--provider-name=" + m.values.provider.GetName(),
7777
},
78-
Env: env,
78+
Env: env,
79+
VolumeMounts: m.values.deploymentSpec.ExtraVolumeMounts,
7980
},
8081
},
8182
ImagePullSecrets: m.values.ImagePullSecrets(),
8283
ServiceAccountName: m.values.NamespacedDefaultResourceName(),
84+
Volumes: m.values.deploymentSpec.ExtraVolumes,
8385
},
8486
},
8587
}

0 commit comments

Comments
 (0)