Skip to content

Addon upgrade flux 2.4 #766

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion addons/fluxcd/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: fluxcd
version: 3.0.1
version: 3.1.0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version bump is correct, but there's a bug in the newly added notification-controller.cue file

description: Extended workload to do continuous and progressive delivery
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/flux/horizontal/color/flux-horizontal-color.png
url: https://fluxcd.io
Expand Down
26 changes: 26 additions & 0 deletions addons/fluxcd/parameter.cue
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,38 @@ parameter: {
onlyHelmComponents: *false | bool
//+usage=advanced options for Helm Controller
helmControllerOptions?: [...string]
//+usage=advanced options for Helm Controller
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect comment for resource limits parameter. The comment should describe resource limits, not 'advanced options'.

helmControllerResourceLimits?: {}
//+usage=advanced options for Helm Controller
helmControllerResourceRequests?: {}
//+usage=advanced options for Source Controller
sourceControllerOptions?: [...string]
//+usage=advanced options for Source Controller
sourceControllerResourceLimits?: {}
//+usage=advanced options for Source Controller
sourceControllerResourceRequests?: {}
//+usage=advanced options for Kustomize Controller
kustomizeControllerOptions?: [...string]
//+usage=advanced options for Kustomize Controller
kustomizeControllerResourceLimits?: {}
//+usage=advanced options for Kustomize Controller
kustomizeControllerResourceRequests?: {}
//+usage=advanced options for Image Reflector Controller
imageReflectorControllerOptions?: [...string]
//+usage=advanced options for Image Reflector Controller
imageReflectorControllerResourceLimits?: {}
//+usage=advanced options for Image Reflector Controller
imageReflectorControllerResourceRequests?: {}
//+usage=advanced options for Image Automation Controller
imageAutomationControllerOptions?: [...string]
//+usage=advanced options for Image Automation Controller
imageAutomationControllerResourceLimits?: {}
//+usage=advanced options for Image Automation Controller
imageAutomationControllerResourceRequests?: {}
//+usage=advanced options for Notification Controller
notificationControllerOptions?: [...string]
//+usage=advanced options for Notification Controller
notificationControllerResourceLimits?: {}
//+usage=advanced options for Notification Controller
notificationControllerResourceRequests?: {}
}
4 changes: 4 additions & 0 deletions addons/fluxcd/resources/components/args.cue
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ controllerArgs: [
// Refer to #429 for details.
// "--enable-leader-election",
]

