From 7b9f0345274a8b725c07fa95920d730c764e5861 Mon Sep 17 00:00:00 2001 From: Felipe M Date: Mon, 5 Sep 2022 18:43:02 +0200 Subject: [PATCH] refactor: rename template names --- .goreleaser.yml | 2 +- Makefile | 2 +- README.md | 34 +---------------------- cmd/{golang-app-template => ichi}/main.go | 0 go.mod | 2 +- helm/Chart.yaml | 2 +- helm/README.md | 4 +-- helm/templates/NOTES.txt | 8 +++--- helm/templates/_helpers.tpl | 20 ++++++------- helm/templates/ingress.yaml | 4 +-- helm/templates/service.yaml | 6 ++-- helm/templates/serviceaccount.yaml | 4 +-- helm/templates/statefulset.yaml | 12 ++++---- helm/templates/tests/test-connection.yaml | 6 ++-- helm/values.yaml | 8 +++--- 15 files changed, 41 insertions(+), 73 deletions(-) rename cmd/{golang-app-template => ichi}/main.go (100%) diff --git a/.goreleaser.yml b/.goreleaser.yml index e8f6783..198479a 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -20,7 +20,7 @@ builds: goarch: arm - goos: windows goarch: arm64 - main: ./cmd/golang-app-template + main: ./cmd/ichi ldflags: - -s -w archives: diff --git a/Makefile b/Makefile index 58fc55d..05dd183 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PROJECT_NAME := golang-app-template +PROJECT_NAME := ichi SOURCE_FILES ?=./internal/... ./cmd/... ./pkg/... diff --git a/README.md b/README.md index 0743e15..dc28d87 100644 --- a/README.md +++ b/README.md @@ -1,33 +1 @@ -# golang-app-template - -Golang application template for GitHub. - -Contains: -- Basic running Go code (just a `cmd` so everything else works) -- A `Makefile` with some Quality of Life for contributing and executing common tasks. -- A `Containerfile` with a boilerplate container with no dependencies. -- [Goreleaser](https://goreleaser.com) configuration and CI. -- A basic Helm chart -- Github actions to build, test and release binaries and container images to the Github container registry. - - -## Using the template - -1. Press the **Use this template** button at the top of this repository. -2. Find and replace `golang-app-template` everywhere you need -3. Rename `cmd/golang-app-template` -4. `make quick-run` - -## Makefile - -``` -$ make help - build: builds the project for the setup os/arch combinations - clean: clean test cache, build files - format: Executes the formatting pipeline on the project - help: this screen. Keep it first target to be default - lint: Check the project for errors - quick-run: Executes the project using golang - run: Executes the project build locally - test: Runs the test suite -``` +# ichi diff --git a/cmd/golang-app-template/main.go b/cmd/ichi/main.go similarity index 100% rename from cmd/golang-app-template/main.go rename to cmd/ichi/main.go diff --git a/go.mod b/go.mod index ba49d9f..bd40c16 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ -module github.com/fmartingr/golang-app-template +module code.fmartingr.dev/fmartingr/ichi go 1.19 diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 84dc8a0..5cfd004 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -name: golang-app-template +name: ichi description: A Helm chart for Kubernetes type: application # This is the chart version. This version number should be incremented each time you make changes diff --git a/helm/README.md b/helm/README.md index ca6d281..61b7ad6 100644 --- a/helm/README.md +++ b/helm/README.md @@ -3,13 +3,13 @@ ## Install the chart ``` -helm install --namespace golang-app-template --atomic golang-app-template . +helm install --namespace ichi --atomic ichi . ``` ## Upgrading the chart ``` -helm upgrade --namespace golang-app-template --atomic golang-app-template . +helm upgrade --namespace ichi --atomic ichi . ``` ## Using locally with latest dev image diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index 19685ad..16926c6 100644 --- a/helm/templates/NOTES.txt +++ b/helm/templates/NOTES.txt @@ -6,16 +6,16 @@ {{- end }} {{- end }} {{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "golang-app-template.fullname" . }}) + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "ichi.fullname" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "golang-app-template.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "golang-app-template.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "ichi.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "ichi.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") echo http://$SERVICE_IP:{{ .Values.service.port }} {{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "golang-app-template.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "ichi.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index d1dc166..c4a9bec 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -1,7 +1,7 @@ {{/* Expand the name of the chart. */}} -{{- define "golang-app-template.name" -}} +{{- define "ichi.name" -}} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- end }} @@ -10,7 +10,7 @@ Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). If release name contains chart name it will be used as a full name. */}} -{{- define "golang-app-template.fullname" -}} +{{- define "ichi.fullname" -}} {{- if .Values.fullnameOverride }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- else }} @@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name. {{/* Create chart name and version as used by the chart label. */}} -{{- define "golang-app-template.chart" -}} +{{- define "ichi.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- end }} {{/* Common labels */}} -{{- define "golang-app-template.labels" -}} -helm.sh/chart: {{ include "golang-app-template.chart" . }} -{{ include "golang-app-template.selectorLabels" . }} +{{- define "ichi.labels" -}} +helm.sh/chart: {{ include "ichi.chart" . }} +{{ include "ichi.selectorLabels" . }} {{- if .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} @@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }} {{/* Selector labels */}} -{{- define "golang-app-template.selectorLabels" -}} -app.kubernetes.io/name: {{ include "golang-app-template.name" . }} +{{- define "ichi.selectorLabels" -}} +app.kubernetes.io/name: {{ include "ichi.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* Create the name of the service account to use */}} -{{- define "golang-app-template.serviceAccountName" -}} +{{- define "ichi.serviceAccountName" -}} {{- if .Values.serviceAccount.create }} -{{- default (include "golang-app-template.fullname" .) .Values.serviceAccount.name }} +{{- default (include "ichi.fullname" .) .Values.serviceAccount.name }} {{- else }} {{- default "default" .Values.serviceAccount.name }} {{- end }} diff --git a/helm/templates/ingress.yaml b/helm/templates/ingress.yaml index 4162e11..2309c06 100644 --- a/helm/templates/ingress.yaml +++ b/helm/templates/ingress.yaml @@ -1,5 +1,5 @@ {{- if .Values.ingress.enabled -}} -{{- $fullName := include "golang-app-template.fullname" . -}} +{{- $fullName := include "ichi.fullname" . -}} {{- $svcPort := .Values.service.port -}} {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} @@ -17,7 +17,7 @@ kind: Ingress metadata: name: {{ $fullName }} labels: - {{- include "golang-app-template.labels" . | nindent 4 }} + {{- include "ichi.labels" . | nindent 4 }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/templates/service.yaml b/helm/templates/service.yaml index ac36824..6254b48 100644 --- a/helm/templates/service.yaml +++ b/helm/templates/service.yaml @@ -1,9 +1,9 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "golang-app-template.fullname" . }} + name: {{ include "ichi.fullname" . }} labels: - {{- include "golang-app-template.labels" . | nindent 4 }} + {{- include "ichi.labels" . | nindent 4 }} spec: type: {{ .Values.service.type }} ports: @@ -12,4 +12,4 @@ spec: protocol: TCP name: http selector: - {{- include "golang-app-template.selectorLabels" . | nindent 4 }} + {{- include "ichi.selectorLabels" . | nindent 4 }} diff --git a/helm/templates/serviceaccount.yaml b/helm/templates/serviceaccount.yaml index 2f70f39..21fbb98 100644 --- a/helm/templates/serviceaccount.yaml +++ b/helm/templates/serviceaccount.yaml @@ -2,9 +2,9 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: {{ include "golang-app-template.serviceAccountName" . }} + name: {{ include "ichi.serviceAccountName" . }} labels: - {{- include "golang-app-template.labels" . | nindent 4 }} + {{- include "ichi.labels" . | nindent 4 }} {{- with .Values.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/templates/statefulset.yaml b/helm/templates/statefulset.yaml index eaa75f0..dd8756b 100644 --- a/helm/templates/statefulset.yaml +++ b/helm/templates/statefulset.yaml @@ -1,17 +1,17 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - name: {{ include "golang-app-template.fullname" . }} + name: {{ include "ichi.fullname" . }} labels: - {{- include "golang-app-template.labels" . | nindent 4 }} + {{- include "ichi.labels" . | nindent 4 }} spec: - serviceName: {{ include "golang-app-template.fullname" . }} + serviceName: {{ include "ichi.fullname" . }} {{- if not .Values.autoscaling.enabled }} replicas: {{ .Values.replicaCount }} {{- end }} selector: matchLabels: - {{- include "golang-app-template.selectorLabels" . | nindent 6 }} + {{- include "ichi.selectorLabels" . | nindent 6 }} template: metadata: {{- with .Values.podAnnotations }} @@ -19,13 +19,13 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: - {{- include "golang-app-template.selectorLabels" . | nindent 8 }} + {{- include "ichi.selectorLabels" . | nindent 8 }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} - serviceAccountName: {{ include "golang-app-template.serviceAccountName" . }} + serviceAccountName: {{ include "ichi.serviceAccountName" . }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} containers: diff --git a/helm/templates/tests/test-connection.yaml b/helm/templates/tests/test-connection.yaml index 41031ae..3211331 100644 --- a/helm/templates/tests/test-connection.yaml +++ b/helm/templates/tests/test-connection.yaml @@ -1,9 +1,9 @@ apiVersion: v1 kind: Pod metadata: - name: "{{ include "golang-app-template.fullname" . }}-test-connection" + name: "{{ include "ichi.fullname" . }}-test-connection" labels: - {{- include "golang-app-template.labels" . | nindent 4 }} + {{- include "ichi.labels" . | nindent 4 }} annotations: "helm.sh/hook": test spec: @@ -11,5 +11,5 @@ spec: - name: wget image: busybox command: ['wget'] - args: ['{{ include "golang-app-template.fullname" . }}:{{ .Values.service.port }}'] + args: ['{{ include "ichi.fullname" . }}:{{ .Values.service.port }}'] restartPolicy: Never diff --git a/helm/values.yaml b/helm/values.yaml index f63ce48..406f475 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -5,7 +5,7 @@ replicaCount: 1 image: - repository: ghcr.io/fmartingr/golang-app-template + repository: ghcr.io/fmartingr/ichi pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. # tag: "dev" @@ -50,14 +50,14 @@ ingress: # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" hosts: - - host: golang-app-template.local + - host: ichi.local paths: - path: / pathType: ImplementationSpecific tls: [] - # - secretName: golang-app-template-tls + # - secretName: ichi-tls # hosts: - # - golang-app-template.local + # - ichi.local resources: {}