Coder Social home page Coder Social logo

Comments (5)

naseemkullah avatar naseemkullah commented on July 17, 2024

cc @yurishkuro @pavolloffay @jpkrohling As application developers, your input is highly appreciated here.

cc @arpitjindal97 Would like to get your thoughts on how to address the breaking change as well.

from helm-charts.

yurishkuro avatar yurishkuro commented on July 17, 2024

@naseemkullah what breaking change are you referring to?

from helm-charts.

naseemkullah avatar naseemkullah commented on July 17, 2024

Thanks @yurishkuro, you've made me realize that there is no breaking change. We do have a flaw with regards to the helm chart's schema job, I will open a separate issue for this.

Installed version with old keyspace name

helm install test jaegertracing/jaeger --version 0.18.4
$ k logs test-jaeger-cassandra-schema-tgd2q

[...]
Generating the schema for the keyspace jaeger_v1_dc1 and datacenter dc1
Using template file /cassandra-schema/v003.cql.tmpl with parameters:
    mode = prod
    datacenter = dc1
    keyspace = jaeger_v1_dc1
    replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2' }
    trace_ttl = 172800
    dependencies_ttl = 0

Upgraded to new schema name, error occured due to a change in the job, but ideally this should create a different job.

$ helm upgrade test jaegertracing/jaeger

Error: UPGRADE FAILED: cannot patch "test-jaeger-cassandra-schema" with kind Job: Job.batch "test-jaeger-cassandra-schema" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"test-jaeger-cassandra-schema", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{"controller-uid":"1d817217-3b34-11ea-b23d-42010a8e008a", "job-name":"test-jaeger-cassandra-schema"}, Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:"test-jaeger-cassandra-schema", Image:"jaegertracing/jaeger-cassandra-schema:1.16.0", Command:[]string(nil), Args:[]string(nil), WorkingDir:"", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar{core.EnvVar{Name:"CQLSH_HOST", Value:"test-cassandra", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:"MODE", Value:"prod", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:"DATACENTER", Value:"dc1", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:"CASSANDRA_PORT", Value:"9042", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:"CASSANDRA_USERNAME", Value:"user", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:"CASSANDRA_PASSWORD", Value:"", ValueFrom:(*core.EnvVarSource)(0xc00e7ebf60)}, core.EnvVar{Name:"KEYSPACE", Value:"jaeger_v1_test", ValueFrom:(*core.EnvVarSource)(nil)}}, Resources:core.ResourceRequirements{Limits:core.ResourceList(nil), Requests:core.ResourceList(nil)}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(*core.Probe)(nil), ReadinessProbe:(*core.Probe)(nil), Lifecycle:(*core.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"IfNotPresent", SecurityContext:(*core.SecurityContext)(nil), Stdin:false, StdinOnce:false, TTY:false}}, RestartPolicy:"OnFailure", TerminationGracePeriodSeconds:(*int64)(0xc00b3425f0), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:"ClusterFirst", NodeSelector:map[string]string(nil), ServiceAccountName:"test-jaeger-cassandra-schema", AutomountServiceAccountToken:(*bool)(nil), NodeName:"", SecurityContext:(*core.PodSecurityContext)(0xc0250cba40), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(*core.Affinity)(nil), SchedulerName:"default-scheduler", Tolerations:[]core.Toleration(nil), HostAliases:[]core.HostAlias(nil), PriorityClassName:"", Priority:(*int32)(nil), DNSConfig:(*core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(*string)(nil), EnableServiceLinks:(*bool)(nil)}}: field is immutable

After deleting the job and reinstalling the chart, it's fine.

k delete job test-jaeger-cassandra-schema
helm upgrade test jaegertracing/jaeger
$ k logs test-jaeger-cassandra-schema-jzzrj

system_schema  system              system_traces
system_auth    system_distributed  jaeger_v1_dc1

Generating the schema for the keyspace jaeger_v1_test and datacenter dc1
Using template file /cassandra-schema/v003.cql.tmpl with parameters:
    mode = prod
    datacenter = dc1
    keyspace = jaeger_v1_test
    replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2' }
    trace_ttl = 172800
    dependencies_ttl = 0

from helm-charts.

naseemkullah avatar naseemkullah commented on July 17, 2024

I do find it interesting that mode = prod but keyspace = jaeger_v1_test 🤷‍♂

from helm-charts.

arpitjindal97 avatar arpitjindal97 commented on July 17, 2024

I think we can write jaeger_v1_dc1 as default in values.yaml. It will not break existing changes and also provide user the freedom to manipulate it.

from helm-charts.

Related Issues (20)

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.