| 3899 | } |
| 3900 | |
| 3901 | func transformValidationInitContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec) error { |
| 3902 | for i, initContainer := range obj.Spec.Template.Spec.InitContainers { |
| 3903 | // skip if not validation initContainer |
| 3904 | if !strings.Contains(initContainer.Name, "validation") { |
| 3905 | continue |
| 3906 | } |
| 3907 | |
| 3908 | // TODO: refactor the component-specific validation logic so that we are not duplicating TransformValidatorComponent() |
| 3909 | // Pass env for driver-validation init container |
| 3910 | if strings.HasPrefix(initContainer.Name, "driver") { |
| 3911 | if len(config.Validator.Driver.Env) > 0 { |
| 3912 | for _, env := range config.Validator.Driver.Env { |
| 3913 | setContainerEnv(&(obj.Spec.Template.Spec.InitContainers[i]), env.Name, env.Value) |
| 3914 | } |
| 3915 | } |
| 3916 | } |
| 3917 | |
| 3918 | // Pass env for toolkit-validation init container |
| 3919 | if strings.HasPrefix(initContainer.Name, "toolkit") { |
| 3920 | if len(config.Validator.Toolkit.Env) > 0 { |
| 3921 | for _, env := range config.Validator.Toolkit.Env { |
| 3922 | setContainerEnv(&(obj.Spec.Template.Spec.InitContainers[i]), env.Name, env.Value) |
| 3923 | } |
| 3924 | } |
| 3925 | } |
| 3926 | |
| 3927 | // update validation image |
| 3928 | image, err := gpuv1.ImagePath(&config.Validator) |
| 3929 | if err != nil { |
| 3930 | return err |
| 3931 | } |
| 3932 | obj.Spec.Template.Spec.InitContainers[i].Image = image |
| 3933 | // update validation image pull policy |
| 3934 | if config.Validator.ImagePullPolicy != "" { |
| 3935 | obj.Spec.Template.Spec.InitContainers[i].ImagePullPolicy = gpuv1.ImagePullPolicy(config.Validator.ImagePullPolicy) |
| 3936 | } |
| 3937 | // update the security context for the validator container |
| 3938 | transformValidatorSecurityContext(&obj.Spec.Template.Spec.InitContainers[i]) |
| 3939 | } |
| 3940 | // add any pull secrets needed for validation image |
| 3941 | if len(config.Validator.ImagePullSecrets) > 0 { |
| 3942 | addPullSecrets(&obj.Spec.Template.Spec, config.Validator.ImagePullSecrets) |
| 3943 | } |
| 3944 | return nil |
| 3945 | } |
| 3946 | |
| 3947 | func addPullSecrets(podSpec *corev1.PodSpec, secrets []string) { |
| 3948 | for _, secret := range secrets { |