Replace SA namespace in RBAC

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
pull/787/head
Stefan Prodan 4 years ago
parent f4db124d50
commit 4c29a1ca27
No known key found for this signature in database
GPG Key ID: 3299AEB0E4085BAF

@ -17,8 +17,10 @@ limitations under the License.
package install
import (
"bytes"
"context"
"fmt"
"io/ioutil"
"net/http"
"os"
"path"
@ -91,9 +93,23 @@ func generate(base string, options Options) error {
return fmt.Errorf("generate roles kustomization failed: %w", err)
}
if err := copyFile(filepath.Join(base, "rbac.yaml"), filepath.Join(base, "roles/rbac.yaml")); err != nil {
rbacFile := filepath.Join(base, "roles/rbac.yaml")
if err := copyFile(filepath.Join(base, "rbac.yaml"), rbacFile); err != nil {
return fmt.Errorf("generate rbac failed: %w", err)
}
// workaround for kustomize not being able to patch the SA in ClusterRoleBindings
defaultNS := MakeDefaultOptions().Namespace
if defaultNS != options.Namespace {
rbac, err := ioutil.ReadFile(rbacFile)
if err != nil {
return fmt.Errorf("reading rbac file failed: %w", err)
}
rbac = bytes.ReplaceAll(rbac, []byte(defaultNS), []byte(options.Namespace))
if err := ioutil.WriteFile(rbacFile, rbac, os.ModePerm); err != nil {
return fmt.Errorf("replacing service account namespace in rbac failed: %w", err)
}
}
return nil
}

Loading…
Cancel
Save