@@ -22,74 +22,76 @@ set -o pipefail
22
22
REPO_ROOT=" $( git rev-parse --show-toplevel) "
23
23
cd ${REPO_ROOT}
24
24
25
- if [[ -z " ${VERSION :- } " ]]; then
26
- echo " VERSION must be set"
25
+ if [[ -z " ${IMAGE_TAG :- } " ]]; then
26
+ echo " IMAGE_TAG must be set"
27
27
exit 1
28
28
fi
29
29
30
30
kustomize build operator/config/default | \
31
- sed -e " s@image: operator:.*@image: gcr.io/gke-release/cnrm/operator:${VERSION} @g" | \
31
+ sed -e " s@image: operator:.*@image: gcr.io/gke-release/cnrm/operator:${IMAGE_TAG} @g" | \
32
+ sed -e " s@imagePullPolicy: Always@imagePullPolicy: IfNotPresent@g" | \
32
33
kubectl apply --server-side -n configconnector-operator-system -f -
33
34
34
35
echo " Waiting for configconnector-operator statefulset to become ready"
35
36
kubectl wait -n configconnector-operator-system --for=jsonpath=' {.status.readyReplicas}' =1 statefulset/configconnector-operator
36
37
37
- # Configure in namespace mode, per instructions at https://cloud.google.com/config-connector/docs/how-to/install-namespaced
38
- echo " Configuring namespace mode"
38
+ # # Configure in namespace mode, per instructions at https://cloud.google.com/config-connector/docs/how-to/install-namespaced
39
+ # echo "Configuring namespace mode"
40
+ # cat <<EOF | kubectl apply --server-side -f -
41
+ # apiVersion: core.cnrm.cloud.google.com/v1beta1
42
+ # kind: ConfigConnector
43
+ # metadata:
44
+ # # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster
45
+ # name: configconnector.core.cnrm.cloud.google.com
46
+ # spec:
47
+ # mode: namespaced
48
+ # stateIntoSpec: Absent
49
+ # credentialSecretName: kcc-google-service-account
50
+ # EOF
51
+
52
+ # Configure in cluster mode so we can use a (fake) google service account
53
+ echo " Creating namespace cnrm-system"
54
+ kubectl create ns cnrm-system --dry-run=client -oyaml | kubectl apply --server-side -f -
55
+
56
+ echo " Configuring ConfigConnector in cluster mode"
39
57
cat << EOF | kubectl apply --server-side -f -
58
+ apiVersion: v1
59
+ kind: Secret
60
+ metadata:
61
+ name: kcc-google-service-account
62
+ namespace: cnrm-system
63
+ type: Opaque
64
+ stringData:
65
+ key.json: |
66
+ {
67
+ "type": "service_account",
68
+ "project_id": "fake-project-id",
69
+ "private_key_id": "fake-private-key-id",
70
+ "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAsGHDAdHZfi81LgVeeMHXYLgNDpcFYhoBykYtTDdNyA5AixID\n8JdKlCmZ6qLNnZrbs4JlBJfmzw6rjUC5bVBFg5NwYVBu3+3Msa4rgLsTGsjPH9rt\nC+QFnFhcmzg3zz8eeXBqJdhw7wmn1Xa9SsC3h6YWveBk98ecyE7yGe8J8xGphjk7\nEQ/KBmRK/EJD0ZwuYW1W4Bv5f5fca7qvi9rCprEmL8//uy0qCwoJj2jU3zc5p72M\npkSZb1XlYxxTEo/h9WCEvWS9pGhy6fJ0sA2RsBHqU4Y5O7MJEei9yu5fVSZUi05f\n/ggfUID+cFEq0Z/A98whKPEBBJ/STdEaqEEkBwIDAQABAoIBAED6EsvF0dihbXbh\ntXbI+h4AT5cTXYFRUV2B0sgkC3xqe65/2YG1Sl0gojoE9bhcxxjvLWWuy/F1Vw93\nS5gQnTsmgpzm86F8yg6euhn3UMdqOJtknDToMITzLFJmOHEZsJFOL1x3ysrUhMan\nsn4qVrIbJn+WfbumBoToSFnzbHflacOh06ZRbYa2bpSPMfGGFtwqQjRadn5+pync\nlCjaupcg209sM0qEk/BDSzHvWL1VgLMdiKBx574TSwS0o569+7vPNt92Ydi7kARo\nreOzkkF4L3xNhKZnmls2eGH6A8cp1KZXoMLFuO+IwvBMA0O29LsUlKJU4PjBrf+7\nwaslnMECgYEA5bJv0L6DKZQD3RCBLue4/mDg0GHZqAhJBS6IcaXeaWeH6PgGZggV\nMGkWnULltJIYFwtaueTfjWqciAeocKx+rqoRjuDMOGgcrEf6Y+b5AqF+IjQM66Ll\nIYPUt3FCIc69z5LNEtyP4DSWsFPJ5UhAoG4QRlDTqT5q0gKHFjeLdeECgYEAxJRk\nkrsWmdmUs5NH9pyhTdEDIc59EuJ8iOqOLzU8xUw6/s2GSClopEFJeeEoIWhLuPY3\nX3bFt4ppl/ksLh05thRs4wXRxqhnokjD3IcGu3l6Gb5QZTYwb0VfN+q2tWVEE8Qc\nPQURheUsM2aP/gpJVQvNsWVmkT0Ijc3J8bR2hucCgYEAjOF4e0ueHu5NwFTTJvWx\nHTRGLwkU+l66ipcT0MCvPW7miRk2s3XZqSuLV0Ekqi/A3sF0D/g0tQPipfwsb48c\n0/wzcLKoDyCsFW7AQG315IswVcIe+peaeYfl++1XZmzrNlkPtrXY+ObIVbXOavZ5\nzOw0xyvj5jYGRnCOci33N4ECgYA91EKx2ABq0YGw3aEj0u31MMlgZ7b1KqFq2wNv\nm7oKgEiJ/hC/P673AsXefNAHeetfOKn/77aOXQ2LTEb2FiEhwNjiquDpL+ywoVxh\nT2LxsmqSEEbvHpUrWlFxn/Rpp3k7ElKjaqWxTHyTii2+BHQ+OKEwq6kQA3deSpy6\n1jz1fwKBgQDLqbdq5FA63PWqApfNVykXukg9MASIcg/0fjADFaHTPDvJjhFutxRP\nppI5Q95P12CQ/eRBZKJnRlkhkL8tfPaWPzzOpCTjID7avRhx2oLmstmYuXx0HluE\ncqXLbAV9WDpIJ3Bpa/S8tWujWhLDmixn2JeAdurWS+naH9U9e4I6Rw==\n-----END RSA PRIVATE KEY-----\n",
71
+ "client_email": "[email protected] ",
72
+ "client_id": "fake-client-id",
73
+ "auth_uri": "https://accounts.google.com/o/oauth2/auth",
74
+ "token_uri": "https://oauth2.googleapis.com/token",
75
+ "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
76
+ "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/[email protected] "
77
+ }
78
+ ---
79
+
40
80
apiVersion: core.cnrm.cloud.google.com/v1beta1
41
81
kind: ConfigConnector
42
82
metadata:
43
83
# the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster
44
84
name: configconnector.core.cnrm.cloud.google.com
45
85
spec:
46
- mode: namespaced
86
+ mode: cluster
47
87
stateIntoSpec: Absent
88
+ credentialSecretName: kcc-google-service-account
48
89
EOF
49
90
50
- # Create namespace
51
- NS=config-control
52
- echo " Creating namespace ${NS} "
53
- kubectl create ns ${NS} --dry-run=client -oyaml | kubectl apply --server-side -f -
54
-
55
- echo " Creating ConfigConnectorContext in namespace ${NS} (with fake google service account)"
56
- cat << EOF | kubectl apply --server-side -f -
57
- apiVersion: core.cnrm.cloud.google.com/v1beta1
58
- kind: ConfigConnectorContext
59
- metadata:
60
- # you can only have one ConfigConnectorContext per namespace
61
- name: configconnectorcontext.core.cnrm.cloud.google.com
62
- namespace: ${NS}
63
- spec:
64
- googleServiceAccount: "[email protected] "
65
- stateIntoSpec: Absent
66
- EOF
67
91
68
- echo " Waiting for KCC bound to namespace ${NS} to become ready"
69
- # We don't wait, because prom-to-sd is currently crashing
70
- # kubectl wait -n cnrm-system --for=condition=Ready -l cnrm.cloud.google.com/scoped-namespace=${NS} pod
71
92
72
- echo " Creating StorageBucket in namespace ${NS} "
73
- cat << EOF | kubectl apply -f -
74
- apiVersion: storage.cnrm.cloud.google.com/v1beta1
75
- kind: StorageBucket
76
- metadata:
77
- name: "kcc-test-${NS} "
78
- namespace: "${NS} "
79
- spec:
80
- lifecycleRule:
81
- - action:
82
- type: Delete
83
- condition:
84
- age: 7
85
- withState: ANY
86
- versioning:
87
- enabled: true
88
- uniformBucketLevelAccess: true
89
- EOF
93
+ echo " Waiting for StorageBucket CRD to be created"
94
+ kubectl wait --for=create crd/storagebuckets.storage.cnrm.cloud.google.com
90
95
91
- # Wait for StorageBucket creation attempt
92
- # We can't kubectl wait, because we currently expect this to fail because we haven't set up IAM permissions
93
- echo " Sleeping to allow for attempt at StorageBucket creation"
94
- sleep 5
95
- kubectl describe storagebucket -n ${NS}
96
+ echo " Waiting for StorageBucket CRD to become ready"
97
+ kubectl wait --for=jsonpath=' {.status.acceptedNames.kind}' =StorageBucket crd/storagebuckets.storage.cnrm.cloud.google.com
0 commit comments