mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 01:39:06 +00:00
re-enabled TestFnContainerGenerator with enable-gcp-services
This commit is contained in:
@@ -504,213 +504,49 @@ func skipIfNoDocker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFnContainerGenerator(t *testing.T) {
|
func TestFnContainerGenerator(t *testing.T) {
|
||||||
t.Skip("wait for #3881")
|
|
||||||
skipIfNoDocker(t)
|
skipIfNoDocker(t)
|
||||||
|
|
||||||
// Function plugins should not need the env setup done by MakeEnhancedHarness
|
|
||||||
th := kusttest_test.MakeHarness(t)
|
th := kusttest_test.MakeHarness(t)
|
||||||
|
o := th.MakeOptionsPluginsEnabled()
|
||||||
th.WriteK(".", `
|
fSys := filesys.MakeFsOnDisk()
|
||||||
resources:
|
b := MakeKustomizer(&o)
|
||||||
- short_secret.yaml
|
tmpDir, err := filesys.NewTmpConfirmedDir()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.NoError(t, fSys.WriteFile(filepath.Join(tmpDir.String(), "kustomization.yaml"), []byte(`
|
||||||
generators:
|
generators:
|
||||||
- gener.yaml
|
- project-service-set.yaml
|
||||||
`)
|
`)))
|
||||||
// Create generator config
|
assert.NoError(t, fSys.WriteFile(filepath.Join(tmpDir.String(), "project-service-set.yaml"), []byte(`
|
||||||
th.WriteF("gener.yaml", `
|
apiVersion: blueprints.cloud.google.com/v1alpha1
|
||||||
apiVersion: examples.config.kubernetes.io/v1beta1
|
kind: ProjectServiceSet
|
||||||
kind: CockroachDB
|
|
||||||
metadata:
|
metadata:
|
||||||
name: demo
|
name: demo
|
||||||
annotations:
|
annotations:
|
||||||
config.kubernetes.io/function: |
|
config.kubernetes.io/function: |
|
||||||
container:
|
container:
|
||||||
image: gcr.io/kustomize-functions/example-cockroachdb:v0.1.0
|
image: gcr.io/kpt-fn/enable-gcp-services:v0.1.0
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
services:
|
||||||
`)
|
- compute.googleapis.com
|
||||||
// Create some additional resource just to make sure everything is added
|
projectID: foo
|
||||||
th.WriteF("short_secret.yaml", `
|
`)))
|
||||||
apiVersion: v1
|
m, err := b.Run(fSys, tmpDir.String())
|
||||||
kind: Secret
|
assert.NoError(t, err)
|
||||||
metadata:
|
actual, err := m.AsYaml()
|
||||||
labels:
|
assert.NoError(t, err)
|
||||||
airshipit.org/ephemeral-user-data: "true"
|
assert.Equal(t, `apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
|
||||||
name: node1-bmc-secret
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
userData: |
|
|
||||||
bootcmd:
|
|
||||||
- mkdir /mnt/vda
|
|
||||||
`)
|
|
||||||
m := th.Run(".", th.MakeOptionsPluginsEnabled())
|
|
||||||
th.AssertActualEqualsExpected(m, `
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
airshipit.org/ephemeral-user-data: "true"
|
|
||||||
name: node1-bmc-secret
|
|
||||||
stringData:
|
|
||||||
userData: |
|
|
||||||
bootcmd:
|
|
||||||
- mkdir /mnt/vda
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: policy/v1beta1
|
|
||||||
kind: PodDisruptionBudget
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
name: demo-budget
|
|
||||||
spec:
|
|
||||||
minAvailable: 67%
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
name: demo-public
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: grpc
|
|
||||||
port: 26257
|
|
||||||
targetPort: 26257
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
prometheus.io/path: _status/vars
|
blueprints.cloud.google.com/ownerReference: blueprints.cloud.google.com/ProjectServiceSet/demo
|
||||||
prometheus.io/port: "8080"
|
config.kubernetes.io/function: |
|
||||||
prometheus.io/scrape: "true"
|
container:
|
||||||
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
|
image: gcr.io/kpt-fn/enable-gcp-services:v0.1.0
|
||||||
labels:
|
name: demo-compute
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
name: demo
|
|
||||||
spec:
|
spec:
|
||||||
clusterIP: None
|
projectRef:
|
||||||
ports:
|
external: foo
|
||||||
- name: grpc
|
resourceID: compute.googleapis.com
|
||||||
port: 26257
|
`, string(actual))
|
||||||
targetPort: 26257
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
name: demo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
serviceName: demo
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: cockroachdb
|
|
||||||
name: demo
|
|
||||||
spec:
|
|
||||||
affinity:
|
|
||||||
podAntiAffinity:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- podAffinityTerm:
|
|
||||||
labelSelector:
|
|
||||||
matchExpressions:
|
|
||||||
- key: app
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- cockroachdb
|
|
||||||
topologyKey: kubernetes.io/hostname
|
|
||||||
weight: 100
|
|
||||||
containers:
|
|
||||||
- command:
|
|
||||||
- /bin/bash
|
|
||||||
- -ecx
|
|
||||||
- |
|
|
||||||
# The use of qualified `+"`hostname -f`"+` is crucial:
|
|
||||||
# Other nodes aren't able to look up the unqualified hostname.
|
|
||||||
CRARGS=("start" "--logtostderr" "--insecure" "--host" "$(hostname -f)" "--http-host" "0.0.0.0")
|
|
||||||
# We only want to initialize a new cluster (by omitting the join flag)
|
|
||||||
# if we're sure that we're the first node (i.e. index 0) and that
|
|
||||||
# there aren't any other nodes running as part of the cluster that
|
|
||||||
# this is supposed to be a part of (which indicates that a cluster
|
|
||||||
# already exists and we should make sure not to create a new one).
|
|
||||||
# It's fine to run without --join on a restart if there aren't any
|
|
||||||
# other nodes.
|
|
||||||
if [ ! "$(hostname)" == "cockroachdb-0" ] || [ -e "/cockroach/cockroach-data/cluster_exists_marker" ]
|
|
||||||
then
|
|
||||||
# We don't join cockroachdb in order to avoid a node attempting
|
|
||||||
# to join itself, which currently doesn't work
|
|
||||||
# (https://github.com/cockroachdb/cockroach/issues/9625).
|
|
||||||
CRARGS+=("--join" "cockroachdb-public")
|
|
||||||
fi
|
|
||||||
exec /cockroach/cockroach ${CRARGS[*]}
|
|
||||||
image: cockroachdb/cockroach:v1.1.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: demo
|
|
||||||
ports:
|
|
||||||
- containerPort: 26257
|
|
||||||
name: grpc
|
|
||||||
- containerPort: 8080
|
|
||||||
name: http
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /cockroach/cockroach-data
|
|
||||||
name: datadir
|
|
||||||
initContainers:
|
|
||||||
- args:
|
|
||||||
- -on-start=/on-start.sh
|
|
||||||
- -service=cockroachdb
|
|
||||||
env:
|
|
||||||
- name: POD_NAMESPACE
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
image: cockroachdb/cockroach-k8s-init:0.1
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: bootstrap
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /cockroach/cockroach-data
|
|
||||||
name: datadir
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
volumes:
|
|
||||||
- name: datadir
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: datadir
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: datadir
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 1Gi
|
|
||||||
`)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFnContainerTransformer(t *testing.T) {
|
func TestFnContainerTransformer(t *testing.T) {
|
||||||
@@ -733,7 +569,6 @@ kind: Deployment
|
|||||||
metadata:
|
metadata:
|
||||||
name: foo
|
name: foo
|
||||||
`)))
|
`)))
|
||||||
|
|
||||||
assert.NoError(t, fSys.WriteFile(filepath.Join(tmpDir.String(), "e2econtainerconfig.yaml"), []byte(`
|
assert.NoError(t, fSys.WriteFile(filepath.Join(tmpDir.String(), "e2econtainerconfig.yaml"), []byte(`
|
||||||
apiVersion: example.com/v1alpha1
|
apiVersion: example.com/v1alpha1
|
||||||
kind: Input
|
kind: Input
|
||||||
|
|||||||
Reference in New Issue
Block a user