Git Product home page Git Product logo

component-chart's People

Contributors

89luca89 avatar alsaatp avatar chasebolt avatar danielthiry avatar dependabot[bot] avatar fabiankramm avatar gustaff-weldon avatar iamtio avatar jaylor12 avatar jrampon avatar lizardruss avatar lukasgentele avatar maikelvl avatar mathiasvandepol avatar nvitius avatar rishang avatar rohantmp avatar sergeysedoy97 avatar shaunc avatar snyk-bot avatar williamdasilva avatar zefman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

component-chart's Issues

volumes only used in initContainers are omitted from manifests

version: v1beta11

vars:
- name: IMAGE
  value: username/app

deployments:
- name: test
  helm:
    componentChart: true
    values:
      initContainers:
      - image: ${IMAGE}
        volumeMounts:
          - containerPath: /foo
            volume:
              name: foo
      containers:
      - image: ${IMAGE}
      volumes:
        - name: foo
          secret:
            secretName: foo        

yields: (devspace render):

---
# Source: component-chart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: "test"
  labels:
    "app.kubernetes.io/name": "devspace-app"
    "app.kubernetes.io/component": "test"
    "app.kubernetes.io/managed-by": "Helm"
  annotations:
    "helm.sh/chart": "component-chart-0.8.2"
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      "app.kubernetes.io/name": "devspace-app"
      "app.kubernetes.io/component": "test"
      "app.kubernetes.io/managed-by": "Helm"
  template:
    metadata:
      labels:
        "app.kubernetes.io/name": "devspace-app"
        "app.kubernetes.io/component": "test"
        "app.kubernetes.io/managed-by": "Helm"
      annotations:
        "helm.sh/chart": "component-chart-0.8.2"
    spec:
      imagePullSecrets:
      nodeSelector:
        null
      nodeName:
        null
      affinity:
        null
      tolerations:
        null
      dnsConfig:
        null
      hostAliases:
        null
      overhead:
        null
      readinessGates:
        null
      securityContext:
        null
      topologySpreadConstraints:
        null
      terminationGracePeriodSeconds: 5
      ephemeralContainers:
        null
      containers:
        - image: "username/app"
          name: "container-0"
          command:
          args:
          env:
            null
          envFrom:
            null
          securityContext:
            null
          lifecycle:
            null
          livenessProbe:
            null
          readinessProbe:
            null
          startupProbe:
            null
          volumeDevices:
            null
          volumeMounts:
      initContainers:
        - image: "username/app"
          name: "init-container-0"
          command:
          args:
          env:
            null
          envFrom:
            null
          securityContext:
            null
          lifecycle:
            null
          livenessProbe:
            null
          readinessProbe:
            null
          startupProbe:
            null
          volumeDevices:
            null
          volumeMounts:
            - mountPath: "/foo"
              name: "foo"
              readOnly: false
      volumes:
  volumeClaimTemplates:
---
# Source: component-chart/templates/deployment.yaml
# Create headless service for StatefulSet

version: componentChart 0.8.4
devspace cli version 5.17.0

feature: support podSecurityContext, serviceAccounts

I am trying to create a deployment that supports s3fuse in EKS. Apparently I need podSecurityContext: privileged: true and serviceAccounts: [ ... ] for IRSA service account. It would seem that I can't use the component chart for this right now -- but it would be nice if I could! :)

\feature

Question: how to use given chart version

I would like to use an emptyDir volume, which component-chart 0.8.4 supports. However, it seems that my deployments are using 0.8.2 (devspace version 5.17.0) and I can't figure out how to tell it to use a different version of the component chart.

When I add emptyDir I get the error:

[fatal]  deployments[6].helm.componentChart: component values are incorrect: yaml: unmarshal errors:
  line 49: field emptyDir not found in type latest.VolumeConfig

I tried removing emptyDir in order to deploy and then upgrade the chart, hoping I could then add back in. However, I get:

$ helm upgrade -n crane-web pgbouncer https://charts.devspace.sh/component-chart
Error: failed to download "https://charts.devspace.sh/component-chart"

inconsistent app.kubernetes.io/name label

In the service the app.kubernetes.io/name label is the name of the release. In the deployment it's devspace-app (and there's another label that points to the name of the release). It'd be less surprising if they were consistent, I think.

volumeClaimsTemplate is generated for Deployments

While expected for a StatefulSet, the volumeClaimsTemplate property is unexpected for a Deployment. Generating that property for a Deployment makes it hard to scan the rendered yaml manifests by devspace (e.g. with trivy or terrascan).

Allow NodePort to be specified for services to allow connection to services such as databases

Hi All,

I have just started using DevSpace which seems really nice!!.

I currently migrating from Docker Compose with 10 services (Redis, MongoDB, NodeJS, Caddy etc).

