|
98 | 98 | withCredentials([aws(credentialsId: 'pmm-staging-slave')]) { |
99 | 99 | sh ''' |
100 | 100 | eksctl create cluster -f cluster-config.yaml --timeout=40m --verbose=4 |
| 101 | + ''' |
| 102 | + } |
| 103 | + } |
| 104 | + } |
| 105 | + |
| 106 | + stage('Configure Cluster Access') { |
| 107 | + steps { |
| 108 | + withCredentials([aws(credentialsId: 'pmm-staging-slave')]) { |
| 109 | + sh ''' |
| 110 | + # Add EKSAdminRole with cluster admin access |
| 111 | + aws eks create-access-entry \ |
| 112 | + --cluster-name "${CLUSTER_NAME}" \ |
| 113 | + --region "${REGION}" \ |
| 114 | + --principal-arn arn:aws:iam::119175775298:role/EKSAdminRole |
| 115 | +
|
| 116 | + aws eks associate-access-policy \ |
| 117 | + --cluster-name "${CLUSTER_NAME}" \ |
| 118 | + --region "${REGION}" \ |
| 119 | + --principal-arn arn:aws:iam::119175775298:role/EKSAdminRole \ |
| 120 | + --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ |
| 121 | + --access-scope type=cluster |
| 122 | +
|
| 123 | + # Add pmm-eks-admins group members dynamically |
| 124 | + # To manage access, add/remove users from the pmm-eks-admins IAM group: |
| 125 | + # https://us-east-1.console.aws.amazon.com/iam/home#/groups/details/pmm-eks-admins |
| 126 | + # CLI: aws iam add-user-to-group --group-name pmm-eks-admins --user-name <username> |
| 127 | + USERS=$(aws iam get-group --group-name pmm-eks-admins --query 'Users[].Arn' --output text) |
| 128 | + for USER_ARN in $USERS; do |
| 129 | + echo "Adding access for ${USER_ARN}..." |
| 130 | + aws eks create-access-entry \ |
| 131 | + --cluster-name "${CLUSTER_NAME}" \ |
| 132 | + --region "${REGION}" \ |
| 133 | + --principal-arn "${USER_ARN}" || true |
101 | 134 |
|
102 | | - # Map EKSAdminRole for IAM users |
103 | | - eksctl create iamidentitymapping \ |
104 | | - --cluster "${CLUSTER_NAME}" \ |
| 135 | + aws eks associate-access-policy \ |
| 136 | + --cluster-name "${CLUSTER_NAME}" \ |
| 137 | + --region "${REGION}" \ |
| 138 | + --principal-arn "${USER_ARN}" \ |
| 139 | + --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ |
| 140 | + --access-scope type=cluster || true |
| 141 | + done |
| 142 | +
|
| 143 | + # Add SSO AdministratorAccess role |
| 144 | + aws eks create-access-entry \ |
| 145 | + --cluster-name "${CLUSTER_NAME}" \ |
| 146 | + --region "${REGION}" \ |
| 147 | + --principal-arn "arn:aws:iam::119175775298:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AdministratorAccess_5922b1e9e802dfa5" || true |
| 148 | +
|
| 149 | + aws eks associate-access-policy \ |
| 150 | + --cluster-name "${CLUSTER_NAME}" \ |
105 | 151 | --region "${REGION}" \ |
106 | | - --arn arn:aws:iam::119175775298:role/EKSAdminRole \ |
107 | | - --username eks-admin \ |
108 | | - --group system:masters |
| 152 | + --principal-arn "arn:aws:iam::119175775298:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AdministratorAccess_5922b1e9e802dfa5" \ |
| 153 | + --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ |
| 154 | + --access-scope type=cluster || true |
| 155 | +
|
| 156 | + echo "Access entries configured:" |
| 157 | + aws eks list-access-entries --cluster-name "${CLUSTER_NAME}" --region "${REGION}" |
109 | 158 | ''' |
110 | 159 | } |
111 | 160 | } |
|
197 | 246 | echo "" |
198 | 247 |
|
199 | 248 | echo "To access this cluster, run:" |
200 | | - echo "aws eks update-kubeconfig --name ${CLUSTER_NAME} --region ${REGION} --role-arn arn:aws:iam::119175775298:role/EKSAdminRole" |
| 249 | + echo "aws eks update-kubeconfig --name ${CLUSTER_NAME} --region ${REGION}" |
201 | 250 | ''' |
202 | 251 | } |
203 | 252 | } |
|
0 commit comments