diff --git a/sample-argocd-app/Chart.yaml b/sample-argocd-app/Chart.yaml new file mode 100644 index 0000000..841612b --- /dev/null +++ b/sample-argocd-app/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: demo-app +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "1.16.0" diff --git a/sample-argocd-app/templates/deployment.yaml b/sample-argocd-app/templates/deployment.yaml new file mode 100644 index 0000000..0908ef4 --- /dev/null +++ b/sample-argocd-app/templates/deployment.yaml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }} + labels: + app: {{ .Release.Name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }} + spec: + containers: + - name: {{ .Release.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - containerPort: 80 diff --git a/sample-argocd-app/templates/ingress.yaml b/sample-argocd-app/templates/ingress.yaml new file mode 100644 index 0000000..4e3f369 --- /dev/null +++ b/sample-argocd-app/templates/ingress.yaml @@ -0,0 +1,29 @@ +{{- if .Values.ingress.enabled }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }} + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / + cert-manager.io/cluster-issuer: {{ .Values.tls.issuer }} +spec: + ingressClassName: {{ .Values.ingress.ingressClassName }} + rules: + - host: {{ .Values.ingress.hostname }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }} + port: + number: 80 +{{- if .Values.tls.enabled }} + tls: + - hosts: + - {{ .Values.ingress.hostname }} + secretName: {{ .Values.tls.secretName }} +{{- end }} +{{- end }} + diff --git a/sample-argocd-app/templates/service.yaml b/sample-argocd-app/templates/service.yaml new file mode 100644 index 0000000..43155ca --- /dev/null +++ b/sample-argocd-app/templates/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }} +spec: + selector: + app: {{ .Release.Name }} + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: 80 + diff --git a/sample-argocd-app/values.yaml b/sample-argocd-app/values.yaml new file mode 100644 index 0000000..176f020 --- /dev/null +++ b/sample-argocd-app/values.yaml @@ -0,0 +1,18 @@ +image: + repository: httpd + tag: latest + pullPolicy: IfNotPresent + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: true + hostname: hello-world.matthewaveryusa.com + ingressClassName: nginx + +tls: + enabled: true + issuer: matthewaveryusa-issuer + secretName: matthewaveryusa-wildcard