I am trying to configure a MongoDB ReplicaSet Deployment using the Component Chart and our existing dockerfiles.

So far, I can get MongoDB to build and deploy fine on a K3D development cluster. The last remaining challenge is accessing the database server from outside the cluster.

From what I can tell, there appears to be no way to configure a nodePort for a service. You can set the type but cannot specify a port. It is always a random port.

If I try to add nodePort to the config, I get the following error - line 7: field nodePort not found in type latest.ServicePortConfig

So for now, I stopped using the component chart and switched to using manifests directly. Using manifests, I was able to set a nodePort on the service and can access the database from the host machine.

Is there a way to specify a nodePort?

Regards,
Tarek

no matches for kind "HorizontalPodAutoscaler" in version "autoscaling/v2beta1"

I guess in Kubernetes 1.25 they removed “autoscaling/v2beta1”.
The error that I get is:
Error: UPGRADE FAILED: resource mapping not found for name: "my-release" no matches for kind "HorizontalPodAutoscaler" in version "autoscaling/v2beta1"

Can you please update the charts to support k8s v1.25+? Thank you

usage of CSI drivers in volume.....

this might be entirely too advanced to reasonably request (and I can probably workaround with classic Helm charts)

I'm using vault-csi and secrets-store-csi to make Super Awesome k8s-Secrets integrations.

it requires a chunk volumes similar to this in order to instantiate Secrets Objects and perform the Vault API calls...

       volumes:
       - name: vault
         csi:
           driver: secrets-store.csi.k8s.io
           readOnly: true
           volumeAttributes:
             secretProviderClass: vault-api

predictably, it results in:

[fatal]  deployments[2].helm.componentChart: component values are incorrect: yaml: unmarshal errors:
  line 76: field csi not found in type latest.VolumeConfig
github.com/loft-sh/devspace/pkg/devspace/config/loader.validateDeployments

kubernetes-csi is some pretty new and powerful stuff, and I think it's The Way everything is going, sort of an "operating-system driver" metaphor for different types of vendor-specific or software-specific storage backends. (I believe most of the "built-in storage engines" are deprecated for CSI already.)

I did a quick look for csi in the repo and found nothing, so a quick smell-test on how possible and important it is before I keep attempting to hack on the problem. I'd rather contribute to Upstream and empower more people than workaround with classic Helm chart. perhaps the YAML smiles upon us today and extending VolumeConfig for csi is "fairly simple".

Add namespace to manifests, to support devspace render / helm template

As you can see here, helm is not going to add a namespace when we run helm template.
For this reason, many helm charts add a namespace: {{ .Release.Namespace }} to each manifest, so when running helm template/devspace render, the manifests include the namespace, so argocd or any other gitops like tool is able to work correctly.

Can you please add namespace: {{ .Release.Namespace }} ?

No way to specify container ports

I am using component-chart with devspace. I want to deploy a PodMonitor into my stack but because I cannot define container ports there is no way to expose my metrics endpoint on Pod level. I am forced to use a ServiceMonitor instead.

Any chance this can be added ?

Example of ingress for Traefik on K3S

I'm deploying to a K3S cluster which has built-in Traefik ingress controller. It would be great to see an example of how that is configured in the component chart.

Wildcard domain causing parsing issues

Hello,

When using wildcard domains in the host section, during the deployment there is a parsing issue:

rules:
  - host: "*.domain.tld"
[fatal]  Error deploying api: Unable to deploy helm chart: YAML parse error on component-chart/templates/ingress.yaml: error converting YAML to JSON: yaml: line 33: did not find expected alphabetic or numeric character

This should be fixed by adding quotes around the domain in the helm chart. See PR #31

[feature-request] Allow to add ConfigMaps inline

For some usecases it would be great to add ConfigMaps from inline in devspace.yaml, so they can immediately used as volume in the containers.

It is currently possible to do this using kustomize's configMapGenerator along with helmChartInflationGenerator inflating the component-chart. However, this requires an additional file and it would be great to have it all completely inline with devspace.yaml.

One great way to implement this, would be to directly inject files as explained here: https://helm.sh/docs/chart_template_guide/accessing_files/#configmap-and-secrets-utility-functions

Error when setting averageRelativeMemory in autoScaling.horizontal

For Horizontal Pod Autoscaling,

While using autoscaling based on targetAverageUtilization, in was facing this issue in DevSpace version : 6.0.1

Input:

  replicas: 1
  autoScaling:
    horizontal:  
      maxReplicas: 3
      averageRelativeMemory: 40

Error:

ValidationError(HorizontalPodAutoscaler.spec.metrics[0].resource.targetAverageUtilization): invalid type for io.k8s.api.autoscaling.v2beta1.ResourceMetricSource.targetAverageUtilization: got "string", expected "integer"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.