Blog Series

Syntax Highlighted File Contents
deployment.yaml
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: openshift-gitops-argocd-application-controller-admin
  namespace: blog
subjects:
  - kind: ServiceAccount
    name: openshift-gitops-argocd-application-controller
    namespace: openshift-gitops
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: blog
  namespace: blog
  labels:
    app.kubernetes.io/version: '2d7cb1c.20250826195131'
spec:
  replicas: 1
  selector:
    matchLabels:
      app: blog
  template:
    metadata:
      labels:
        app: blog
    spec:
      volumes:
        - name: workdir
          emptyDir: {}
      containers:
        - name: blogrunner
          image: quay.io/mauriciosantiagodecastro/blogrunner:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 4000
          volumeMounts:
            - name: workdir
              mountPath: /workdir
          env:
            - name: GIT_REPO
              value: https://github.com/mauricioscastro/blog
        - name: md2pdf
          image: quay.io/mauriciosantiagodecastro/md2pdf
          imagePullPolicy: Always
          volumeMounts:
            - name: workdir
              mountPath: &pdf_collection_base_path /usr/local/documents/mscastro
          env:
            - name: PDF_COLLECTION_BASE_PATH
              value: *pdf_collection_base_path
          command:
            - /bin/sh
          args:
            - -c
            - "while true; do \n  for md in `find $PDF_COLLECTION_BASE_PATH -name \"*.md\" -newermt \"10 seconds ago\" -size +10c | grep -v 404 | grep -v $PDF_COLLECTION_BASE_PATH/bundle | grep -v $PDF_COLLECTION_BASE_PATH/site`; do \n    m2f $md pdf \\\n      footerTemplate=\"<div style=\\\"font-size: 9px; margin: 0 auto;\\\"> <span class=\"pageNumber\"></span> / <span class=\"totalPages\"></span></div>\" \\\n      headerTemplate=\"<span/>\" margin.top=\"0.8cm\" \n  done\n  sleep 10\ndone             "
---
apiVersion: v1
kind: Service
metadata:
  name: blog
  namespace: blog
spec:
  ports:
    - port: 4000
  selector:
    app: blog

# oc adm policy add-cluster-role-to-user cluster-admin -z system:serviceaccount:openshift-gitops:openshift-gitops-argocd-application-controller
# oc adm policy add-cluster-role-to-user admin system:serviceaccount:openshift-gitops:openshift-gitops-argocd-application-controller
#
# project: default
# source:
#   repoURL: https://github.com/mauricioscastro/blog
#   path: cicd/argo
#   targetRevision: HEAD
# destination:
#   server: https://kubernetes.default.svc
#   namespace: blog
# syncPolicy:
#   automated:
#     prune: true
#     selfHeal: true
#   syncOptions:
#     - CreateNamespace=true