eventAddrArgs: controllerArgs + [
"--events-addr=http://fluxcd-notification-controller" + "." + _targetNamespace + ".svc.cluster.local:9090",
]
62 changes: 59 additions & 3 deletions addons/fluxcd/resources/components/helm-controller.cue
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@ helmController: {
dependsOn: ["fluxcd-ns"]
properties: {
imagePullPolicy: "IfNotPresent"
image: _base + "fluxcd/helm-controller:v0.36.0"
image: _base + "fluxcd/helm-controller:v1.1.0"
env: [
{
name: "RUNTIME_NAMESPACE"
value: _targetNamespace
},
{
name: "GOMAXPROCS"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing validation for CPU limits when setting GOMAXPROCS

valueFrom: {
resourceFieldRef: {
resource: "limits.cpu"
}
}
},
{
name: "GOMEMLIMIT"
valueFrom: {
resourceFieldRef: {
resource: "limits.memory"
}
}
}
]
livenessProbe: {
httpGet: {
Expand Down Expand Up @@ -68,14 +84,54 @@ helmController: {
"app": "helm-controller"
}
},
{
type: "annotations"
properties: {
"prometheus.io/port": "8080"
"prometheus.io/scrape": "true"
}
},
{
type: "resource"
properties: {
limits: {
if parameter.helmControllerResourceLimits.cpu != _|_ {
cpu: parameter.helmControllerResourceLimits.cpu
}
if parameter.helmControllerResourceLimits.cpu == _|_ {
cpu: deploymentResources.limits.cpu
}
if parameter.helmControllerResourceLimits.memory != _|_ {
memory: parameter.helmControllerResourceLimits.memory
}
if parameter.helmControllerResourceLimits.memory == _|_ {
memory: deploymentResources.limits.memory
}
}
requests: {
if parameter.helmControllerResourceRequests.cpu != _|_ {
cpu: parameter.helmControllerResourceRequests.cpu
}
if parameter.helmControllerResourceRequests.cpu == _|_ {
cpu: deploymentResources.requests.cpu
}
if parameter.helmControllerResourceRequests.memory != _|_ {
memory: parameter.helmControllerResourceRequests.memory
}
if parameter.helmControllerResourceRequests.memory == _|_ {
memory: deploymentResources.requests.memory
}
}
}
},
{
type: "command"
properties: {
if parameter.helmControllerOptions != _|_ {
args: controllerArgs + parameter.helmControllerOptions
args: eventAddrArgs + parameter.helmControllerOptions
}
if parameter.helmControllerOptions == _|_ {
args: controllerArgs
args: eventAddrArgs
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@ imageAutomationController: {
dependsOn: ["fluxcd-ns"]
properties: {
imagePullPolicy: "IfNotPresent"
image: _base + "fluxcd/image-automation-controller:v0.36.0"
image: _base + "fluxcd/image-automation-controller:v0.39.0"
env: [
{
name: "RUNTIME_NAMESPACE"
value: _targetNamespace
},
{
name: "GOMAXPROCS"
valueFrom: {
resourceFieldRef: {
resource: "limits.cpu"
}
}
},
{
name: "GOMEMLIMIT"
valueFrom: {
resourceFieldRef: {
resource: "limits.memory"
}
}
}
]
livenessProbe: {
httpGet: {
Expand Down Expand Up @@ -68,14 +84,54 @@ imageAutomationController: {
"app": "image-automation-controller"
}
},
{
type: "annotations"
properties: {
"prometheus.io/port": "8080"
"prometheus.io/scrape": "true"
}
},
{
type: "resource"
properties: {
limits: {
if parameter.imageAutomationControllerResourceLimits.cpu != _|_ {
cpu: parameter.imageAutomationControllerResourceLimits.cpu
}
if parameter.imageAutomationControllerResourceLimits.cpu == _|_ {
cpu: deploymentResources.limits.cpu
}
if parameter.imageAutomationControllerResourceLimits.memory != _|_ {
memory: parameter.imageAutomationControllerResourceLimits.memory
}
if parameter.imageAutomationControllerResourceLimits.memory == _|_ {
memory: deploymentResources.limits.memory
}
}
requests: {
if parameter.imageAutomationControllerResourceRequests.cpu != _|_ {
cpu: parameter.imageAutomationControllerResourceRequests.cpu
}
if parameter.imageAutomationControllerResourceRequests.cpu == _|_ {
cpu: deploymentResources.requests.cpu
}
if parameter.imageAutomationControllerResourceRequests.memory != _|_ {
memory: parameter.imageAutomationControllerResourceRequests.memory
}
if parameter.imageAutomationControllerResourceRequests.memory == _|_ {
memory: deploymentResources.requests.memory
}
}
}
},
{
type: "command"
properties: {
if parameter.imageAutomationControllerOptions != _|_ {
args: controllerArgs + parameter.imageAutomationControllerOptions
args: eventAddrArgs + parameter.imageAutomationControllerOptions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code replaces controllerArgs with eventAddrArgs but doesn't properly handle case when notification-controller (which eventAddrArgs depends on) is not deployed

}
if parameter.imageAutomationControllerOptions == _|_ {
args: controllerArgs
args: eventAddrArgs
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@ imageReflectorController: {
dependsOn: ["fluxcd-ns"]
properties: {
imagePullPolicy: "IfNotPresent"
image: _base + "fluxcd/image-reflector-controller:v0.30.0"
image: _base + "fluxcd/image-reflector-controller:v0.33.0"
env: [
{
name: "RUNTIME_NAMESPACE"
value: _targetNamespace
},
{
name: "GOMAXPROCS"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GOMAXPROCS set to limits.cpu might cause performance issues if container is throttled

valueFrom: {
resourceFieldRef: {
resource: "limits.cpu"
}
}
},
{
name: "GOMEMLIMIT"
valueFrom: {
resourceFieldRef: {
resource: "limits.memory"
}
}
}
]
livenessProbe: {
httpGet: {
Expand Down Expand Up @@ -72,14 +88,54 @@ imageReflectorController: {
"app": "image-reflector-controller"
}
},
{
type: "annotations"
properties: {
"prometheus.io/port": "8080"
"prometheus.io/scrape": "true"
}
},
{
type: "resource"
properties: {
limits: {
if parameter.imageReflectorControllerResourceLimits.cpu != _|_ {
cpu: parameter.imageReflectorControllerResourceLimits.cpu
}
if parameter.imageReflectorControllerResourceLimits.cpu == _|_ {
cpu: deploymentResources.limits.cpu
}
if parameter.imageReflectorControllerResourceLimits.memory != _|_ {
memory: parameter.imageReflectorControllerResourceLimits.memory
}
if parameter.imageReflectorControllerResourceLimits.memory == _|_ {
memory: deploymentResources.limits.memory
}
}
requests: {
if parameter.imageReflectorControllerResourceRequests.cpu != _|_ {
cpu: parameter.imageReflectorControllerResourceRequests.cpu
}
if parameter.imageReflectorControllerResourceRequests.cpu == _|_ {
cpu: deploymentResources.requests.cpu
}
if parameter.imageReflectorControllerResourceRequests.memory != _|_ {
memory: parameter.imageReflectorControllerResourceRequests.memory
}
if parameter.imageReflectorControllerResourceRequests.memory == _|_ {
memory: deploymentResources.requests.memory
}
}
}
},
{
type: "command"
properties: {
if parameter.imageReflectorControllerOptions != _|_ {
args: controllerArgs + parameter.imageReflectorControllerOptions
args: eventAddrArgs + parameter.imageReflectorControllerOptions
}
if parameter.imageReflectorControllerOptions == _|_ {
args: controllerArgs
args: eventAddrArgs
}
}
},
Expand Down
Loading
Loading