255 lines
7.9 KiB
YAML
255 lines
7.9 KiB
YAML
apiVersion: argoproj.io/v1beta1
|
|
kind: ArgoCD
|
|
metadata:
|
|
name: argocd
|
|
spec:
|
|
# using this in conjunction with respectRBAC
|
|
# defaultClusterScopedRoleDisabled: true
|
|
resourceTrackingMethod: annotation
|
|
applicationSet: {}
|
|
kustomizeBuildOptions: "--enable-helm"
|
|
notifications:
|
|
enabled: true
|
|
controller:
|
|
logLevel: debug
|
|
repo:
|
|
sidecarContainers:
|
|
- name: setenv-plugin
|
|
command: [/var/run/argocd/argocd-cmp-server]
|
|
env:
|
|
- name: KUSTOMIZE_PLUGIN_HOME
|
|
value: /etc/kustomize/plugin
|
|
- name: SUB_DOMAIN
|
|
value: ${SUB_DOMAIN}
|
|
image: quay.io/gnunn/tools:latest
|
|
imagePullPolicy: Always
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
volumeMounts:
|
|
- mountPath: /var/run/argocd
|
|
name: var-files
|
|
- mountPath: /home/argocd/cmp-server/plugins
|
|
name: plugins
|
|
- mountPath: /tmp
|
|
name: tmp
|
|
- mountPath: /home/argocd/cmp-server/config/plugin.yaml
|
|
subPath: plugin.yaml
|
|
name: setenv-cmp-plugin
|
|
volumes:
|
|
- configMap:
|
|
name: setenv-cmp-plugin
|
|
name: setenv-cmp-plugin
|
|
server:
|
|
enableRolloutsUI: true
|
|
insecure: true
|
|
route:
|
|
enabled: true
|
|
tls:
|
|
termination: edge
|
|
insecureEdgeTerminationPolicy: Redirect
|
|
volumeMounts:
|
|
- mountPath: /tmp/extensions/
|
|
name: extensions
|
|
volumes:
|
|
- emptyDir: {}
|
|
name: extensions
|
|
resourceHealthChecks:
|
|
- group: argoproj.io
|
|
kind: Application
|
|
check: |
|
|
hs = {}
|
|
hs.status = "Progressing"
|
|
hs.message = ""
|
|
if obj.status ~= nil then
|
|
if obj.status.health ~= nil then
|
|
hs.status = obj.status.health.status
|
|
hs.message = obj.status.health.message
|
|
end
|
|
end
|
|
return hs
|
|
- group: argoproj.io
|
|
kind: RolloutManager
|
|
check: |
|
|
hs = {}
|
|
if obj.status ~= nil then
|
|
if obj.status.conditions ~= nil then
|
|
for _, condition in ipairs(obj.status.conditions) do
|
|
hs.message = condition.message
|
|
break
|
|
end
|
|
end
|
|
if obj.status.phase ~= nil then
|
|
if obj.status.phase == "Failure" then
|
|
hs.status = "Degraded"
|
|
return hs
|
|
elseif obj.status.phase == "Available" then
|
|
hs.status = "Healthy"
|
|
return hs
|
|
elseif obj.status.phase == "Pending" then
|
|
hs.status = "Progressing"
|
|
return hs
|
|
end
|
|
end
|
|
hs.status = "Progressing"
|
|
hs.message = "Waiting for operator to update status"
|
|
return hs
|
|
end
|
|
- group: operators.coreos.com
|
|
kind: Subscription
|
|
check: |
|
|
health_status = {}
|
|
if obj.status ~= nil then
|
|
if obj.status.conditions ~= nil then
|
|
numDegraded = 0
|
|
numPending = 0
|
|
numSuspended = 0
|
|
msg = ""
|
|
for i, condition in pairs(obj.status.conditions) do
|
|
msg = msg .. i .. ": " .. condition.type .. " | " .. condition.status .. " | " .. condition.reason .. "\n"
|
|
if condition.type == "InstallPlanPending" and condition.status == "True" then
|
|
if condition.reason == "RequiresApproval" then
|
|
numSuspended = numSuspended + 1
|
|
else
|
|
numPending = numPending + 1
|
|
end
|
|
elseif (condition.type == "InstallPlanMissing" and condition.reason ~= "ReferencedInstallPlanNotFound") then
|
|
numDegraded = numDegraded + 1
|
|
elseif (condition.type == "CatalogSourcesUnhealthy" or condition.type == "InstallPlanFailed") and condition.status == "True" then
|
|
numDegraded = numDegraded + 1
|
|
elseif (condition.type == "ResolutionFailed" and condition.reason ~= "ConstraintsNotSatisfiable") then
|
|
numDegraded = numDegraded + 1
|
|
end
|
|
end
|
|
if numDegraded > 0 then
|
|
health_status.status = "Degraded"
|
|
health_status.message = msg
|
|
return health_status
|
|
elseif numSuspended > 0 then
|
|
health_status.status = "Suspended"
|
|
health_status.message = "Requires Approval"
|
|
return health_status
|
|
elseif numPending > 0 then
|
|
health_status.status = "Progressing"
|
|
health_status.message = "An install plan for a subscription is pending installation"
|
|
return health_status
|
|
else
|
|
health_status.status = "Healthy"
|
|
health_status.message = msg
|
|
return health_status
|
|
end
|
|
end
|
|
end
|
|
health_status.status = "Progressing"
|
|
health_status.message = "An install plan for a subscription is pending installation"
|
|
return health_status
|
|
- group: operators.coreos.com
|
|
kind: InstallPlan
|
|
check: |
|
|
hs = {}
|
|
if obj.status ~= nil then
|
|
if obj.status.phase ~= nil then
|
|
if obj.status.phase == "Complete" then
|
|
hs.status = "Healthy"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
elseif obj.status.phase == "RequiresApproval" then
|
|
hs.status = "Suspended"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
else
|
|
hs.status = "Progressing"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
end
|
|
end
|
|
end
|
|
hs.status = "Progressing"
|
|
hs.message = "Waiting for InstallPlan to complete"
|
|
return hs
|
|
- group: image.openshift.io
|
|
kind: ImageStream
|
|
check: |
|
|
hs = {}
|
|
hs.status = "Progressing"
|
|
hs.message = ""
|
|
if obj.status ~= nil then
|
|
if obj.status.tags ~= nil then
|
|
numTags = 0
|
|
for _ , item in pairs(obj.status.tags) do
|
|
numTags = numTags + 1
|
|
numItems = 0
|
|
if item.tags ~= nil then
|
|
for _ , item in pairs(item.tags) do
|
|
numItems = numItems + 1
|
|
end
|
|
if numItems == 0 then
|
|
return hs
|
|
end
|
|
end
|
|
end
|
|
if numTags > 0 then
|
|
hs.status = "Healthy"
|
|
hs.message = "ImageStream has tags resolved"
|
|
return hs
|
|
end
|
|
end
|
|
end
|
|
return hs
|
|
- group: build.openshift.io
|
|
kind: Build
|
|
check: |
|
|
hs = {}
|
|
if obj.status ~= nil then
|
|
if obj.status.phase ~= nil then
|
|
if obj.status.phase == "Complete" then
|
|
hs.status = "Healthy"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
end
|
|
end
|
|
end
|
|
hs.status = "Progressing"
|
|
hs.message = "Waiting for Build to complete"
|
|
return hs
|
|
- kind: PersistentVolumeClaim
|
|
check: |
|
|
hs = {}
|
|
if obj.status ~= nil then
|
|
if obj.status.phase ~= nil then
|
|
if obj.status.phase == "Pending" then
|
|
hs.status = "Healthy"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
end
|
|
if obj.status.phase == "Bound" then
|
|
hs.status = "Healthy"
|
|
hs.message = obj.status.phase
|
|
return hs
|
|
end
|
|
end
|
|
end
|
|
hs.status = "Progressing"
|
|
hs.message = "Waiting for PVC"
|
|
return hs
|
|
resourceExclusions: |
|
|
- apiGroups:
|
|
- project.openshift.io
|
|
clusters:
|
|
- '*'
|
|
kinds:
|
|
- Project
|
|
resourceIgnoreDifferences:
|
|
resourceIdentifiers:
|
|
- group: route.openshift.io
|
|
kind: Route
|
|
customization:
|
|
jsonPointers:
|
|
- /status/ingress
|
|
- group: quay.redhat.com
|
|
kind: QuayRegistry
|
|
customization:
|
|
jsonPointers:
|
|
- /status/ingress
|
|
ha:
|
|
enabled: false
|