adamant-kite-43734
09/24/2024, 3:33 PMjolly-hospital-5285
09/25/2024, 7:30 AMapiVersion: fleet.cattle.io/v1alpha1
kind: Bundle
metadata:
creationTimestamp: '2024-09-23T14:47:23Z'
finalizers:
- fleet.cattle.io/bundle-finalizer
generation: 12
labels:
cd.mdapi.ch: fleet
cdenv.mdapi.ch: dev
fleet.cattle.io/commit: 7aeae18f0a7be648902097d8b19dc7a00f9d42b8
fleet.cattle.io/repo-name: mdapi-dev
managedFields:
- apiVersion: fleet.cattle.io/v1alpha1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:finalizers:
.: {}
v:"fleet.cattle.io/bundle-finalizer": {}
manager: fleetcontroller
operation: Update
time: '2024-09-23T14:47:23Z'
- apiVersion: fleet.cattle.io/v1alpha1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:cd.mdapi.ch: {}
f:cdenv.mdapi.ch: {}
f:fleet.cattle.io/commit: {}
f:fleet.cattle.io/repo-name: {}
f:spec:
.: {}
f:correctDrift:
.: {}
f:enabled: {}
f:defaultNamespace: {}
f:dependsOn: {}
f:forceSyncGeneration: {}
f:ignore: {}
f:namespace: {}
f:namespaceLabels:
.: {}
f:cd.mdapi.ch: {}
f:cdenv.mdapi.ch: {}
f:resources: {}
f:targetRestrictions: {}
f:targets: {}
manager: fleet
operation: Update
time: '2024-09-24T13:45:32Z'
- apiVersion: fleet.cattle.io/v1alpha1
fieldsType: FieldsV1
fieldsV1:
f:status:
.: {}
f:conditions: {}
f:display:
.: {}
f:readyClusters: {}
f:maxNew: {}
f:maxUnavailable: {}
f:maxUnavailablePartitions: {}
f:observedGeneration: {}
f:partitions: {}
f:resourceKey: {}
f:resourcesSha256Sum: {}
f:summary:
.: {}
f:desiredReady: {}
f:ready: {}
f:unavailable: {}
f:unavailablePartitions: {}
manager: fleetcontroller
operation: Update
subresource: status
time: '2024-09-24T13:45:48Z'
name: mdapi-dev-flame
namespace: fleet-default
resourceVersion: '7442526'
uid: e0c9e4e8-3fcb-437e-9aed-b3c366195f8f
spec:
correctDrift:
enabled: true
defaultNamespace: flame
dependsOn:
- name: mdapi-dev-cert-manager
forceSyncGeneration: 12
ignore: {}
namespace: flame
namespaceLabels:
cd.mdapi.ch: fleet
cdenv.mdapi.ch: dev
resources:
- content: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: flame
namespace: flame
spec:
selector:
matchLabels:
app: flame
replicas: 1
template:
metadata:
labels:
app: flame
spec:
serviceAccountName: flame
containers:
- name: flame
image: ghcr.io/fdarveau/flame
ports:
- containerPort: 5005
name: flame-deploy.yml
- content: |
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: flame
namespace: flame
annotations:
cert-manager.io/issuer: letsencrypt-prod
flame.pawelmalak/type: app
flame.pawelmalak/name: MDAPI Home (dev)
flame.pawelmalak/url: <https://dev.mdapi.ch>
flame.pawelmalak/category: General
flame.pawelmalak/icon: home
flame.pawelmalak/order: 50
spec:
ingressClassName: nginx
rules:
- host: dev.mdapi.ch
http:
paths:
- backend:
service:
name: flame
port:
number: 5005
path: /
pathType: Prefix
tls:
- hosts:
- dev.mdapi.ch
secretName: flame-cert
name: flame-ing.yml
- content: |
apiVersion: v1
kind: ServiceAccount
metadata:
name: flame
namespace: flame
name: flame-sa.yml
- content: |
apiVersion: v1
kind: Service
metadata:
name: flame
namespace: flame
spec:
selector:
app: flame
ports:
- name: http
port: 5005
protocol: TCP
targetPort: 5005
type: ClusterIP
name: flame-svc.yml
- content: |
defaultNamespace: flame
namespace: flame
namespaceLabels:
cd.mdapi.ch: fleet
cdenv.mdapi.ch: dev
dependsOn:
- name: mdapi-dev-cert-manager
name: fleet.yaml
- content: |
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-prod
namespace: flame
spec:
acme:
email: tillo@tillo.ch
privateKeySecretRef:
name: letsencrypt-prod
server: <https://acme-v02.api.letsencrypt.org/directory>
solvers:
- dns01:
rfc2136:
nameserver: 31.3.135.237:53
tsigKeyName: mdapi
tsigAlgorithm: HMACSHA256
tsigSecretSecretRef:
name: tsig-secret
key: tsig-secret-key
- http01:
ingress:
class: nginx
name: letsencrypt-prod-issuer.yml
targetRestrictions:
- clusterGroup: dev
targets:
- clusterGroup: dev
ignore: {}
status:
conditions:
- lastUpdateTime: '2024-09-24T13:45:48Z'
status: 'True'
type: Ready
display:
readyClusters: 1/1
maxNew: 50
maxUnavailable: 1
maxUnavailablePartitions: 0
observedGeneration: 12
partitions:
- count: 1
maxUnavailable: 1
name: All
summary:
desiredReady: 1
ready: 1
resourceKey:
- apiVersion: apps/v1
kind: Deployment
name: flame
namespace: flame
- apiVersion: networking.k8s.io/v1
kind: Ingress
name: flame
namespace: flame
- apiVersion: v1
kind: ServiceAccount
name: flame
namespace: flame
- apiVersion: v1
kind: Service
name: flame
namespace: flame
- apiVersion: cert-manager.io/v1
kind: Issuer
name: letsencrypt-prod
namespace: flame
resourcesSha256Sum: efa8aee4aa3bde310842a592eb2c276e2a2e17fda7b6ae98234bebf7a6601f94
summary:
desiredReady: 1
ready: 1
unavailable: 0
unavailablePartitions: 0
And this is the resulting Ingress resource, which does have Helm-related annotations only:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
meta.helm.sh/release-name: mdapi-dev-flame
meta.helm.sh/release-namespace: flame
objectset.rio.cattle.io/id: default-mdapi-dev-flame
creationTimestamp: '2024-09-24T13:45:47Z'
generation: 1
labels:
app.kubernetes.io/managed-by: Helm
objectset.rio.cattle.io/hash: 69148ad9c9843b2fcc4414020489bfc2e222a250
managedFields:
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:meta.helm.sh/release-name: {}
f:meta.helm.sh/release-namespace: {}
f:objectset.rio.cattle.io/id: {}
f:labels:
.: {}
f:app.kubernetes.io/managed-by: {}
f:objectset.rio.cattle.io/hash: {}
f:spec:
f:ingressClassName: {}
f:rules: {}
f:tls: {}
manager: fleetagent
operation: Update
time: '2024-09-24T13:45:47Z'
name: flame
namespace: flame
resourceVersion: '2098132'
uid: 54fea8e0-9598-4800-890c-76fb97d0b7e7
spec:
ingressClassName: nginx
rules:
- host: dev.mdapi.ch
http:
paths:
- backend:
service:
name: flame
port:
number: 5005
path: /
pathType: Prefix
tls:
- hosts:
- dev.mdapi.ch
secretName: flame-cert
status:
loadBalancer: {}
jolly-hospital-5285
09/25/2024, 8:15 AMjolly-hospital-5285
09/25/2024, 11:38 AMflame.pawelmalak/order: '50'
instead of flame.pawelmalak/order: 50
.
Still, I had to deploy the manifest manually to reveal the mistake; I expect Fleet to report errors.
I have updated the Issue title to reflect the nuance, and I’m reporting the “fix” here in case it helps anyone else.