Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit eab323e

Browse files
author
Corneil du Plessis
authored
Update Carvel packaging and deployment scripts. (#5676)
1 parent 1a1d0d2 commit eab323e

17 files changed

+112
-76
lines changed

spring-cloud-dataflow-docs/src/main/asciidoc/configuration-carvel.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ These scripts assume you are connected to a Kubernetes cluster and `kubectl` is
5151
| [scdf-type] (oss, pro)
5252
| Creates `scdf-values.yml` in current directory based on `scdf-pro-values.yml` or `scdf-oss-values.yml`
5353

54+
| carvel-import-secret.sh
55+
| <secret-name> <namespace> [secret-namespace] [--import|--placeholder]
56+
| [--plarholder] Creates place holder secret in namespace. [--import] Creates `SecretImport` for secretgen-controller.
57+
5458
| setup-scdf-repo.sh
5559
| [scdf-type] (oss, pro)
5660
| Creates the namespace and installs the relevant Carvel package and credentials. If the optional _scdf-type_ is not provided the environmental variable `SCDF_TYPE` will be used.

src/carvel/config/skipper.star

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ load("monitoring/monitoring.star", "grafana_enabled")
77
load("monitoring/monitoring.star", "prometheus_rsocket_proxy_enabled")
88
load("common/common.star", "non_empty_string")
99
def env_config():
10-
env = ""
10+
env = []
11+
env.append("LANG=en_US.utf8")
12+
env.append("LC_ALL=en_US.utf8")
13+
env.append("JDK_JAVA_OPTIONS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8")
1114
if external_rabbitmq_enabled():
12-
env = external_rabbitmq_env_str()
15+
env.append(external_rabbitmq_env_str())
1316
elif external_kafka_enabled():
14-
env = external_kafka_env_str()
17+
env.append(external_kafka_env_str())
1518
end
16-
return env
19+
return ",".join(env)
1720
end
1821

1922
def skipper_image():
@@ -32,6 +35,7 @@ def skipper_container_env():
3235
envs = []
3336
envs.extend([{"name": "LANG", "value": "en_US.utf8"}])
3437
envs.extend([{"name": "LC_ALL", "value": "en_US.utf8"}])
38+
envs.extend([{"name": "JDK_JAVA_OPTIONS", "value": "-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"}])
3539
envs.extend([{"name": "SPRING_CLOUD_CONFIG_ENABLED", "value": "false"}])
3640
envs.extend([{"name": "SPRING_CLOUD_KUBERNETES_CONFIG_ENABLE_API", "value": "false"}])
3741
envs.extend([{"name": "SPRING_CLOUD_KUBERNETES_SECRETS_ENABLE_API", "value": "false"}])

src/carvel/test/servers.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ describe('servers', () => {
252252
const container = deploymentContainer(deployment, SKIPPER_NAME);
253253
const envs = containerEnvValues(container);
254254
expect(envs).toBeTruthy();
255-
expect(envs).toHaveLength(6);
255+
expect(envs).toHaveLength(7);
256256
expect(envs).toEqual(
257257
expect.arrayContaining([
258258
expect.objectContaining({

src/deploy/carvel/add-local-registry-secret.sh

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,17 @@ SECRET_NAME=$1
2121
REGISTRY_NAME=$2
2222
REGISTRY_USER=$3
2323
REGISTRY_PWD=$4
24+
SECRET_NS=$NS
2425
if [ "$5" != "" ]; then
25-
NS=$5
26+
SECRET_NS=$5
2627
fi
27-
check_env NS
28-
kubectl create secret docker-registry "$SECRET_NAME" \
29-
--docker-server="$REGISTRY_NAME" \
30-
--docker-username="$REGISTRY_USER" \
31-
--docker-password="$REGISTRY_PWD" \
32-
--namespace "$NS"
28+
check_env SECRET_NAME
29+
check_env SECRET_NS
3330

31+
#kubectl create secret docker-registry "$SECRET_NAME" \
32+
# --docker-server="$REGISTRY_NAME" \
33+
# --docker-username="$REGISTRY_USER" \
34+
# --docker-password="$REGISTRY_PWD" \
35+
# --namespace "$NS"
3436

37+
"$SCDIR/carvel-import-secret.sh" "$SECRET_NAME" "$SECRET_NS"

src/deploy/carvel/carvel-add-registry-secret.sh

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,35 @@ function check_env() {
1313
}
1414

1515
function create_secret() {
16-
echo "Create docker-registry secret $1 for $2 username=$3"
17-
kubectl create secret docker-registry "$1" \
18-
--docker-server="$2" \
19-
--docker-username="$3" \
20-
--docker-password="$4" \
21-
--namespace "$5"
22-
kubectl create secret docker-registry "$1" \
23-
--docker-server="$2" \
24-
--docker-username="$3" \
25-
--docker-password="$4" \
26-
--namespace "$NS"
27-
# "$SCDIR/carvel-import-secret.sh" "$1" "$NS" "$5"
28-
echo "Annotating $1 for image-pull-secret"
29-
kubectl annotate secret "$1" --namespace "$5" secretgen.carvel.dev/image-pull-secret=""
30-
kubectl annotate secret "$1" --namespace "$NS" secretgen.carvel.dev/image-pull-secret=""
16+
SCRT_NAME=$1
17+
REG_NAME=$2
18+
REG_USER=$3
19+
REG_PWD=$4
20+
SCRT_NS=$5
21+
echo "Create docker-registry secret $SCRT_NAME for $REG_NAME username=$REG_USER"
22+
kubectl create secret docker-registry "$SCRT_NAME" \
23+
--docker-server="$REG_NAME" \
24+
--docker-username="$REG_USER" \
25+
--docker-password="$REG_PWD" \
26+
--namespace "$SCRT_NS"
27+
# kubectl create secret docker-registry "$SCRT_NAME" \
28+
# --docker-server="$REG_NAME" \
29+
# --docker-username="$REG_USER" \
30+
# --docker-password="$4" \
31+
# --namespace "$NS"
32+
echo "Annotating $SCRT_NAME for image-pull-secret"
33+
# kubectl annotate secret "$SCRT_NAME" --namespace "$SCRT_NS" secretgen.carvel.dev/image-pull-secret=""
34+
# kubectl annotate secret "$1" --namespace "$NS" secretgen.carvel.dev/image-pull-secret=""
35+
echo "Exporting $SCRT_NAME from $SCRT_NS"
36+
kubectl apply -f - <<EOF
37+
apiVersion: secretgen.carvel.dev/v1alpha1
38+
kind: SecretExport
39+
metadata:
40+
name: ${SCRT_NAME}
41+
namespace: ${SCRT_NS}
42+
spec:
43+
toNamespace: '*'
44+
EOF
3145

3246
}
3347
if [ "$4" = "" ]; then
@@ -41,6 +55,8 @@ REGISTRY_PWD=$4
4155
if [ "$5" != "" ]; then
4256
NS=$5
4357
fi
58+
check_env SECRET_NAME
59+
check_env REGISTRY_NAME
60+
check_env REGISTRY_USER
4461
check_env NS
4562
create_secret "$SECRET_NAME" "$REGISTRY_NAME" "$REGISTRY_USER" "$REGISTRY_PWD" "secrets-ns"
46-

src/deploy/carvel/carvel-import-secret.sh

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@ if [ "$2" = "" ]; then
33
echo "Argument required: <secret-name> <target-namespace>"
44
exit 1
55
fi
6+
IMPORT_TYPE=placeholder
67
SECRET_NAME=$1
78
NAMESPACE=$2
8-
if [ "$3" != "" ]; then
9+
if [ "$3" != "" ] && [ "$3" != "--import" ] && [ "$3" != "--placeholder" ]; then
910
FROM_NAMESPACE=$3
11+
shift
1012
else
1113
FROM_NAMESPACE=secret-ns
1214
fi
15+
if [ "$3" == "--import" ]; then
16+
IMPORT_TYPE=import
17+
elif [ "$3" == "--placeholder" ]; then
18+
IMPORT_TYPE=placeholder
19+
fi
1320
if [ "$SECRET_NAME" = "" ]; then
1421
echo "SECRET_NAME required"
1522
exit 2
@@ -18,9 +25,8 @@ if [ "$NAMESPACE" = "" ]; then
1825
echo "NAMESPACE required"
1926
exit 2
2027
fi
21-
22-
FILE="$(mktemp).yml"
23-
cat >$FILE <<EOF
28+
if [ "$IMPORT_TYPE" == "import" ]; then
29+
kubectl apply -f - <<EOF
2430
apiVersion: secretgen.carvel.dev/v1alpha1
2531
kind: SecretImport
2632
metadata:
@@ -29,12 +35,23 @@ metadata:
2935
spec:
3036
fromNamespace: $FROM_NAMESPACE
3137
EOF
32-
echo "Create SecretImport $SECRET_NAME from $FROM_NAMESPACE to $NAMESPACE"
33-
if [ "$DEBUG" = "true" ]; then
34-
cat $FILE
38+
echo "Created SecretImport $SECRET_NAME from $FROM_NAMESPACE to $NAMESPACE"
39+
else
40+
kubectl apply -f - <<EOF
41+
apiVersion: v1
42+
kind: Secret
43+
metadata:
44+
name: $SECRET_NAME
45+
namespace: $NAMESPACE
46+
annotations:
47+
secretgen.carvel.dev/image-pull-secret: ""
48+
type: kubernetes.io/dockerconfigjson
49+
data:
50+
.dockerconfigjson: e30K
51+
EOF
52+
echo "Created Placeholder Secret $SECRET_NAME in $NAMESPACE"
3553
fi
36-
kubectl apply -f $FILE
37-
rm -f $FILE
54+
3855
if [ "$DEBUG" = "true" ]; then
3956
kubectl describe secret $SECRET_NAME --namespace $NAMESPACE
4057
fi

src/deploy/carvel/carvel-prepare-namespaces.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ if ((PRESENT > 0)); then
3939
fi
4040
kubectl create serviceaccount "$SA" --namespace $NS
4141

42-
$SCDIR/carvel-add-registry-secret.sh scdf-metadata-default docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
42+
$SCDIR/carvel-add-registry-secret.sh scdfmetadata docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
4343
$SCDIR/carvel-add-registry-secret.sh reg-creds-dockerhub docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
4444

4545

src/deploy/carvel/deploy-local-broker.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,15 @@ export BROKER
4747
yq ".scdf.binder.type=\"$BINDER_NAME\"" -i ./scdf-values.yml
4848

4949
if [ "$BROKER" = "rabbitmq" ]; then
50-
yq ".scdf.binder.rabbit.host=\"rabbitmq.rabbitmq\"" -i ./scdf-values.yml
50+
# RABBITMQ_HOST=$(kubectl get --namespace rabbitmq services rabbitmq | grep -F rabbitmq | awk '{ print $3 }')
51+
RABBITMQ_HOST="rabbitmq.rabbitmq"
52+
yq ".scdf.binder.rabbit.host=\"$RABBITMQ_HOST\"" -i ./scdf-values.yml
5153
yq ".scdf.binder.rabbit.port=5672" -i ./scdf-values.yml
5254
else
55+
# KAFKA_HOST=$(kubectl get --namespace kafka services kafka | grep -F kafka | awk '{ print $3 }')
56+
KAFKA_HOST="kafka.kafka"
5357
yq ".scdf.binder.type=\"kafka\"" -i ./scdf-values.yml
54-
yq ".scdf.binder.kafka.broker.host=\"kafka-broker.kafka\"" -i ./scdf-values.yml
58+
yq ".scdf.binder.kafka.broker.host=\"$KAFKA_HOST\"" -i ./scdf-values.yml
5559
yq ".scdf.binder.kafka.zk.host=\"kafka-zk.kafka\"" -i ./scdf-values.yml
5660
fi
5761
end_time=$(date +%s)

src/deploy/carvel/deploy-local-database.sh

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ set -e
3737
kubectl rollout status deployment --namespace "$DATABASE" $DATABASE
3838
set +e
3939

40+
JDBC_URL="jdbc:$DATABASE://$DATABASE.$DATABASE/dataflow"
41+
"$SCDIR/configure-database.sh" dataflow $DATABASE "$JDBC_URL" $DATABASE database-username database-password
42+
"$SCDIR/configure-database.sh" skipper $DATABASE "$JDBC_URL" $DATABASE database-username database-password
43+
export DATABASE
44+
echo "Deployed $DATABASE. Host:$DATABASE.$DATABASE"
4045
FILE="$(mktemp).yml"
4146
cat >$FILE <<EOF
4247
apiVersion: secretgen.carvel.dev/v1alpha1
@@ -52,13 +57,7 @@ if [ "$DEBUG" = "true" ]; then
5257
cat $FILE
5358
fi
5459
kubectl apply -f $FILE
55-
56-
JDBC_URL="jdbc:$DATABASE://$DATABASE.$DATABASE/dataflow"
57-
$SCDIR/configure-database.sh dataflow $DATABASE "$JDBC_URL" $DATABASE database-username database-password
58-
$SCDIR/configure-database.sh skipper $DATABASE "$JDBC_URL" $DATABASE database-username database-password
59-
"$SCDIR/carvel-import-secret.sh" "$DATABASE" "$NS" "$DATABASE"
60-
export DATABASE
61-
echo "Deployed $DATABASE. Host:$DATABASE.$DATABASE"
60+
"$SCDIR/carvel-import-secret.sh" "$DATABASE" "$NS" "$DATABASE" --import
6261
end_time=$(date +%s)
6362
elapsed=$((end_time - start_time))
6463
echo -e "Deployed $DATABASE in ${bold}$elapsed${end} seconds"

src/deploy/carvel/deploy-scdf.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ if [ "$SKIPPER_VERSION" != "" ]; then
6161
yq ".scdf.skipper.image.tag=\"$SKIPPER_VERSION\"" -i ./scdf-values.yml
6262
echo "Overriding Skipper version=$SKIPPER_VERSION"
6363
fi
64+
65+
"$SCDIR/carvel-import-secret.sh" "scdfmetadata" "$NS"
66+
"$SCDIR/carvel-import-secret.sh" "reg-creds-dockerhub" "$NS"
67+
68+
if [ "$SCDF_TYPE" = "pro" ]; then
69+
"$SCDIR/carvel-import-secret.sh" "reg-creds-dev-registry" "$NS"
70+
fi
6471
set +e
6572
$SCDIR/carvel-deploy-package.sh $APP_NAME $PACKAGE_NAME $PACKAGE_VERSION "./scdf-values.yml" "$NS"
6673
end_time=$(date +%s)

src/deploy/carvel/prepare-cluster.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
bold="\033[1m"
33
dim="\033[2m"
44
end="\033[0m"
5-
CERT_MANAGER_VERSION=v1.14.1
5+
CERT_MANAGER_VERSION=v1.14.2
66
SECRETGEN_CONTROLLER_VERSION=v0.17.0
7-
KAPP_CONTROLLER_VERSION=v0.48.4
7+
KAPP_CONTROLLER_VERSION=v0.50.0
88
start_time=$(date +%s)
99
echo "Deploying cert-manager $CERT_MANAGER_VERSION"
1010
kapp deploy --yes --wait --wait-check-interval 10s --app cert-manager \

src/deploy/carvel/prepare-local-namespace.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ $SCDIR/add-roles.sh "system:aggregate-to-edit" "system:aggregate-to-admin" "syst
3636

3737
kubectl create serviceaccount "$SA" --namespace $NS
3838

39-
$SCDIR/add-local-registry-secret.sh scdf-metadata-default docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
39+
$SCDIR/add-local-registry-secret.sh scdfmetadata docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
4040
$SCDIR/add-local-registry-secret.sh reg-creds-dockerhub docker.io "$DOCKER_HUB_USERNAME" "$DOCKER_HUB_PASSWORD"
4141

4242

src/deploy/carvel/scdf-oss-values.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,6 @@ scdf:
1111
value: "true"
1212
- name: SPRING_CLOUD_DATAFLOW_FEATURES_SCHEDULES_ENABLED
1313
value: "true"
14-
skipper:
15-
config:
16-
spring:
17-
cloud:
18-
skipper:
19-
server:
20-
platform:
21-
kubernetes:
22-
accounts:
23-
default:
24-
environmentVariables: 'LANG=en_US.utf8,LC_ALL=en_US.utf8,JDK_JAVA_OPTIONS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8'
2514
registry:
2615
secret:
2716
ref: "reg-creds-dockerhub"

src/deploy/carvel/scdf-pro-values.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,7 @@ scdf:
1717
skipper:
1818
image:
1919
repository: springcloud/spring-cloud-skipper-server
20-
tag: 2.11.1
21-
config:
22-
spring:
23-
cloud:
24-
skipper:
25-
server:
26-
platform:
27-
kubernetes:
28-
accounts:
29-
default:
30-
environmentVariables: 'LANG=en_US.utf8,LC_ALL=en_US.utf8,JDK_JAVA_OPTIONS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8'
20+
tag: 2.11.2
3121
registry:
3222
secret:
3323
ref: "reg-creds-dev-registry"

src/deploy/carvel/setup-scdf-repo.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ else
5858
PACKAGE="$PACKAGE_REPO/$REPO_NAME:$PACKAGE_VERSION"
5959
fi
6060
echo "Adding repository for $PACKAGE"
61-
$SCDIR/carvel-add-package.sh "$PACKAGE" "$PACKAGE_NAME" "$NS"
61+
"$SCDIR/carvel-add-package.sh" "$PACKAGE" "$PACKAGE_NAME" "$NS"
62+
6263
end_time=$(date +%s)
6364
elapsed=$((end_time - start_time))
6465
echo -e "Setup SCDF Carvel Repo in ${bold}$elapsed${end} seconds"

src/deploy/k8s/configure-k8s.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ fi
2121
if [ "$1" != "" ]; then
2222
export K8S_VERSION="$1"
2323
else
24-
export K8S_VERSION="1.25"
24+
if [ "$K8S_VERSION" == "" ]; then
25+
export K8S_VERSION="1.28"
26+
fi
2527
fi
2628
set +e
2729
case "$K8S_DRIVER" in

src/deploy/versions.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ scdf-type:
1010
maintenance-snapshot: '1.5.4-SNAPSHOT'
1111
default:
1212
scdf-type: 'oss'
13-
version: 'snapshot'
14-
package-version: '2.11.3-SNAPSHOT'
13+
version: 'release'
14+
package-version: '2.11.2'

0 commit comments

Comments
 (0)