-
Notifications
You must be signed in to change notification settings - Fork 17
Closed
Milestone
Description
We are going to release MVP (v0.1.0) and we need a stable spec. Here is the corrected version of the spec from this proposal: #62 (original author: @sergeyshevch).
I'm going to use this meta-issue to link all parts for implementing this:
- Add PDB to EtcdCluster spec and implement validation webhhoks #93
- Add EtcdCluster resource examples #114
- Rename podSpec to podTemplate and podDistruptionBudget to podDistruptionBudgetTemplate #110
- Add serviceTemplate #115
- Add missing fields for podTemplate.spec #107
- Add the ability to specify volumes and containers #113
---
apiVersion: etcd.aenix.io/v1alpha1
kind: EtcdCluster
metadata:
name: test
namespace: default
spec:
replicas: 3
options: # map[string]string
election-timeout: "1000"
max-wals: "5"
max-snapshots: "5"
storage:
emptyDir: {} # core.v1.EmptyDirVolumeSource Ready k8s type
volumeClaimTemplate:
metadata:
labels:
env: prod
annotations:
example.com/annotation: "true"
spec: # core.v1.PersistentVolumeClaimSpec Ready k8s type
storageClassName: gp3
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
podTemplate:
metadata:
labels:
env: prod
annotations:
example.com/annotation: "true"
spec:
imagePullSecrets: # core.v1.LocalObjectReference Ready k8s type
- name: myregistrykey
serviceAccountName: default
affinity: {} # core.v1.Affinity Ready k8s type
nodeSelector: {} # map[string]string
tolerations: [] # core.v1.Toleration Ready k8s type
securityContext: {} # core.v1.PodSecurityContext Ready k8s type
priorityClassName: "low"
topologySpreadConstraints: [] # core.v1.TopologySpreadConstraint Ready k8s type
terminationGracePeriodSeconds: 30 # int64
schedulerName: "default-scheduler"
runtimeClassName: "legacy"
readinessGates: [] # core.v1.PodReadinessGate Ready k8s type
containers: # []v1.Container
- name: etcd
image: "quay.io/coreos/etcd:v3.5.12"
imagePullPolicy: Always
resources: # core.v1.ResourceRequirements Ready k8s type
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 200m
memory: 200Mi
volumes: [] # []v1.Volume
serviceTemplate:
metadata:
labels:
env: prod
annotations:
example.com/annotation: "true"
spec: # core.v1.ServiceSpec Ready k8s type
podDisruptionBudgetTemplate:
metadata:
labels:
env: prod
annotations:
example.com/annotation: "true"
spec:
maxUnavailable: 1 # intstr.IntOrString
minAvailable: 2
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2024-03-06T18:39:45Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2024-03-06T18:39:45Z"
status: "True"
type: Initialized
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done