mirror of https://github.com/fluxcd/flux2.git
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Copyright 2020, 2021 The Flux authors. All rights reserved.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
IN_PATH=${1:-"$(realpath $(dirname "${BASH_SOURCE[0]}")/../..)/manifests"}
 | 
						|
OUT_PATH=${2:-"$(realpath $(dirname "${BASH_SOURCE[0]}")/../..)/cmd/flux/manifests"}
 | 
						|
TAR=${3}
 | 
						|
 | 
						|
info() {
 | 
						|
    echo '[INFO] ' "$@"
 | 
						|
}
 | 
						|
 | 
						|
fatal() {
 | 
						|
    echo '[ERROR] ' "$@" >&2
 | 
						|
    exit 1
 | 
						|
}
 | 
						|
 | 
						|
build() {
 | 
						|
  info "building $(basename $2)"
 | 
						|
  kustomize build "$1" > "$2"
 | 
						|
}
 | 
						|
 | 
						|
if ! [ -x "$(command -v kustomize)" ]; then
 | 
						|
  fatal 'kustomize is not installed'
 | 
						|
fi
 | 
						|
 | 
						|
rm -rf $OUT_PATH
 | 
						|
mkdir -p $OUT_PATH
 | 
						|
files=""
 | 
						|
 | 
						|
info using kustomize "$(kustomize version)"
 | 
						|
 | 
						|
# build controllers
 | 
						|
for controller in ${IN_PATH}/bases/*/; do
 | 
						|
    output_path="${OUT_PATH}/$(basename $controller).yaml"
 | 
						|
    build $controller $output_path
 | 
						|
    files+=" $(basename $output_path)"
 | 
						|
done
 | 
						|
 | 
						|
# build rbac
 | 
						|
rbac_path="${IN_PATH}/rbac"
 | 
						|
rbac_output_path="${OUT_PATH}/rbac.yaml"
 | 
						|
build $rbac_path $rbac_output_path
 | 
						|
files+=" $(basename $rbac_output_path)"
 | 
						|
 | 
						|
# build policies
 | 
						|
policies_path="${IN_PATH}/policies"
 | 
						|
policies_output_path="${OUT_PATH}/policies.yaml"
 | 
						|
build $policies_path $policies_output_path
 | 
						|
files+=" $(basename $policies_output_path)"
 | 
						|
 | 
						|
# create tarball
 | 
						|
if [[ -n $TAR ]];then
 | 
						|
  info "archiving $TAR"
 | 
						|
  cd ${OUT_PATH} && tar -czf $TAR $files
 | 
						|
fi
 |