| templates | ||
| Chart.yaml | ||
| LICENSE | ||
| README.md | ||
| values.yaml | ||
Portfolio
A dynamic site that generates a personalised portfolio and resume with PDF support based on user-provided data.
Prerequisites
Note
You may refer to Orked for help with setting up a Kubernetes cluster that meets all the following prerequisites.
- Kubernetes 1.19+
- Helm 3.2.0+
- Longhorn 1.4.1+
External dependencies
Important
The following items are required to be set up prior to installing this chart.
This section does not apply to this chart.
Recommended configurations
Note
The following configuration recommendations might not be the default settings for this chart but are highly recommended. Please carefully consider them before configuring your installation.
This section does not apply to this chart.
Application configurations
Note
The following configurations are expected or recommended to be set up from within the application after completing the installation.
This section does not apply to this chart.
How to add the chart repo
-
Add the repo to your local machine:
git clone https://gitlab.com/irfanhakim/portfolio-chart.git ~/portfolio-chart -
Update the repo to retrieve the latest version of the chart:
git -C ~/portfolio-chart pull
How to install or upgrade a chart release
-
Get the values file of the Portfolio chart or an existing installation (release).
Get the latest Portfolio chart values file for a new installation:
helm show values ~/portfolio-chart > values.yamlAlternatively, get the values file of an existing Portfolio release:
helm get values ${releaseName} --namespace ${namespace} > values.yamlReplace
${releaseName}and${namespace}accordingly. -
Edit your Portfolio values file with the intended configurations:
nano values.yamlPay extra attention to the descriptions and sample values provided in the chart values file.
-
Install a new release for Portfolio or upgrade an existing Portfolio release:
helm upgrade --install ${releaseName} ~/portfolio-chart --namespace ${namespace} --create-namespace --values values.yaml --waitReplace
${releaseName}and${namespace}accordingly. -
Verify that your Portfolio release has been installed:
helm ls --namespace ${namespace} | grep "${releaseName}"Replace
${namespace}and${releaseName}accordingly. This should return the release information if the release has been installed.
How to uninstall a chart release
Caution
Uninstalling a release will irreversibly delete all the resources associated with the release, including any persistent data.
-
Uninstall the desired release:
helm uninstall ${releaseName} --namespace ${namespace} --waitReplace
${releaseName}and${namespace}accordingly. -
Verify that the release has been uninstalled:
helm ls --namespace ${namespace} | grep "${releaseName}"Replace
${namespace}and${releaseName}accordingly. This should return nothing if the release has been uninstalled.
Chart configurations
| Key | Type | Default | Description |
|---|---|---|---|
| data.site.file | string | "" |
The site global data file. Refer to https://gitlab.com/irfanhakim/portfolio. |
| data.site.name | string | "" |
The name of the site global data file. Default: "site.json". |
| data.user.file | string | "" |
The user global data file. Refer to https://gitlab.com/irfanhakim/portfolio. |
| data.user.name | string | "" |
The name of the user global data file. Default: "user.json". |
| image.init.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Init container image. Default: "IfNotPresent". |
| image.init.registry | string | "" |
The registry where the Init container image is hosted. Default: "docker.io". |
| image.init.repository | string | "" |
The name of the repository that contains the Init container image used. Default: "busybox". |
| image.init.tag | string | "" |
The tag that specifies the version of the Init container image used. Default: "1.36.1". |
| image.portfolio.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Portfolio container image. Default: "IfNotPresent". |
| image.portfolio.registry | string | "" |
The registry where the Portfolio container image is hosted. Default: "git.moekai.net". |
| image.portfolio.repository | string | "" |
The name of the repository that contains the Portfolio container image used. Default: "irfan/portfolio". |
| image.portfolio.tag | string | "" |
The tag that specifies the version of the Portfolio container image used. Default: Chart appVersion. |
| image.puppeteer.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Puppeteer container image. Default: "IfNotPresent". |
| image.puppeteer.registry | string | "" |
The registry where the Puppeteer container image is hosted. Default: "git.moekai.net". |
| image.puppeteer.repository | string | "" |
The name of the repository that contains the Puppeteer container image used. Default: "irfan/pepatung". |
| image.puppeteer.tag | string | "" |
The tag that specifies the version of the Puppeteer container image used. Default: "1.0.0-stable-r2". |
| imagePullSecrets | list | [] |
Credentials used to securely authenticate and authorise the pulling of container images from private registries. |
| ingress.clusterIssuer | string | "" |
The name of the cluster issuer for Ingress. Default: "letsencrypt-dns-prod". |
| ingress.customAnnotations | list | [] |
Additional configuration annotations to be added to the Ingress resource. Items: .prefix, .name, .value. |
| ingress.enabled | bool | false |
Specifies whether Ingress should be enabled for hosting Portfolio services. |
| ingress.www | bool | false |
Specifies whether the WWW subdomain should be enabled. |
| portfolio.assets | list | [] |
Optional asset files to include building the Portfolio site. Items: .path, .file. |
| portfolio.dist | string | "" |
The site dist archive file. |
| portfolio.domain | string | "" |
The Ingress domain name that hosts the Portfolio server. Default: "localhost". |
| portfolio.dumb | bool | false |
Specifies whether to host the Portfolio server without building the site in-container beforehand. |
| portfolio.initScript | string | "" |
Custom init script to run before the Portfolio container starts. |
| puppeteer.absoluteLinks | bool | true |
Specifies whether to make relative links in target site absolute with the Portfolio domain. |
| puppeteer.checksum.selector | string | "" |
The query selector to identify the element where the checksum should be added. |
| puppeteer.checksum.text | string | "" |
The text within the element where the checksum should be added. |
| puppeteer.enabled | bool | true |
Specifies whether Puppeteer should be included in the Portfolio stack. |
| puppeteer.interval | string | "" |
Interval in milliseconds to check URL availability before capturing a PDF. Default: "5000". |
| puppeteer.output | string | "" |
The name of the output PDF file. Default: "resume.pdf". |
| puppeteer.pageBreak.selector | string | "" |
The query selector to identify the element where a page break should be added. |
| puppeteer.pageBreak.text | string | "" |
The text within the element where a page break should be added. |
| puppeteer.pdf.format | string | "" |
The paper size format of the output PDF file. Default: "A4". |
| puppeteer.pdf.margin | string | "" |
Space-separated margin values for the PDF in the order: top, right, bottom, left. |
| puppeteer.pdf.scale | string | "" |
The scaling factor for rendering the web page of the output PDF. Default: "0.84". |
| puppeteer.siteUrl | string | "" |
The full URL of the site Puppeteer should capture as a PDF. Default: "http://localhost:80/resume". |
| replicaCount | string | "" |
The desired number of running replicas for Portfolio. Default: "1". |
| resources.portfolio | object | {} |
Portfolio container resources. |
| resources.puppeteer | object | {} |
Puppeteer container resources. |
| service.nodePort | string | "" |
The optional node port to expose when the service type is NodePort. |
| service.port | string | "" |
The port on which the Portfolio server should listen for connections. Default: "80". |
| service.type | string | "" |
The type of service used to expose Portfolio services. Default: "ClusterIP". |
| storage.data.accessMode | string | "" |
The access mode defining how the data storage can be mounted. Default: "ReadWriteMany". |
| storage.data.enabled | bool | false |
Specifies whether persistent storage should be provisioned for data storage. |
| storage.data.mountPath | string | "" |
The path where the data storage should be mounted on the container. Default: "/base/dist". |
| storage.data.storage | string | "" |
The default amount of persistent storage allocated for the data storage. Default: "1Gi". |
| storage.data.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the data storage. Default: "longhorn". |
| storage.data.subPath | string | "" |
The subpath within the data storage to mount to the container. Leave empty if not required. |
| storage.docs.accessMode | string | "" |
The access mode defining how the documents storage can be mounted. Default: "ReadWriteMany". |
| storage.docs.enabled | bool | true |
Specifies whether persistent storage should be provisioned for documents storage. |
| storage.docs.mountPath | string | "" |
The path where the documents storage should be mounted on the container. Default: "/base/dist/assets/docs". |
| storage.docs.storage | string | "" |
The default amount of persistent storage allocated for the documents storage. Default: "100Mi". |
| storage.docs.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the documents storage. Default: "longhorn". |
| storage.docs.subPath | string | "" |
The subpath within the documents storage to mount to the container. Leave empty if not required. |
| storage.log.accessMode | string | "" |
The access mode defining how the log storage can be mounted. Default: "ReadWriteMany". |
| storage.log.enabled | bool | false |
Specifies whether persistent storage should be provisioned for log storage. |
| storage.log.mountPath | string | "" |
The path where the log storage should be mounted on the container. Default: "/var/log/apache2". |
| storage.log.storage | string | "" |
The default amount of persistent storage allocated for the log storage. Default: "100Mi". |
| storage.log.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the log storage. Default: "longhorn". |
| storage.log.subPath | string | "" |
The subpath within the log storage to mount to the container. Leave empty if not required. |
License
This project is licensed under the AGPL-3.0-only license. Please refer to the LICENSE file for more information.