@@ -17,6 +17,9 @@ limitations under the License.
1717package v1alpha1
1818
1919import (
20+ appsv1 "k8s.io/api/apps/v1"
21+ corev1 "k8s.io/api/core/v1"
22+ networkingv1 "k8s.io/api/networking/v1"
2023 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2124)
2225
@@ -28,13 +31,57 @@ type MarklogicClusterSpec struct {
2831 // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
2932 // Important: Run "make" to regenerate code after modifying this file
3033
31- // Foo is an example field of MarklogicCluster. Edit marklogiccluster_types.go to remove/update
34+ // +kubebuilder:default:="cluster.local"
35+ ClusterDomain string `json:"clusterDomain,omitempty"`
36+
37+ // +kubebuilder:default:="progressofficial/marklogic-db:11.3.0-ubi-rootless"
38+ Image string `json:"image"`
39+ // +kubebuilder:default:="IfNotPresent"
40+ ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
41+ ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
42+
43+ Auth * AdminAuth `json:"auth,omitempty"`
44+ Storage * Storage `json:"storage,omitempty"`
45+ Resources * corev1.ResourceRequirements `json:"resources,omitempty"`
46+ TerminationGracePeriodSeconds * int64 `json:"terminationGracePeriodSeconds,omitempty"`
47+ // +kubebuilder:validation:Enum=OnDelete;RollingUpdate
48+ // +kubebuilder:default:="OnDelete"
49+ UpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"updateStrategy,omitempty"`
50+ NetworkPolicy * networkingv1.NetworkPolicy `json:"networkPolicy,omitempty"`
51+ PodSecurityContext * corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
52+ ContainerSecurityContext * corev1.SecurityContext `json:"securityContext,omitempty"`
53+
54+ Affinity * corev1.Affinity `json:"affinity,omitempty"`
55+ NodeSelector map [string ]string `json:"nodeSelector,omitempty"`
56+ TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
57+ PriorityClassName string `json:"priorityClassName,omitempty"`
58+ License * License `json:"license,omitempty"`
59+ EnableConverters bool `json:"enableConverters,omitempty"`
60+ // +kubebuilder:default:={enabled: false, mountPath: "/dev/hugepages"}
61+ HugePages * HugePages `json:"hugePages,omitempty"`
62+ // +kubebuilder:default:={enabled: false, image: "fluent/fluent-bit:3.1.1", resources: {requests: {cpu: "100m", memory: "200Mi"}, limits: {cpu: "200m", memory: "500Mi"}}, files: {errorLogs: true, accessLogs: true, requestLogs: true}, outputs: "stdout"}
63+ LogCollection * LogCollection `json:"logCollection,omitempty"`
64+
65+ HAProxy HAProxyConfig `json:"haproxy,omitempty"`
66+
3267 MarkLogicGroups []* MarklogicGroups `json:"markLogicGroups,omitempty"`
3368}
3469
3570type MarklogicGroups struct {
36- * MarklogicGroupSpec `json:"spec,omitempty"`
37- IsBootstrap bool `json:"isBootstrap,omitempty"`
71+ Replicas * int32 `json:"replicas,omitempty"`
72+ Name string `json:"name,omitempty"`
73+ Image string `json:"image,omitempty"`
74+ ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
75+ ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
76+ Storage * Storage `json:"storage,omitempty"`
77+ Resources * corev1.ResourceRequirements `json:"resources,omitempty"`
78+ Affinity * corev1.Affinity `json:"affinity,omitempty"`
79+ TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
80+ NodeSelector map [string ]string `json:"nodeSelector,omitempty"`
81+ PriorityClassName string `json:"priorityClassName,omitempty"`
82+ HugePages * HugePages `json:"hugePages,omitempty"`
83+ LogCollection * LogCollection `json:"logCollection,omitempty"`
84+ IsBootstrap bool `json:"isBootstrap,omitempty"`
3885}
3986
4087// MarklogicClusterStatus defines the observed state of MarklogicCluster
0 commit comments