From 8df3d9fd34e895ed151ba6f581c73fed8b1334ed Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 15:01:00 +0100 Subject: [PATCH 1/7] helm chart added --- helm-charts/go-simple-web-server/.helmignore | 23 +++++ helm-charts/go-simple-web-server/Chart.yaml | 24 ++++++ .../go-simple-web-server/templates/NOTES.txt | 22 +++++ .../templates/_helpers.tpl | 62 ++++++++++++++ .../templates/deployment.yaml | 61 ++++++++++++++ .../go-simple-web-server/templates/hpa.yaml | 28 +++++++ .../templates/ingress.yaml | 61 ++++++++++++++ .../templates/service.yaml | 15 ++++ .../templates/serviceaccount.yaml | 12 +++ .../templates/tests/test-connection.yaml | 15 ++++ helm-charts/go-simple-web-server/values.yaml | 83 +++++++++++++++++++ 11 files changed, 406 insertions(+) create mode 100644 helm-charts/go-simple-web-server/.helmignore create mode 100644 helm-charts/go-simple-web-server/Chart.yaml create mode 100644 helm-charts/go-simple-web-server/templates/NOTES.txt create mode 100644 helm-charts/go-simple-web-server/templates/_helpers.tpl create mode 100644 helm-charts/go-simple-web-server/templates/deployment.yaml create mode 100644 helm-charts/go-simple-web-server/templates/hpa.yaml create mode 100644 helm-charts/go-simple-web-server/templates/ingress.yaml create mode 100644 helm-charts/go-simple-web-server/templates/service.yaml create mode 100644 helm-charts/go-simple-web-server/templates/serviceaccount.yaml create mode 100644 helm-charts/go-simple-web-server/templates/tests/test-connection.yaml create mode 100644 helm-charts/go-simple-web-server/values.yaml diff --git a/helm-charts/go-simple-web-server/.helmignore b/helm-charts/go-simple-web-server/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/helm-charts/go-simple-web-server/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/helm-charts/go-simple-web-server/Chart.yaml b/helm-charts/go-simple-web-server/Chart.yaml new file mode 100644 index 0000000..1f578f2 --- /dev/null +++ b/helm-charts/go-simple-web-server/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: go-simple-web-server +description: A Helm chart for deploying a go web app server from a private container registry + +# 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: 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.0" diff --git a/helm-charts/go-simple-web-server/templates/NOTES.txt b/helm-charts/go-simple-web-server/templates/NOTES.txt new file mode 100644 index 0000000..5e398e5 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- 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 "go-simple-web-server.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 "go-simple-web-server.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "go-simple-web-server.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 "go-simple-web-server.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 +{{- end }} diff --git a/helm-charts/go-simple-web-server/templates/_helpers.tpl b/helm-charts/go-simple-web-server/templates/_helpers.tpl new file mode 100644 index 0000000..9f22326 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "go-simple-web-server.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +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 "go-simple-web-server.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "go-simple-web-server.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "go-simple-web-server.labels" -}} +helm.sh/chart: {{ include "go-simple-web-server.chart" . }} +{{ include "go-simple-web-server.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "go-simple-web-server.selectorLabels" -}} +app.kubernetes.io/name: {{ include "go-simple-web-server.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "go-simple-web-server.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "go-simple-web-server.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/helm-charts/go-simple-web-server/templates/deployment.yaml b/helm-charts/go-simple-web-server/templates/deployment.yaml new file mode 100644 index 0000000..becdcc6 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "go-simple-web-server.fullname" . }} + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "go-simple-web-server.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "go-simple-web-server.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "go-simple-web-server.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 8080 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm-charts/go-simple-web-server/templates/hpa.yaml b/helm-charts/go-simple-web-server/templates/hpa.yaml new file mode 100644 index 0000000..57c1b19 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/hpa.yaml @@ -0,0 +1,28 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "go-simple-web-server.fullname" . }} + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "go-simple-web-server.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/helm-charts/go-simple-web-server/templates/ingress.yaml b/helm-charts/go-simple-web-server/templates/ingress.yaml new file mode 100644 index 0000000..626002f --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "go-simple-web-server.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") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/helm-charts/go-simple-web-server/templates/service.yaml b/helm-charts/go-simple-web-server/templates/service.yaml new file mode 100644 index 0000000..962edb8 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "go-simple-web-server.fullname" . }} + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "go-simple-web-server.selectorLabels" . | nindent 4 }} diff --git a/helm-charts/go-simple-web-server/templates/serviceaccount.yaml b/helm-charts/go-simple-web-server/templates/serviceaccount.yaml new file mode 100644 index 0000000..482c87e --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "go-simple-web-server.serviceAccountName" . }} + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/helm-charts/go-simple-web-server/templates/tests/test-connection.yaml b/helm-charts/go-simple-web-server/templates/tests/test-connection.yaml new file mode 100644 index 0000000..ce96d48 --- /dev/null +++ b/helm-charts/go-simple-web-server/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "go-simple-web-server.fullname" . }}-test-connection" + labels: + {{- include "go-simple-web-server.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "go-simple-web-server.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/helm-charts/go-simple-web-server/values.yaml b/helm-charts/go-simple-web-server/values.yaml new file mode 100644 index 0000000..b13d8ba --- /dev/null +++ b/helm-charts/go-simple-web-server/values.yaml @@ -0,0 +1,83 @@ +# Default values for go-simple-web-server. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: tincher/go-hello-world + pullPolicy: Always + # Overrides the image tag whose default is the chart appVersion. + tag: "latest" + +imagePullSecrets: + - name: my-registry-secret +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 8080 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +nodeSelector: {} + +tolerations: [] + +affinity: {} From 7030bc9168f045f0009ca7aaf86250c6533df709 Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 15:13:20 +0100 Subject: [PATCH 2/7] test-change --- helm-charts/go-simple-web-server/templates/NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/go-simple-web-server/templates/NOTES.txt b/helm-charts/go-simple-web-server/templates/NOTES.txt index 5e398e5..af25979 100644 --- a/helm-charts/go-simple-web-server/templates/NOTES.txt +++ b/helm-charts/go-simple-web-server/templates/NOTES.txt @@ -1,4 +1,4 @@ -1. Get the application URL by running these commands: +1. Get your application URL by running these commands: {{- if .Values.ingress.enabled }} {{- range $host := .Values.ingress.hosts }} {{- range .paths }} From 706d8d45e1f5c9bd73b30b95359a2d29bc266703 Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 16:36:11 +0100 Subject: [PATCH 3/7] packaged and generated index.yaml --- enviroments/local-dev/terraform.tfstate | 2 +- enviroments/local-dev/terraform.tfstate.backup | 2 +- helm-charts/go-simple-web-server-1.0.tgz | Bin 0 -> 3863 bytes helm-charts/go-simple-web-server/Chart.yaml | 2 +- .../go-simple-web-server/templates/NOTES.txt | 14 +++++++++----- helm-charts/index.yaml | 15 +++++++++++++++ 6 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 helm-charts/go-simple-web-server-1.0.tgz create mode 100644 helm-charts/index.yaml diff --git a/enviroments/local-dev/terraform.tfstate b/enviroments/local-dev/terraform.tfstate index b18db17..f07d0c8 100644 --- a/enviroments/local-dev/terraform.tfstate +++ b/enviroments/local-dev/terraform.tfstate @@ -1 +1 @@ -{"version":4,"terraform_version":"1.8.1","serial":12,"lineage":"8322b547-5f83-207b-588b-6ecb94034a8d","outputs":{"kubeconfig_path":{"value":"./kubeconfig_example","type":"string"}},"resources":[{"mode":"managed","type":"null_resource","name":"kind_cluster","provider":"provider[\"registry.opentofu.org/hashicorp/null\"]","instances":[{"schema_version":0,"attributes":{"id":"3888125863364646145","triggers":{"always_run":"2024-08-21T12:32:42Z"}},"sensitive_attributes":[]}]}],"check_results":null} +{"version":4,"terraform_version":"1.8.1","serial":15,"lineage":"8322b547-5f83-207b-588b-6ecb94034a8d","outputs":{},"resources":[],"check_results":null} diff --git a/enviroments/local-dev/terraform.tfstate.backup b/enviroments/local-dev/terraform.tfstate.backup index fdd45a2..7567231 100644 --- a/enviroments/local-dev/terraform.tfstate.backup +++ b/enviroments/local-dev/terraform.tfstate.backup @@ -1 +1 @@ -{"version":4,"terraform_version":"1.8.1","serial":11,"lineage":"8322b547-5f83-207b-588b-6ecb94034a8d","outputs":{},"resources":[],"check_results":null} +{"version":4,"terraform_version":"1.8.1","serial":14,"lineage":"8322b547-5f83-207b-588b-6ecb94034a8d","outputs":{"kubeconfig_path":{"value":"./kubeconfig_example","type":"string"}},"resources":[{"mode":"managed","type":"null_resource","name":"kind_cluster","provider":"provider[\"registry.opentofu.org/hashicorp/null\"]","instances":[{"schema_version":0,"attributes":{"id":"2724881006231483995","triggers":{"always_run":"2024-08-21T14:52:01Z"}},"sensitive_attributes":[]}]}],"check_results":null} diff --git a/helm-charts/go-simple-web-server-1.0.tgz b/helm-charts/go-simple-web-server-1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e1b122bdaf34260a45f793bc03d247070758d0a4 GIT binary patch literal 3863 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 literal 0 HcmV?d00001 diff --git a/helm-charts/go-simple-web-server/Chart.yaml b/helm-charts/go-simple-web-server/Chart.yaml index 1f578f2..47823c9 100644 --- a/helm-charts/go-simple-web-server/Chart.yaml +++ b/helm-charts/go-simple-web-server/Chart.yaml @@ -15,7 +15,7 @@ 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: 1.0 +version: "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 diff --git a/helm-charts/go-simple-web-server/templates/NOTES.txt b/helm-charts/go-simple-web-server/templates/NOTES.txt index af25979..8e6a225 100644 --- a/helm-charts/go-simple-web-server/templates/NOTES.txt +++ b/helm-charts/go-simple-web-server/templates/NOTES.txt @@ -1,4 +1,4 @@ -1. Get your application URL by running these commands: +Get your application URL by running these commands: {{- if .Values.ingress.enabled }} {{- range $host := .Values.ingress.hosts }} {{- range .paths }} @@ -15,8 +15,12 @@ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "go-simple-web-server.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 "go-simple-web-server.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 + +1.export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "go-simple-web-server.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + +2.export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + +3.kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT + +4.You can Now "Visit http://127.0.0.1:8080 to use your application" and use /metrics path to see the metrics exposed by the application. {{- end }} diff --git a/helm-charts/index.yaml b/helm-charts/index.yaml new file mode 100644 index 0000000..aa1b821 --- /dev/null +++ b/helm-charts/index.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +entries: + go-simple-web-server: + - apiVersion: v2 + appVersion: "1.0" + created: "2024-08-21T16:27:34.65841048+01:00" + description: A Helm chart for deploying a go web app server from a private container + registry + digest: 412881c71791b175b4d11d0e56d76adf2d59bc41728f7a485ba9b17cc6cb1a62 + name: go-simple-web-server + type: application + urls: + - https://cherrymu.github.io/process-out-challenge/go-simple-web-server-1.0.tgz + version: "1.0" +generated: "2024-08-21T16:27:34.657940808+01:00" From 58194cf3e02c84c39eefc619a476bce5726b8dc3 Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 16:56:28 +0100 Subject: [PATCH 4/7] config to host on GH webpages --- .../{go-simple-web-server => }/Chart.yaml | 0 helm-charts/go-simple-web-server/.helmignore | 23 ------------------- .../templates/NOTES.txt | 0 .../templates/_helpers.tpl | 0 .../templates/deployment.yaml | 0 .../templates/hpa.yaml | 0 .../templates/ingress.yaml | 0 .../templates/service.yaml | 0 .../templates/serviceaccount.yaml | 0 .../templates/tests/test-connection.yaml | 0 .../{go-simple-web-server => }/values.yaml | 0 11 files changed, 23 deletions(-) rename helm-charts/{go-simple-web-server => }/Chart.yaml (100%) delete mode 100644 helm-charts/go-simple-web-server/.helmignore rename helm-charts/{go-simple-web-server => }/templates/NOTES.txt (100%) rename helm-charts/{go-simple-web-server => }/templates/_helpers.tpl (100%) rename helm-charts/{go-simple-web-server => }/templates/deployment.yaml (100%) rename helm-charts/{go-simple-web-server => }/templates/hpa.yaml (100%) rename helm-charts/{go-simple-web-server => }/templates/ingress.yaml (100%) rename helm-charts/{go-simple-web-server => }/templates/service.yaml (100%) rename helm-charts/{go-simple-web-server => }/templates/serviceaccount.yaml (100%) rename helm-charts/{go-simple-web-server => }/templates/tests/test-connection.yaml (100%) rename helm-charts/{go-simple-web-server => }/values.yaml (100%) diff --git a/helm-charts/go-simple-web-server/Chart.yaml b/helm-charts/Chart.yaml similarity index 100% rename from helm-charts/go-simple-web-server/Chart.yaml rename to helm-charts/Chart.yaml diff --git a/helm-charts/go-simple-web-server/.helmignore b/helm-charts/go-simple-web-server/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/helm-charts/go-simple-web-server/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/helm-charts/go-simple-web-server/templates/NOTES.txt b/helm-charts/templates/NOTES.txt similarity index 100% rename from helm-charts/go-simple-web-server/templates/NOTES.txt rename to helm-charts/templates/NOTES.txt diff --git a/helm-charts/go-simple-web-server/templates/_helpers.tpl b/helm-charts/templates/_helpers.tpl similarity index 100% rename from helm-charts/go-simple-web-server/templates/_helpers.tpl rename to helm-charts/templates/_helpers.tpl diff --git a/helm-charts/go-simple-web-server/templates/deployment.yaml b/helm-charts/templates/deployment.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/deployment.yaml rename to helm-charts/templates/deployment.yaml diff --git a/helm-charts/go-simple-web-server/templates/hpa.yaml b/helm-charts/templates/hpa.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/hpa.yaml rename to helm-charts/templates/hpa.yaml diff --git a/helm-charts/go-simple-web-server/templates/ingress.yaml b/helm-charts/templates/ingress.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/ingress.yaml rename to helm-charts/templates/ingress.yaml diff --git a/helm-charts/go-simple-web-server/templates/service.yaml b/helm-charts/templates/service.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/service.yaml rename to helm-charts/templates/service.yaml diff --git a/helm-charts/go-simple-web-server/templates/serviceaccount.yaml b/helm-charts/templates/serviceaccount.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/serviceaccount.yaml rename to helm-charts/templates/serviceaccount.yaml diff --git a/helm-charts/go-simple-web-server/templates/tests/test-connection.yaml b/helm-charts/templates/tests/test-connection.yaml similarity index 100% rename from helm-charts/go-simple-web-server/templates/tests/test-connection.yaml rename to helm-charts/templates/tests/test-connection.yaml diff --git a/helm-charts/go-simple-web-server/values.yaml b/helm-charts/values.yaml similarity index 100% rename from helm-charts/go-simple-web-server/values.yaml rename to helm-charts/values.yaml From 65f444ba8d484a364c7f167b800bbcf67c6218c5 Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 17:34:00 +0100 Subject: [PATCH 5/7] changed index.yaml file --- helm-charts/go-simple-web-server-1.0.tgz | Bin 3863 -> 3623 bytes helm-charts/{ => go-web-server}/Chart.yaml | 0 .../{ => go-web-server}/templates/NOTES.txt | 0 .../templates/_helpers.tpl | 0 .../templates/deployment.yaml | 0 .../{ => go-web-server}/templates/hpa.yaml | 0 .../templates/ingress.yaml | 0 .../templates/service.yaml | 0 .../templates/serviceaccount.yaml | 0 .../templates/tests/test-connection.yaml | 0 helm-charts/{ => go-web-server}/values.yaml | 0 helm-charts/index.yaml | 6 +++--- 12 files changed, 3 insertions(+), 3 deletions(-) rename helm-charts/{ => go-web-server}/Chart.yaml (100%) rename helm-charts/{ => go-web-server}/templates/NOTES.txt (100%) rename helm-charts/{ => go-web-server}/templates/_helpers.tpl (100%) rename helm-charts/{ => go-web-server}/templates/deployment.yaml (100%) rename helm-charts/{ => go-web-server}/templates/hpa.yaml (100%) rename helm-charts/{ => go-web-server}/templates/ingress.yaml (100%) rename helm-charts/{ => go-web-server}/templates/service.yaml (100%) rename helm-charts/{ => go-web-server}/templates/serviceaccount.yaml (100%) rename helm-charts/{ => go-web-server}/templates/tests/test-connection.yaml (100%) rename helm-charts/{ => go-web-server}/values.yaml (100%) diff --git a/helm-charts/go-simple-web-server-1.0.tgz b/helm-charts/go-simple-web-server-1.0.tgz index e1b122bdaf34260a45f793bc03d247070758d0a4..9764582ef893b9f3161fe8cad8bf08b3439b1a01 100644 GIT binary patch delta 3599 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 C?vb+q diff --git a/helm-charts/Chart.yaml b/helm-charts/go-web-server/Chart.yaml similarity index 100% rename from helm-charts/Chart.yaml rename to helm-charts/go-web-server/Chart.yaml diff --git a/helm-charts/templates/NOTES.txt b/helm-charts/go-web-server/templates/NOTES.txt similarity index 100% rename from helm-charts/templates/NOTES.txt rename to helm-charts/go-web-server/templates/NOTES.txt diff --git a/helm-charts/templates/_helpers.tpl b/helm-charts/go-web-server/templates/_helpers.tpl similarity index 100% rename from helm-charts/templates/_helpers.tpl rename to helm-charts/go-web-server/templates/_helpers.tpl diff --git a/helm-charts/templates/deployment.yaml b/helm-charts/go-web-server/templates/deployment.yaml similarity index 100% rename from helm-charts/templates/deployment.yaml rename to helm-charts/go-web-server/templates/deployment.yaml diff --git a/helm-charts/templates/hpa.yaml b/helm-charts/go-web-server/templates/hpa.yaml similarity index 100% rename from helm-charts/templates/hpa.yaml rename to helm-charts/go-web-server/templates/hpa.yaml diff --git a/helm-charts/templates/ingress.yaml b/helm-charts/go-web-server/templates/ingress.yaml similarity index 100% rename from helm-charts/templates/ingress.yaml rename to helm-charts/go-web-server/templates/ingress.yaml diff --git a/helm-charts/templates/service.yaml b/helm-charts/go-web-server/templates/service.yaml similarity index 100% rename from helm-charts/templates/service.yaml rename to helm-charts/go-web-server/templates/service.yaml diff --git a/helm-charts/templates/serviceaccount.yaml b/helm-charts/go-web-server/templates/serviceaccount.yaml similarity index 100% rename from helm-charts/templates/serviceaccount.yaml rename to helm-charts/go-web-server/templates/serviceaccount.yaml diff --git a/helm-charts/templates/tests/test-connection.yaml b/helm-charts/go-web-server/templates/tests/test-connection.yaml similarity index 100% rename from helm-charts/templates/tests/test-connection.yaml rename to helm-charts/go-web-server/templates/tests/test-connection.yaml diff --git a/helm-charts/values.yaml b/helm-charts/go-web-server/values.yaml similarity index 100% rename from helm-charts/values.yaml rename to helm-charts/go-web-server/values.yaml diff --git a/helm-charts/index.yaml b/helm-charts/index.yaml index aa1b821..f393fa2 100644 --- a/helm-charts/index.yaml +++ b/helm-charts/index.yaml @@ -3,13 +3,13 @@ entries: go-simple-web-server: - apiVersion: v2 appVersion: "1.0" - created: "2024-08-21T16:27:34.65841048+01:00" + created: "2024-08-21T17:33:25.345527611+01:00" description: A Helm chart for deploying a go web app server from a private container registry - digest: 412881c71791b175b4d11d0e56d76adf2d59bc41728f7a485ba9b17cc6cb1a62 + digest: b4bf5193f013ddf4f34a1912faeb5357a0d6b2dfbf24ad7e897d940e0d50c6b6 name: go-simple-web-server type: application urls: - https://cherrymu.github.io/process-out-challenge/go-simple-web-server-1.0.tgz version: "1.0" -generated: "2024-08-21T16:27:34.657940808+01:00" +generated: "2024-08-21T17:33:25.345181047+01:00" From 70c2e7678ef65eb16ef2265583476c9694ac7eaa Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 17:40:23 +0100 Subject: [PATCH 6/7] changed repo file --- ...b-server-1.0.tgz => go-simple-web-server-1.0.tgz | Bin helm-charts/index.yaml => index.yaml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename helm-charts/go-simple-web-server-1.0.tgz => go-simple-web-server-1.0.tgz (100%) rename helm-charts/index.yaml => index.yaml (100%) diff --git a/helm-charts/go-simple-web-server-1.0.tgz b/go-simple-web-server-1.0.tgz similarity index 100% rename from helm-charts/go-simple-web-server-1.0.tgz rename to go-simple-web-server-1.0.tgz diff --git a/helm-charts/index.yaml b/index.yaml similarity index 100% rename from helm-charts/index.yaml rename to index.yaml From c34144e5adc274374f25ae5add84740da3590ad2 Mon Sep 17 00:00:00 2001 From: Chandra Sekar Date: Wed, 21 Aug 2024 17:58:53 +0100 Subject: [PATCH 7/7] renamed files --- enviroments/providers.tf | 7 ------- .../local-dev/.terraform.lock.hcl | 0 .../null/3.2.2/linux_amd64/CHANGELOG.md | 0 .../hashicorp/null/3.2.2/linux_amd64/LICENSE | 0 .../hashicorp/null/3.2.2/linux_amd64/README.md | 0 .../3.2.2/linux_amd64/terraform-provider-null | Bin .../local-dev/deployment-test.yaml | 0 .../local-dev/kind-cluster.sh | 0 .../local-dev/kind-config.yaml | 0 {enviroments => environments}/local-dev/main.tf | 0 .../local-dev/terraform.tfstate | 0 .../local-dev/terraform.tfstate.backup | 0 go-simple-web-server-1.0.tgz | Bin 3623 -> 0 bytes 13 files changed, 7 deletions(-) delete mode 100644 enviroments/providers.tf rename {enviroments => environments}/local-dev/.terraform.lock.hcl (100%) rename {enviroments => environments}/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/CHANGELOG.md (100%) rename {enviroments => environments}/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/LICENSE (100%) rename {enviroments => environments}/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/README.md (100%) rename {enviroments => environments}/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/terraform-provider-null (100%) rename {enviroments => environments}/local-dev/deployment-test.yaml (100%) rename {enviroments => environments}/local-dev/kind-cluster.sh (100%) rename {enviroments => environments}/local-dev/kind-config.yaml (100%) rename {enviroments => environments}/local-dev/main.tf (100%) rename {enviroments => environments}/local-dev/terraform.tfstate (100%) rename {enviroments => environments}/local-dev/terraform.tfstate.backup (100%) delete mode 100644 go-simple-web-server-1.0.tgz diff --git a/enviroments/providers.tf b/enviroments/providers.tf deleted file mode 100644 index 031403a..0000000 --- a/enviroments/providers.tf +++ /dev/null @@ -1,7 +0,0 @@ -terraform { - required_providers { - kind = { - source = "hashicorp/kind" - } - } -} diff --git a/enviroments/local-dev/.terraform.lock.hcl b/environments/local-dev/.terraform.lock.hcl similarity index 100% rename from enviroments/local-dev/.terraform.lock.hcl rename to environments/local-dev/.terraform.lock.hcl diff --git a/enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/CHANGELOG.md b/environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/CHANGELOG.md similarity index 100% rename from enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/CHANGELOG.md rename to environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/CHANGELOG.md diff --git a/enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/LICENSE b/environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/LICENSE similarity index 100% rename from enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/LICENSE rename to environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/LICENSE diff --git a/enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/README.md b/environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/README.md similarity index 100% rename from enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/README.md rename to environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/README.md diff --git a/enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/terraform-provider-null b/environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/terraform-provider-null similarity index 100% rename from enviroments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/terraform-provider-null rename to environments/local-dev/.terraform/providers/registry.opentofu.org/hashicorp/null/3.2.2/linux_amd64/terraform-provider-null diff --git a/enviroments/local-dev/deployment-test.yaml b/environments/local-dev/deployment-test.yaml similarity index 100% rename from enviroments/local-dev/deployment-test.yaml rename to environments/local-dev/deployment-test.yaml diff --git a/enviroments/local-dev/kind-cluster.sh b/environments/local-dev/kind-cluster.sh similarity index 100% rename from enviroments/local-dev/kind-cluster.sh rename to environments/local-dev/kind-cluster.sh diff --git a/enviroments/local-dev/kind-config.yaml b/environments/local-dev/kind-config.yaml similarity index 100% rename from enviroments/local-dev/kind-config.yaml rename to environments/local-dev/kind-config.yaml diff --git a/enviroments/local-dev/main.tf b/environments/local-dev/main.tf similarity index 100% rename from enviroments/local-dev/main.tf rename to environments/local-dev/main.tf diff --git a/enviroments/local-dev/terraform.tfstate b/environments/local-dev/terraform.tfstate similarity index 100% rename from enviroments/local-dev/terraform.tfstate rename to environments/local-dev/terraform.tfstate diff --git a/enviroments/local-dev/terraform.tfstate.backup b/environments/local-dev/terraform.tfstate.backup similarity index 100% rename from enviroments/local-dev/terraform.tfstate.backup rename to environments/local-dev/terraform.tfstate.backup diff --git a/go-simple-web-server-1.0.tgz b/go-simple-web-server-1.0.tgz deleted file mode 100644 index 9764582ef893b9f3161fe8cad8bf08b3439b1a01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3623 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 t$Sr@~WI;