Skip to content

Commit

Permalink
In-Place Node Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasfrank committed Dec 2, 2024
1 parent 0366cc1 commit 2bc8bce
Show file tree
Hide file tree
Showing 20 changed files with 608 additions and 136 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
push:
branches:
- main
- feat/in-place-node-updates
tags:
- v*
paths-ignore:
Expand Down Expand Up @@ -69,7 +70,7 @@ jobs:
version: latest
endpoint: builders # self-hosted
- name: Login to GHCR
if: github.event_name != 'pull_request'
# if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
Expand All @@ -81,7 +82,7 @@ jobs:
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
# push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
target: ${{ matrix.image.target }}
4 changes: 2 additions & 2 deletions example/20-crd-druid.gardener.cloud_etcdcopybackupstasks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: etcdcopybackupstasks.druid.gardener.cloud
spec:
group: druid.gardener.cloud
Expand Down Expand Up @@ -159,7 +159,7 @@ spec:
format: date-time
type: string
message:
description: A human readable message indicating details about
description: A human-readable message indicating details about
the transition.
type: string
reason:
Expand Down
89 changes: 81 additions & 8 deletions example/20-crd-druid.gardener.cloud_etcds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: etcds.druid.gardener.cloud
spec:
group: druid.gardener.cloud
Expand Down Expand Up @@ -208,6 +208,12 @@ spec:
leadership status of corresponding etcd is checked.
type: string
type: object
maxBackupsLimitBasedGC:
description: |-
MaxBackupsLimitBasedGC defines the maximum number of Full snapshots to retain in Limit Based GarbageCollectionPolicy
All full snapshots beyond this limit will be garbage collected.
format: int32
type: integer
port:
description: Port define the port on which etcd-backup-restore
server will be exposed.
Expand Down Expand Up @@ -361,7 +367,8 @@ spec:
type: object
type: object
etcd:
description: EtcdConfig defines parameters associated etcd deployed
description: EtcdConfig defines the configuration for the etcd cluster
to be deployed.
properties:
authSecretRef:
description: |-
Expand Down Expand Up @@ -602,6 +609,12 @@ spec:
serverPort:
format: int32
type: integer
snapshotCount:
description: |-
SnapshotCount defines the number of applied Raft entries to hold in-memory before compaction.
More info: https://etcd.io/docs/v3.4/op-guide/maintenance/#raft-log-retention
format: int64
type: integer
type: object
labels:
additionalProperties:
Expand Down Expand Up @@ -1783,15 +1796,15 @@ spec:
properties:
autoCompactionMode:
description: AutoCompactionMode defines the auto-compaction-mode:'periodic'
mode or 'revision' mode for etcd and embedded-Etcd of backup-restore
mode or 'revision' mode for etcd and embedded-etcd of backup-restore
sidecar.
enum:
- periodic
- revision
type: string
autoCompactionRetention:
description: AutoCompactionRetention defines the auto-compaction-retention
length for etcd as well as for embedded-Etcd of backup-restore
length for etcd as well as for embedded-etcd of backup-restore
sidecar.
type: string
type: object
Expand Down Expand Up @@ -1844,7 +1857,7 @@ spec:
format: date-time
type: string
message:
description: A human readable message indicating details about
description: A human-readable message indicating details about
the transition.
type: string
reason:
Expand Down Expand Up @@ -1937,12 +1950,72 @@ spec:
type: object
x-kubernetes-map-type: atomic
lastError:
description: LastError represents the last occurred error.
description: |-
LastError represents the last occurred error.
Deprecated: Use LastErrors instead.
type: string
lastErrors:
description: LastErrors captures errors that occurred during the last
operation.
items:
description: LastError stores details of the most recent error encountered
for a resource.
properties:
code:
description: Code is an error code that uniquely identifies
an error.
type: string
description:
description: Description is a human-readable message indicating
details of the error.
type: string
observedAt:
description: ObservedAt is the time the error was observed.
format: date-time
type: string
required:
- code
- description
- observedAt
type: object
type: array
lastOperation:
description: LastOperation indicates the last operation performed
on this resource.
properties:
description:
description: Description describes the last operation.
type: string
lastUpdateTime:
description: LastUpdateTime is the time at which the operation
was last updated.
format: date-time
type: string
runID:
description: |-
RunID correlates an operation with a reconciliation run.
Every time an Etcd resource is reconciled (barring status reconciliation which is periodic), a unique ID is
generated which can be used to correlate all actions done as part of a single reconcile run. Capturing this
as part of LastOperation aids in establishing this correlation. This further helps in also easily filtering
reconcile logs as all structured logs in a reconciliation run should have the `runID` referenced.
type: string
state:
description: State is the state of the last operation.
type: string
type:
description: Type is the type of last operation.
type: string
required:
- description
- lastUpdateTime
- runID
- state
- type
type: object
members:
description: Members represents the members of the etcd cluster
items:
description: EtcdMemberStatus holds information about a etcd cluster
description: EtcdMemberStatus holds information about etcd cluster
membership.
properties:
id:
Expand Down Expand Up @@ -1992,7 +2065,7 @@ spec:
format: int32
type: integer
replicas:
description: Replicas is the replica count of the etcd resource.
description: Replicas is the replica count of the etcd cluster.
format: int32
type: integer
serviceName:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: backupbuckets.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: backupentries.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
2 changes: 1 addition & 1 deletion example/20-crd-extensions.gardener.cloud_bastions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: bastions.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
2 changes: 1 addition & 1 deletion example/20-crd-extensions.gardener.cloud_clusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: clusters.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: containerruntimes.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: controlplanes.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
2 changes: 1 addition & 1 deletion example/20-crd-extensions.gardener.cloud_dnsrecords.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: dnsrecords.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
2 changes: 1 addition & 1 deletion example/20-crd-extensions.gardener.cloud_extensions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: extensions.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: infrastructures.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
2 changes: 1 addition & 1 deletion example/20-crd-extensions.gardener.cloud_networks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: networks.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
controller-gen.kubebuilder.io/version: v0.16.5
name: operatingsystemconfigs.extensions.gardener.cloud
spec:
group: extensions.gardener.cloud
Expand Down Expand Up @@ -68,6 +68,19 @@ spec:
x-kubernetes-validations:
- message: Value is immutable
rule: self == oldSelf
credentialsRotation:
description: CredentialsRotation is a structure containing information
about the last initiation time of the CA and ServiceAccountKey rotation.
properties:
caRotationLastInitiationTime:
description: CARotationLastInitiationTime is the time when the
last CA rotation was initiated.
type: string
serviceAccountKeyRotationLastInitiationTime:
description: ServiceAccountKeyRotationLastInitiationTime is the
time when the last ServiceAccountKey rotation was initiated.
type: string
type: object
criConfig:
description: CRI config is a structure contains configurations of
the CRI library
Expand Down Expand Up @@ -262,6 +275,16 @@ spec:
- path
type: object
type: array
kubeletConfigHash:
description: KubeletConfigHash is the hash calculated on fields relevant
for in-place update of the Kubelet configuration.
type: string
kubeletVersion:
description: KubeletVersion is the version of the Kubelet.
type: string
osVersion:
description: OSVersion is the version of the OperatingSystem.
type: string
providerConfig:
description: ProviderConfig is the provider specific configuration.
type: object
Expand Down Expand Up @@ -524,6 +547,21 @@ spec:
- name
type: object
type: array
inPlaceUpdateConfig:
description: InPlaceUpdateConfig contains the configuration for in-place
updates.
properties:
updateScriptArgs:
description: UpdateScriptArgs is the arguments to be passed to
the update script for in-place updates.
items:
type: string
type: array
updateScriptPath:
description: UpdateScriptPath is the path of the update script
to be triggered in case of in-place updates.
type: string
type: object
lastError:
description: LastError holds information about the last occurred error
during an operation.
Expand Down
Loading

0 comments on commit 2bc8bce

Please sign in to comment.